おすすめ本

最近のトラックバック

  • event (夢茶爺&苦茶爺のPC奮戦備忘録)

AccRanking

Ad

« 2015年2月 | メイン | 2015年4月 »

2015年3月

2015年3月27日 (金)

ORA-28001 the password has expired でユーザに接続不可

久々にOracleを動かそうとして、Oracle SQL Developerを起動し、データベースに接続すると接続エラーが発生しました。

エラーメッセージはORA-28001 the password has expired.

どうもパスワードの期限が切れているようです。
調べてみるとOracle11gではデフォルトでユーザのパスワードの期限が180日になっているそうです。

テストで動かすだけなので、SYSユーザでログインして、ユーザのパスワードを以下のコマンドで変更しました。

alter user 「USERNAME」 identified by 「PASSWORD」

その後、以下のコマンドでロックを解除します。

alter user 「USERNAME」 account unlock;

これで、接続できるようになりました。


ただ「SQL*Plus」での接続では以下の図のようにエラーが表示されますが、
その後、新規パスワードの入力が促され、そこでパスワードを入力しなおせば再度接続されます。

SIDとしてはテスト用のDB「test」で、ユーザもテスト用のID/PASSを「test/test」して行いました。
オラクルサーバーへの接続文字列としては、@マーク以下「//192.168.1.207/」を頭に付けてローカルなLANのサーバマシンのIPを特定しています。

Pass

 

■関連記事
Oracleファンクションのソースを表示する方法について・覚え書き
Oracleでのログインエラーでアカウントがロックされた場合の、強制ログインを使った対処方法
OracleでのPostgreSQLの「generate_series」(連続値の生成関数)的な使い方(LEVEL疑似列)
ORA-28002: the password will expire within 7 days がログイン時に発生
ORA-28001 the password has expired でユーザに接続不可

2015年3月25日 (水)

標準ラベルコントロールにグラデーションを追加したGradientLabelコントロール

VB.NETで標準ラベルコントロールから派生した、背景色をグラデーション描画するGradientLabelコントロールを作成しました。

このコントロールには以下の追加プロパティが備わっています。

プロパティ概要
BackColor2 グラデーション終了色
(デフォルトのBackColorからBackColor2への色の変化)
FrameColor ラベルの枠色
GradientMode グラデーションの方向(LinearGradientMode)
GradientCount グラデーションの回数
(回数は1から10に強制的におさえている)

このGradientLabelコントロールのソースは以下の様になっています。
バックグラウンド描画イベント処理にてグラデーション用ブラシでグラデーションの色と位置を設定し、内部を描画します。 さらに、枠色で枠を描画しています。




このコントロールを使った例を以下に示します。
BackColorにはWhiteを、BackColor2にはRedを設定しました。

Grad


■GradientMode:Horizontal
左から右に向かってグラデーションされます。
BackColor⇒BackColor2の色変化のグラデーションです。
GradientCount=1の場合は、BackColor⇒BackColor2のみのグラデーションで
GradientCount=2の場合は、BackColor⇒BackColor2⇒BackColorのグラデーションとなります。
その後、GradientCountの値が増えるに従って、「BackColor2」「BackColor」が繰り返されます。

■GradientMode:Vertical
上から下に向かってグラデーションされます。

■GradientMode:ForwardDiagonal
左上から右下に向かってグラデーションされます。

■GradientMode:BackwardDiagonal
右上から左下に向かってグラデーションされます。

2015年3月23日 (月)

VB.NETでのUserControlを使用した LEDランプ風コントロール

VB.NETでUserControlを使用してLEDランプの様な表示を行うコントロールを作成しました。

このコントロールには以下のメソッド・プロパティが備わっています。

プロパティ・メソッド 概要
OnLEDColor ON状態のLEDの色
OffLEDColor OFF状態のLEDの色
LEDBorderColor LEDの外枠の色
LEDBorderWidth LEDの外枠の幅
SetOnLED LEDをONの状態にする
SetOffLED LEDをOFFの状態にする
ButtonClick LEDラベル・クリックイベント

このLEDコントロールのソースは以下の様になっています。
丸いLEDを描画するために、ラベルのResizeイベントでGraphicパスに楕円の領域を指定し、クリッピング処理をさせています。
また、ラベルのPaintイベント時に外枠をペンで強制的に描画しています。



このコントロールを使った例を以下に示します。



実際のフォームの表示は以下の様になります。

Led

 

楽天市場

2015年3月20日 (金)

VB.NET:マーシャリングを使用した、構造体からバイト配列へのコピー

前回はバイト配列から構造体へのコピーでしたが、今回はその逆である、構造体からバイト配列へのコピーです。
例とする構造体は前回同様、4個のバイト配列変数を持った簡単な構造を例にとります。以下の様な宣言になります。 各変数は「MarshalAs」を使って、固定サイズ長を宣言してやります。



この構造体からバイト配列に変換する関数を以下に示します。



バイト配列の「x2」には20個分の配列として値が返されます。

Bytes

 

■関連記事
VB.NET:マーシャリングを使用した、バイト配列から構造体へのコピー


富士通パソコンFMVの直販サイト富士通 WEB MART


楽天市場

2015年3月19日 (木)

VB.NET:マーシャリングを使用した、バイト配列から構造体へのコピー

VB.NETで通信制御プログラムを組んでいると、電文解析などが必要になります。電文はバイト配列で取得しますが、 その電文を分割して処理するにも、解析用の構造体を宣言しそちらにバイト配列からコピーできると便利です。
今回は、構造体に4個のバイト配列変数を持った簡単な構造を例にとります。以下の様な宣言になります。 各変数は「MarshalAs」を使って、固定サイズ長を宣言してやります。



バイト配列からこの構造体に変換する関数を以下に示します。



処理ボタンをフォームに貼り付けてテストしていますが、「x」で12個のデータを宣言していますが、 構造体の「X」には「&H40, &H41」の部分しか設定されませんが、残りには&H0が埋められます。

Split

 

■関連記事
VB.NET:マーシャリングを使用した、構造体からバイト配列へのコピー


楽天市場

2015年3月18日 (水)

ADO.NET を使用した SQL-Server へのアクセス・クラス

ADO.NET を使用した SQL-Server へのアクセス・クラスの簡単なものを作成してみました。
このクラスを元にして拡張したものを仕事でも使っています。

このクラス「clsSqlServer」には以下のメソッド・プロパティが備わっています。

メソッド・プロパティ 概要
New コンストラクタ(引数にデータベース接続文字列を渡す)
BeginTransaction トランザクション開始
Commit トランザクションコミット
Rollback トランザクションロールバック
CloseConnection コネクションの解除
OpenDataReader SELECT文SQLの実行とDataReaderへの読込
CloseDataReader DataReaderのクローズ
ExeSQL DML-SQL文の実行
CnvReaderToHashtable DataReaderの結果ItemsをHashtableに変換



今回のクラスのテストプログラムを以下に載せますが、SQLサーバへの接続文字列は以下の様にしています。

キーワード 概要(設定値)
Persist Security Info ID やパスワードなどのセキュリティ関連情報の破棄指定(False)
Integrated Security 現在のWindowsアカウントでの認証(SSPI)
Database データベース名(取敢えず「TEST」)
Data Source SQL Serverのインスタンスの名前
(Microsoft SQL Server Management Studio Express:.\SQLEXPRESS)



このテストは、システム日付をSELECTで実行し、SqlDataReaderに取得しています。SqlDataReaderから日付を取り出して その後、クラスのクローズを行っています。

■「clsSqlServer」の使用テストソース1


以下に、clsSqlServerの全体のソースを載せます。バグがあるかもしれませんが悪しからず。

■「clsSqlServer」のソース

■関連記事
VB.NET:ADO.NETを使用したSQL-ServerのテーブルのCSV出力
BCPコマンドでUnicode文字形式を使用したデータのインポート及びエクスポート(SQL Server)について
ADO.NET での DataReader の入れ子エラー
SQL-Serverの自動採番(IDENTITY値)の取得・リセット
SQL-Serverのストアド・ファンクションではUPDATEなどが実行できない
SQL-Serverのユーティリティ(BCPコマンド)を利用したテーブルへのインポート・エキスポート
SQL-Serverのプロシージャ生成のバッチ実行
SQL-Serverの関数・プロシージャのVB.NETでの実行


楽天市場

2015年3月17日 (火)

ArrayList と Hashtable の合体クラス

VB.NETには「コレクション」としてのArrayList、Hashtable、SortedListなどの、各種のデータを配列の様に扱えるクラスが標準で備わっています。

クラス キー 指標 概要
ArrayList × 指標のみ扱いができる。(通常の配列の様である)
Hashtable × キーのみ扱いができる。
SortedList ArrayListとHashtableを合体した感じであるが、指標の扱いはキーでソートされた結果である。

SortedListは使いやすそうですが、キーでソートされてしまうので、ソートがされないSortedList的なクラスがあればと思い ArrayListとHashtableを合体させた、clsArrayHashなるクラスを作成してみました。

クラス全体のソースは最後に載せますが、このクラスの使い方を先ずは見てください。
あるフォームにボタンを配置し、そのクリックでテストを行っています。
clsArrayHashに追加されるデータは文字列を使った簡単なもので、データの順次取得に、ForEachと指標を使った2つの方法を示しています。

■「clsArrayHash」の使用テストソース1


次に、更にフォームにボタンを配置し、そのクリックでテストを行っています。
clsArrayHashに追加されるデータはテスト的なクラスを使った簡単なもので、データの順次取得に、ForEachと指標を使った2つの方法を示しています。

■「clsArrayHash」の使用テストソース2


以下に、clsArrayHashの全体のソースを載せます。バグがあるかもしれませんが悪しからず。

■「clsArrayHash」のソース


楽天市場