ADOとADO.NET
|
|
|
- たいち にばし
- 7 years ago
- Views:
Transcription
1 ADO と ADO.NET Visual Basic.NET では 従来の ADO を従来の方法で使用する事も出来るが 通常 データベースにアクセスする為に ADO.NET を使用する 此処では Windows 上で動作するアプリケーションの開発に必要な知識を中心に ADO と ADO.NET の差異を説明する Visual Basic 6.0 では データベースにアクセスする為に ADO(ActiveX Data Object) を使用するが ADO.NET は 此れを.NET Framework 用に進化させた物で有り 両者は データアクセスの概念に大きな差異が有る データアクセス用のコンポーネント ADO Visual Basic 6.0 では データアクセス用のコンポーネントに ADO データコントロール (ADODC) が有り 下記のを提供して居る データベースに接続する データベースから必要なデータを取得する フォーム上のコントロールとデータベースを連結する ADO.NET ADO.NET には ADO の様な便利なコンポーネントは無い コネクションを使用してデータベースに接続し データアダプタを使用して必要なデータを取得する データの保持方法 ADO ADO では 取得したデータをレコードセットで管理する レコードセットは メモリ上に保持した仮想テーブルの様な物で有る ADO.NET ADO.NET では データセットに依り データベースと同じ物をメモリ上に保持する事が出来る データセットには 複数のテーブルの構造や 主キーやリレーションシップ等の属性を定義する事が出来る 亦 実行時には 取得したデータを管理する事も出来る レコードの扱い方 ADO ADO のレコードセットに含まれるレコードは Bookmark プロパティに依り管理されて居り 孰れかのレコードが必ず選択された状態に成って居る 因みに レコードセットを取得した初期状態では 先頭のレコードが選択された状態に成って居る 此のレコードをカレントレコードと呼び 亦 MoveNext メソッドや MovePrevious メソッド等に依り カレントレコードを移動する事が出来る ADO.NET ADO.NET には カレントレコードと謂う概念は無い 其の為 レコードを移動する為のメソッドも無い データセットに保持されたデータは 行のコレクションと仕て扱われ 各レコードは 配列の要素番号を使用して識別する -1-
2 接続方法 ADO ADO では データベースに常時接続した状態で使用するのが基本で有る 其の為 常に最新のデータを取得し 更新する事も可能で有るが 実際には データの転送時以外は データベースに接続して居る必要が無い場合が多い 亦 データベースへの接続を維持する事で システムリソースを消費し パフォーマンスが低下すると謂う負の側面も有る データベース フォーム ADO.NET ADO.NET では データセットに依り データベースと粗同じ物をメモリ上に保持する事が出来るのでデータベースに接続する必要が有るのは データセットにデータを取得する時と データセットで変更した内容をデータベースに転送する時丈で有る 其れ以外の時はデータベースの接続を解除し データセットを利用してデータベース操作を行う フォーム データアダプタ コネクション データベース データセット ADO と ADO.NET の使い分け 新規にアプリケーションを開発する時は ADO.NET を利用すると 豊富なツールを利用して 効率良くアプリケーションを開発する事が出来る ADO.NET では データベースと常時接続する必要が無い為 システムの負荷を軽減する事が出来る 併し 非接続型故に 大量のレコードの即時更新や 常に最新の情報が必要な場合には 不適格で有り 此の様な場合は 常時接続型の ADO を利用すると良い.NET Framework でも ADO は サポートされて居る ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 接続型 ADO(ADODB) 3 非接続型 ADO.NET 12 クエリ SQL 24-2-
3 ADODB.Connection オブジェクト 接続型 ADO(ADODB) データベースと接続する為のオブジェクト Connection オブジェクトは データソースへの接続を表し データソースとの固有のセッションを表す クライアントサーバーデータベースシステムの場合 此のオブジェクトはサーバーへの実際のネットワークに対応する ADODB.Connection の Open メソッド データソースへの接続を開くメソッド Connection.Open( 引数 1, 引数 2, 引数 3, 引数 4 ) データソースへの物理的な接続を設定する 此のメソッドが完了すると接続状態が確立し コマンドを発行して結果を処理する事が出来る 引数 1 には 接続情報 (ConnectionString 後述 ) を指定し 省略する事が出来る 引数 2 には 接続を確立する際に必要なユーザー名を指定し 省略する事が出来る 引数 3 には 接続を確立する際に必要なパスワードを指定し 省略する事が出来る 引数 4 には 同期接続 非同期接続の孰れかを示す定数を指定し 省略する事が出来る ADODB.Connection の Execute メソッド 指定されたクエリ SQL ステートメント ストアドプロシージャ等を実行するメソッド Connection.Execute( 引数 1, 引数 2, 引数 3 ) 指定した接続上で 引数 1 で指定されたメソッドに渡すクエリが実行される 引数 1 には 実行する SQL ステートメント テーブル名等を指定し 必ず指定する 引数 2 には プロバイダが返す操作の結果を反映するレコード数を指定し 省略する事が出来る 引数 3 には プロバイダが引数 1 を評価する方法を示す定数を指定し 省略する事が出来る ADODB.Connection の Close メソッド 開いて居るオブジェクト 及び 依存する総てのオブジェクトを閉じるメソッド Connection.Close( ) Connection オブジェクトを閉じて 関連するシステムリソースを解放する オブジェクトを閉じてもメモリからは削除されず プロパティ設定を変更してもう一度開く事が出来る メモリからオブジェクトを完全に削除するには オブジェクト変数を Nothing に設定する (Dispose メソッドがサポートされて居ないオブジェクトの開放は Nothing を代入する事で行う ) -3-
4 ADODB.Connection の ConnectionString プロパティ データソースへの接続を確立する為に必要な情報を設定 取得するプロパティ Connection.ConnectionString = " キーワード 1= 値 ; キーワード 2= 値 ; " セミコロンで区切られた一連の引数と値のセットを含む詳細な接続文字列を引き渡す事に依りデータソースを指定する キーワードの内 省略出来ないキーワードは Provider と Data Source の 2 種で有る Provider キーワード : 接続するデータベースの種類を表す Access2000 形式のデータベースに接続する場合は Microsoft.Jet.OLEDB.4.0 と謂う値を使用する Data Source キーワード : 接続するデータベースファイル名をドライブ名からパスを含めた形で指定出来る パス名を省略した場合は, カレントフォルダが対象に成る ADO は ConnectionString プロパティで 4 種類の引数をサポートして居る 其他の引数は ADO で処理されずに 直接プロバイダに引き渡される 下記に ADO がサポートする引数を示す 引数 説明 Provider= 接続に使用するプロバイダ名を指定 File Name= 設定済みの接続情報を含むプロバイダ固有のファイル名を指定 Remote Provider= クライアント側の接続を開く際に使用するプロバイダ名を指定 (RDS 而巳 ) Remote Server= クライアント側の接続を開く際に使用するサーバーのパス名を指定 (RDS 而巳 ) URL= ファイルやディレクトリ等のリソースを識別する絶対 URL を指定 ConnectionString プロパティを設定して Connection オブジェクトを開いた後で プロバイダがプロパティの内容を変更する場合が有る 例えば ADO で定義された引数名が プロバイダで該当する引数名にマップされる場合等で有る ConnectionString プロパティは Open メソッドの ConnectionString 引数に使用された値を自動的に継承する 従って Open メソッドの呼び出し中に現在の ConnectionString プロパティを上書きする事が出来る File Name 引数に依り関連の有るプロバイダが呼び出される為 Provider と File Name 引数の両方を引き渡す事は出来ない 接続が閉じて居る場合の ConnectionString プロパティは読み取り 書き込みの両用に成って居るが 接続が開いて居る場合は読み取り専用に成って居る ConnectionString プロパティで引数が重複しても無視される 引数では 最後のインスタンスが適用される RDS での使用 : クライアント側の Connection オブジェクトで使用される場合 ConnectionString プロパティには Remote Provider 及び Remote Server パラメータ而巳を指定する 猶 RDS(Remote Data Service) とは Internet Information Server 等を中継して データソースへのアクセス 及び 更新を行う事を目的とするオブジェクトを謂う -4-
5 Visual Basic 6.0 に付属して居る OLE DB プロバイダ毎の設定値は 下記の通りで有る OLE DB プロバイダ Microsoft Jet 4.0 OLE DB Provider Microsoft Jet 3.51 OLE DB Provider Microsoft OLE DB Provider for SQL Server Microsoft OLE DB Provider for Oracle Microsoft OLE DB Provider for ODBC Drivers ConnectString プロパティの例 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MDB ファイル名 Provider=Microsoft.Jet.OLEDB.3.51;Data Source=MDB ファイル名 Provider=SQLOLEDB;User ID= ユーザー ID;Data Source= サーバー名 Provider=MSDAORA; User ID= ユーザー ID;Data Source= データベース別名 Provider=MSDASQL;User ID= ユーザー ID;Data Source= データソース名 ADO では データベースの種類を Connection の Extended Properties プロパティで指定する 下記の表は 開こうとして居る ISAM の指定に使用する文字列の一覧で有る データベース dbase III dbase III; dbase IV dbase IV; dbase 5 dbase 5.0; Paradox 3.x Paradox 3.x; Paradox 4.x Paradox 4.x; Paradox 5.x Paradox 5.x; Excel 3.0 Excel 3.0; Excel 4.0 Excel 4.0; Excel 5.0 / Excel 95 Excel 5.0; Excel 97 Excel 97; Excel 2000 Excel 8.0; HTML Import HTML Import; HTML Export HTML Export; Text(CSV ファイル TSV ファイル等 ) Text; ODBC ODBC; DATABASE=database; UID=user; PWD=password; DSN=datasourcename; 文字列 Persist Security Info は 機密扱いの認証情報を保存するか何うかを設定し True なら保存する False なら保存しないと謂う事に成る Persist Security Info を True に設定すると ユーザー ID やパスワード等のセキュリティ関連情報は 接続を開いた後も 接続から取得する事が出来る 接続時にユーザー ID とパスワードを渡して居る場合には 接続を開いた後で 其の情報を破棄する事が最も安全で有る 即ち セキュリティを向上させる方法は Persist Security Info を False に設定する事で有る 此れは 開いた状態の接続を信頼されて居ないソースに提供したり 接続情報をディスクに保持して居る場合に特に重要で有る Persist Security Info を False の儘に仕て置けば 信頼されて居ないソースは 接続用のセキュリティ関連情報にアクセス出来ず セキュリティ関連情報が接続文字列情報と共にディスクに保存される事も無い Persist Security Info は 既定では False に設定されて居る -5-
6 ADODB.Connection の CommandType プロパティ Command オブジェクトの型を設定 取得するプロパティ Connection.CommandType = 定数 CommandType プロパティの評価を最適化する目的で使用する 定数には 下記の CommandTypeEnum 値を設定する 定数説明 adcmdtext CommandText をコマンド文字列に依る定義 又は ストアドプロシージャの呼出と仕て評価する adcmdtable CommandText を 総ての列が内部で生成された SQL クエリーに依り返されるテーブル名と仕て評価する adcmdtabledirect CommandText を総ての列を返すテーブル名と仕て評価する adcmdstoredproc CommandText をストアドプロシージャ名と仕て評価する adcmdunknown CommandText プロパティのコマンドタイプは不明で有る ( 既定値 ) adcmdfile CommandText を永続化されて居る Recordset のファイル名と仕て評価する adexecutenorecords CommandText が 行を返さないコマンド 又は ストアドプロシージャ ( 例えば データの挿入而巳を行うコマンド ) で有る事を示す 行が取得されても 其等は破棄され 返されない 常に adcmdtext 又は adcmdstoredproc と組み合わせて使用する CommandType プロパティの値が adcmdunknown( 既定値 ) の場合 パフォーマンスが低下する事が有る 此れは CommandText プロパティの型が SQL ステートメント ストアドプロシージャ 又はテーブル名の孰れかで有るかを調べる為にプロバイダを呼び出す必要が有る為で有る 使用して居るコマンドタイプが明らかな場合は CommandType プロパティを設定する事に依り 該当するコードに直接移動する事が出来る CommandType プロパティが CommandText プロパティのコマンドタイプと一致しない場合に Execute メソッドを呼び出すと エラーが発生する adexecutenorecords 定数は 内部処理を最小限にする事でパフォーマンスを向上させる 此の定数は単独で使用される事は無い 常に adcmdtext 又は adcmdstoredproc と組み合わせて使用される ( 例えば adcmdtext+adexecutenorecords) adexecutenorecords が Recordset.Open メソッド 又はメソッドに使用されて居る Command オブジェクトと使用された場合 エラーが発生する 参考 :CommandText プロパティは SQL ステートメント テーブル名 又は ストアドプロシージャの呼出等 プロバイダのコマンドを含む文字列型の値を設定 取得するプロパティで 既定値はヌルストリング ( 長さ 0 の文字列 ) で有る 通常は SQL ステートメントを使用するが ストアドプロシージャの呼出等 プロバイダが認識する他の種類のコマンドステートメントでも構わない 猶 SQL ステートメントは 特定の文法 又は プロバイダのクエリープロセッサがサポートするバージョンでなければ成らない CommandType プロパティの設定値に依り CommandText プロパティが変更される場合が有る CommandText プロパティは何時でも読み出す事が出来 ADO がコマンド実行中に使用する実際のコマンド文字列の参照も可能で有る -6-
7 ADODB.Connection の CursorType プロパティ Recordset オブジェクトで使用されて居るカーソルタイプを設定 取得するプロパティ Connection.CursorType = 定数 Recordset オブジェクトを開く時に使用するカーソルタイプを指定する為に使用する 定数には 下記の CursorTypeEnum 値を設定する 定数 adopenforwardonly adopenkeyset adopendynamic adopenstatic 説明前方スクロールタイプカーソル レコードを前方向而巳にスクロール出来る事を除き 静的カーソルと同じ属性を持つ レコードセットを一度丈スクロールする必要が有る場合は 此のカーソルに依り性能を向上させる事が出来る ( 既定値 ) キーセットカーソル 動的カーソルと同じ様な属性を持つが 他のユーザが追加したレコードを表示せず 使用中のレコードセットから他のユーザが削除したレコードへのアクセスを許可しない 猶 他のユーザが変更したデータを表示する事は出来る 動的カーソル 他のユーザに依る追加 変更 及び 削除を観る事が出来プロバイダがサポートしないブックマークを除いて レコードセットで許容されて居る総ての種類の移動を行う事が出来る 静的カーソル データの検索 又は レポートの作成に使用する為の レコードの静的コピーで有る 他のユーザに依る追加 変更 又は 削除は表示されない CursorType プロパティは Recordset が閉じて居る場合は 読み取り 書き込み 開いて居る場合は読み取り専用に成って居る CursorLocation プロパティが aduseclient に設定されて居る場合 adusestatic の設定而巳サポートされて居る サポートされて居ない値が設定された場合でも エラーは発生しない 此の場合 サポートされる最も類似する CursorType が代わりに使用される 要求したカーソルタイプをプロバイダがサポートして居ない場合 他のカーソルタイプが返される Recordset オブジェクトが開いて居る時 CursorType プロパティは実際に使用されて居るカーソルタイプと一致する様に変更される 返されたカーソル特有のを調べるには Supports メソッドを使用する Recordset を閉じると CursorType プロパティは元の設定値に戻えう 注意 : 動的カーソル 又は 前方スクロールタイプカーソルで Supports(adUpdateBatch) が True を返す事が有るが バッチ更新はキーセットカーソル 又は 静的カーソルで行う LockType プロパティを adlockbatchoptimistic に設定してから CursorLocation プロパティを aduseclient に設定して バッチ更新に必要な Microsoft Client Cursor Engine を有効にする RDS での使用 : クライアント側 (ADOR) の Recordset オブジェクトで使用される場合 CursorType プロパティは adopenstatic に而巳設定する事が出来る -7-
8 ADODB.Connection の CursorLocation プロパティ カーソルエンジンの場所を設定 取得するプロパティ Connection.CursorLocation = 定数 此のプロパティで プロバイダにアクセス可能な様々なカーソルライブラリの中からカーソルエンジンを選択する 通常は クライアント側カーソルライブラリ 又は サーバー側カーソルライブラリから選択する 定数には 下記の定数値を設定する 定数 adusenone aduseclient aduseserver 説明カーソルサービスは使用されない ( 此の定数は現在は使用されないが 以前のバージョンとの互換性を保つ為に装備されて居る ) ローカルカーソルライブラリより供給されたクライアント側のカーソルを使用する ローカルカーソルエンジンを使うと ドライバに依り供給されるカーソルには無い多くのを使う事が出来る 従って 此の設定を使用するとより高度なが提供される 以前のバージョンとの互換性を保つ為に 同じの aduseclientbatch もサポートされて居る データプロバイダカーソル 又は ドライバに依り供給されるカーソルを使用する 此等のカーソルは柔軟に使用出来 他のユーザがデータソースに加える変更を検出する事が出来る 併し Microsoft Client Cursor Provider の幾つかの ( 分離されたレコードセット等 ) はサーバー側カーソルではシミュレート出来ない為 此等のを此の設定で使用する事は出来ない ( 既定値 ) 此のプロパティ設定は プロパティが設定された後に確立された接続而巳に作用する CursorLocation プロパティを変更しても既存の接続には影響しない 此のプロパティは Connection 又は 閉じて居る Recordset 上では読み取り 書き込みで 開いて居る Recordset 上では読み取り専用で有る Connection.Execute カーソルは 此のプロパティ設定を継承する Recordsets は 自動的に此の設定を関連付けられた接続から継承する ADODB.Connection の RecordSource プロパティ レコードセットを返すステートメント又はクエリーを設定 取得するプロパティ Connection.RecordSource = 値 通常は選択クエリ (SELECT 構文 ) を指定する 値には レコードソースを指定する文字列式を指定し 設定値は 下記の通りで有る 設定値テーブル名 SQL クエリー 内容データベースのテーブルの名前で有る データソースに適した構文を使用した有効な SQL 文字列で有る -8-
9 ADODB.Recordset オブジェクト 検索文 ( 選択クエリ ) を発行した際にデータを格納する為のオブジェクト Recordset オブジェクトは 基に成るテーブルからのレコードセット全体 又は コマンドの実行に依り返された結果のレコードを表し 常にレコードセット内の1つのレコード而巳をカレントレコードと仕て参照する 亦 Recordset オブジェクトは レコード ( 行 ) とフィールド ( 列 ) で構成される Recordset オブジェクトは必要な丈 作成する事が出来る ADODB.Recordset の Open メソッド カーソルを開くメソッド Recordset.Open( 引数 1, 引数 2, 引数 3, 引数 4, 引数 5 ) ベーステーブルからのレコード クエリ結果 又は 以前に保存された Recordset を表すカーソルを開く事が出来る 引数 1 には 実行する SQL ステートメント テーブル名等を指定し 省略する事が出来る 引数 2 には 有効な Connection オブジェクト変数名を指定し 省略する事が出来る 引数 3 には Recordset を開く際にプロバイダが使うカーソルタイプを指定し 省略する事が出来る 引数 4 には Recordset を開く際にプロバイダが使うロックの種類を指定し 省略する事が出来る 引数 5 には プロバイダが引数 1 を評価する方法を示す定数を指定し 省略する事が出来る ADODB.Recordset の MoveNext メソッド 指定の Recordset オブジェクトの次のレコードに移動して 其のレコードをカレントレコードにするメソッド Recordset.MoveNext( ) カレントレコードの位置を Recordset の末尾に向かい 1 レコード進める カレントレコードが最後のレコードの場合に MoveNext メソッドを呼び出すと カレントレコードが Recordset の最後のレコードの後に設定され EOF が True に成る EOF プロパティが既に True の場合 前方へ移動しようとするとエラーが発生する カレントレコードの位置を変更するには 他に下記のメソッドが有る MoveFirst Recordset の最初のレコードに移動する MoveLast Recordset の最後のレコードに移動する MovePrevious Recordset の先頭に向かい 1 レコード戻る 前方スクロール而巳可能なレコードセットで両方向スクロールのサポートが必要な場合 CacheSize プロパティを使用してカーソルの後方スクロールをサポートするレコードキャッシュを作成し Move メソッドを使用して移動する事が出来る キャッシュされたレコードはメモリにロードされる為 必要以上のレコードのキャッシュは避ける可きで有る 前方スクロール而巳可能なレコードセットで MoveFirst メソッドを呼び出す事は出来るが 其の結果 Recordset オブジェクトを生成するコマンドをプロバイダが再度実行する可能性が有る -9-
10 ADODB.Recordset の Close メソッド 開いて居るオブジェクト 及び 依存する総てのオブジェクトを閉じるメソッド Recordset.Close( ) Recordset オブジェクトを閉じて 関連するシステムリソースを解放する オブジェクトを閉じてもメモリからは削除されず プロパティ設定を変更してもう一度開く事が出来る メモリからオブジェクトを完全に削除するには オブジェクト変数を Nothing に設定する (Dispose メソッドがサポートされて居ないオブジェクトの開放は Nothing を代入する事で行う ) ADODB.Recordset の Requery メソッド クエリを再実行して Recordset オブジェクトのデータを更新するメソッド Recordset.Requery( 引数 ) オブジェクトの基に成るクエリ (CommandText プロパティに設定されて居るクエリ ) を再実行して Recordset オブジェクトのデータを更新する 引数には 此の操作が作用するオプションを示すビットマスクを指定し 省略可能で有る 此のパラメータが adasyncexecute に設定されて居る場合 此の操作は非同期で実行され 完了すると RecordsetChangeComplete イベントが発生する Requery メソッドを使用して 元のコマンドを再実行してデータをもう一度格納する事に依り データソースから Recordset オブジェクトの内容全体を更新する 此のメソッドの呼出は Close 及び Open メソッドを連続して呼び出すのと同じ有る カレントレコードの編集中 又は 新規レコードを追加して居る時に此のメソッドを呼び出すと エラーが発生する Recordset オブジェクトが開いて居る間 カーソルの属性を定義するプロパティ (CursorType LockType MaxRecords 等 ) は読み取り専用に成って居る 此の為 Requery メソッドでは 現在のカーソルしか更新する事は出来ない カーソルのプロパティを変更して結果を参照するには Close メソッドを使用してプロパティをもう一度読み取り / 書き込み専用にする必要が有る 此の操作の後 プロパティ設定を変更して Open メソッドを呼び出し カーソルを再度開く ADODB.Recordset の RecordCount プロパティ Recordset オブジェクトに存在する現在のレコード数を示すプロパティ Recordset.RecordCount Recordset オブジェクトに有るレコード数を調べる為に使用する レコード数が解ら無い場合 又は プロバイダやカーソルの種類が RecordCount をサポートして居ない場合は プロパティは -1 を返す 閉じて居る Recordset 上で RecordCount プロパティを読み込むと エラーが発生する 猶 此のプロパティは ADODB.Connection オブジェクトの CursorLocation プロパティが aduseclient でないと サーバー側カーソルではシミュレート出来ない為 使用する事は出来ない -10-
11 ADODB.Recordset の Fields コレクション Recordset オブジェクトの総ての Field オブジェクトが含まれるコレクション Recordset オブジェクトは Recordset 内の列に対応する Field オブジェクトで構成される Fields コレクションを持つ Fields コレクションは コレクション内のオブジェクト数 ( 即ち フィールドの数 ) を示す Count プロパティが有る コレクションのメンバ ( 要素 ) は 常に 0 から順に番号が割り当てられる為 0 から Count プロパティより 1 小さい値迄のループを使用すると 総てのメンバにアクセスする事が出来る 猶 Count プロパティが 0 の場合 コレクションにはオブジェクトが含まれて居ない事を意味する 各々のメンバ (Field オブジェクト ) は 下記の様に フィールド名 又は 序数を用いて表わす事が出来る フィールド名使用 :Recordset.Fields( " タイトル " ) 序数使用 :Recordset.Fields( 1 ) 序数は SELECT 文で指定したフィールドの順番 ( アスタリスク * で総てのフィールドを指定した場合は テーブルに定義されて居る順番 ) に割り当てられ 最初の要素は 0 で有る ADODB.Recordset の Field オブジェクト 共通のデータ型を持つデータの列を表すオブジェクト Fields コレクション内の個々の Field オブジェクトを指す Field オブジェクトの Value プロパティを使用して カレントレコードのデータを設定 又は 参照する事が出来る 但し Field オブジェクトのコレクション メソッド プロパティの中には プロバイダが公開するに依っては使用出来ない物も有る 一般に Field オブジェクトのコレクション メソッド プロパティを使用して 次の操作が可能で有る Name プロパティを使用して フィールド名を参照する Value プロパティを使用して フィールド内のデータ表示や変更を行う Type Precision NumericScale プロパティを使用して フィールドの基本特性を参照する DefinedSize プロパティを使用して 宣言したフィールドサイズを参照する ActualSize プロパティを使用して 与えられたフィールド内の実際のデータサイズを参照する Attributes プロパティ Properties コレクションを使用して 指定フィールドで適用出来るの種類を識別する AppendChunk GetChunk メソッドを使用して 長バイナリ型や文字型データを含むフィールドの値を操作する 猶 総てのメタデータプロパティ (Name Type DefinedSize Precision NumericScale) は Field オブジェクトの Recordset を開く前に利用出来る 動的にフォームを作成する場合に便利で有る ADODB.Recordset の EOF プロパティ カレントレコードの位置が最後のレコードより後に有る事を示すプロパティ Recordset.EOF カレントレコードの位置が最後のレコードより後に有る場合は True を返し カレントレコードの位置が最後のレコード上 又は 其れ以前に有る場合は False を返す 猶 BOF プロパティは カレントレコードの位置が最初のレコードより前に有る場合は True を返し カレントレコードの位置が最初のレコード上 又は 其れ以降にある場合は False を返す BOF 及び EOF プロパティは Recordset オブジェクトがレコードを含むか何うか 又は 他のレコードに移動した時に Recordset オブジェクトの限界を超えて居ないか何うかを調べる為に使用する -11-
12 非接続型 ADO.NET データベース操作の概要 ADO.NET で主要なコンポーネントは データセットとデータプロバイダ ( コネクションとデータアダプタ等の総称 ) で有る データセットは メモリ上に展開したデータベースで有り データプロバイダは 元のデータベースとデータセットとの橋渡しを行う データベースにアクセスして取得したデータをフォームに表示する時のイメージを 下図に示す 上記の図の内 特に頻繁に使用されるコンポーネントと 各コンポーネントの繋がりを 下図に示す 猶 下図のコンポーネントを理解すれば 基本的なデータベース操作は 粗自在に行う事が出来る 特に Windows アプリケーションを開発する時 データアクセスの中心に成るコンポーネントは データアダプタとデータセットで有る 此等は ウィザードを利用して簡単に作成する事が出来る データベースの接続に使用する接続文字列や データを取得したり更新したりする為の SQL ステートメントを手動で作成する必要は殆ど無い -12-
13 .NET データプロバイダ.NET データプロバイダは データベースへの接続や コマンドを実行してデータの取得や更新を行う為のコンポーネントの集合で コネクション データアダプタ コマンド データリーダから構成される.NET Framework に含まれる.NET Framework データプロバイダを次の表に示す データプロバイダ Data Provider for SQL Server Data Provider for OLE DB Data Provider for ODBC Data Provider for Oracle 説明 Microsoft SQL Server 7.0 以降を使用したデータソースに対応 System.Data.SqlClient 名前空間を使用する OLE DB を使用したデータソース (Access 等 ) に対応 System.Data.OleDb 名前空間を使用する ODBC を使用したデータソース (Access MySQL 等 ) に対応 System.Data.Odbc 名前空間を使用する Oracle 以降を使用したデータソースに対応 System.Data.OracleClient 名前空間を使用する コネクション 特定のデータベースへの接続を確立するコンポーネントで有る ADO.NET では Connection オブジェクトを使用して 接続文字列に必要な認証情報を指定する事に依り 特定のデータソースに接続する.NET Framework に含まれて居る各.NET Framework データプロバイダは Connection オブジェクトを持って居る 何の Connection オブジェクトを使用するかは データソースの種類に依り異なる データアダプタ データベースとデータセットを連結するコンポーネントで 下記のを有する データベースから取得したデータをデータセットに格納する データセットの内容でデータベースを更新する 亦 データアダプタは 上記のを果たす為に 下記の 4 個のコマンドを有する 選択コマンド : 必要なデータを抽出する (SelectCommand) 追加コマンド : レコードを追加する (InsertCommand) 削除コマンド : レコードを削除する (DeleteCommand) 更新コマンド : レコードを更新する (UpdateCommand) データアダプタは 上記のコマンドを実行する時 自動的にデータベースに接続し 処理を終了した後は 接続を解除する 其の為 データベースへの接続と解除を手動で行う必要は無い コマンド データベースに対して実行するコマンドを保持するコンポーネントで有る データリーダ コマンドを実行した結果 データベースから 読込専用 前方スクロール可能な形で読み込んだデータで有る 猶 Windows アプリケーションを開発する場合は 主にデータアダプタとコネクションを使用し コマンドとデータリーダは Web アプリケーションの開発に利用する -13-
14 データセット データセットは アプリケーションが使用するデータベースを メモリ上に展開した物で有る データベースと同じ様に データセットには 複数のテーブルを定義する事が出来る 亦 主キーの様なテーブル属性やリレーションシップを設定して テーブル間の関連付けを定義する事が出来る アプリケーションの実行時には 定義したテーブルにデータを保持する事が出来る データセットは 接続するデータソースから完全に独立して居る 其の為 下図の様に 種類の異なるデータベースから取得したデータを 同じデータセットに保持する事も可能で有る 亦 データセット内のデータは データベースの種類に係らず 同じ手法でアクセスする事が出来る Access データベース Oracle データベース SQL Server データベース データセット データセット内のデータは アプリケーション実行中 メモリに常駐する レコードの編集や 必要なデータの抽出等の作業は 総てデータセット上で行う 其の為 レコード操作を行うと データセットの内容と元のデータベースの内容は 異なる物に成る 此の両者の同期を取る為には データアダプタが保持して居るデータベース更新用のコマンド (Update メソッド ) を使用する 此のコマンドを実行すると 再びデータベースに接続して データを更新し 処理を終了した後は 接続を解除する 通常の多階層の実装で DataSet を作成 変更し 次に元のデータを更新する手順を 下記に示す 1.DataAdapter の Fill メソッドを使用して DataSet 内に DataTable を作成し 各テーブルにデータソースのデータを格納する 2.DataRow オブジェクトを追加 更新 又は 削除して 個別の DataTable オブジェクト内のデータを変更する 3.GetChanges メソッドを呼び出して データへの変更丈を格納する 2 個目の DataSet を作成する 4. 此の 2 個目の DataSet を引数と仕て渡して DataAdapter の Update メソッドを呼び出す 5.Merge を呼び出して 2 つ目の DataSet に格納された変更を最初のデータセットにマージする 6.DataSet で AcceptChanges を呼び出す 変更をキャンセルするには RejectChanges を呼び出す -14-
15 OleDbConnection クラス データソースへの開いた接続を表すクラス OleDbConnection オブジェクトは データソースへの一意な接続を表す サーバーとクライアントで構成されるデータベースシステムでは サーバーへのネットワーク接続に相当する OleDbConnection オブジェクトは 適用範囲外に抜けても 自動的に閉じられる事は無い 即ち 例えば プロシージャレベルで宣言した変数に割り当てられた OleDbConnection オブジェクトを開いた場合 其のプロシージャを抜けても 自動的に閉じられる事も オブジェクト自体がメモリから開放される事は無い 其の為 Close メソッドや Dispose メソッドを呼び出すか OleDbConnection オブジェクトを Using ステートメント内に記述する事に依り 明示的に接続を閉じる必要が有る OleDbConnection クラスのコンストラクタ OleDbConnection オブジェクトを生成するメソッド Dim 変数 As New OleDbConnection( 接続文字列 ) 接続文字列を指定して OleDbConnection クラスの新しいインスタンスを初期化する 引数の接続文字列には データベースを開く為に使用する接続を表す文字列を指定する ACCESS データベースを接続する為の接続文字列は 下記の様に成る 例 1:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb" 例 2:"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c: access_db data.mdb" 上記の例 1 では プロバイダに Microsoft.Jet.OLEDB.4.0(Access 2000 以降用 ) を データソース ( 接続対象と成るデータベース ) に EXE ファイルと同じフォルダに格納された data.mdb を指定して居る 猶 接続対象と成るデータベースが EXE ファイルと同じフォルダに格納されて居ない場合は 例 2 の様に フルパスで指定する必要が有る 猶 セキュリティ情報に関して Persist Security Info や Integrated Security も指定する事も出来る OleDbConnection クラスの新しいインスタンスを作成すると 読み書き可能プロパティは 引数の接続文字列のキーワードを関連付けて設定した場合を除いて 下記の初期値に設定される プロパティ 初期値 ConnectionString 引数で指定した接続文字列 ConnectionTimeout 15 Database 空の文字列 ( "" ) DataSource 空の文字列 ( "" ) 猶 此等のプロパティの値を変更するには ConnectionString プロパティを使用する必要が有る OleDbConnection クラスのコンストラクタには 引数を指定しない形のオーバーロードも有る 此のコンストラクタを使用した場合は インスタンスを生成した後 ConnectionString プロパティで プロバイダやデータソースを指定する必要が有る -15-
16 OleDbConnection クラスの Open メソッド ( 参考 ) ConnectionString で指定したプロパティ設定を使用してデータベース接続を開くメソッド Object.Open( ) 接続プール内で開いて居る接続が利用出来る場合は 其の接続を使用し 利用出来ない場合は データソースへの新しい接続を確立する OleDbConnection は 適用範囲外でも自動的に閉じられる事はない 其の為 Close や Dispose を呼び出すか 接続を Using ステートメント内に記述して 使用後は 明示的に接続を閉じる必要が有る OleDbConnection クラスの Close メソッド データソースへの接続を閉じるメソッド Object.Close( ) 保留中のトランザクションをロールバックし 其の後 接続を接続プールに解放する 接続プールが無効の場合は 接続を閉じる StateChange イベントの処理中に Close メソッドを呼び出しても 更に StateChange イベントが発生する事は無い ( イベントの連鎖は無い ) 亦 プログラム中で 複数回 Close メソッドを呼び出しても例外 ( エラー ) は発生しない Close メソッドは 関連するシステムリソースを開放する丈で オブジェクトをメモリから削除する訳では無い メモリから削除するには Dispose メソッドを実行する必要が有る DataAdapter に依る Connection の Open と Close DataAdapter クラスの Fill メソッドを使用してデータベースより DataSet オブジェクトに行を取得する場合 及び Update メソッドを使用して DataSet オブジェクトに加えられた変更をデータベースに書き戻す場合には Connection の開始と終了を明示的に行う必要は無い Fill メソッドは 接続が未だ開いて居ない事を認識すると DataAdapter が使用して居る Connection を暗黙的に開く Fill が接続を開いた場合は Fill の終了時に Fill が接続を終了する 此れは マニュアルには記載されて居ないが Update メソッドの場合も 同様で有る 猶 Fill を呼び出す前に接続が開いて居た場合は 接続は開いた儘に成る 此れに依り Fill や Update 等の単一の操作を扱う場合にコードを簡略化出来る 此れに対し 開いて居る接続を必要とする複数の操作を実行する場合は Connection の Open メソッドを明示的に呼び出し データソースに対する操作の実行後に Connection の Close メソッドを呼び出す事でアプリケーションのパフォーマンスを改善出来る リソースを解放して他のクライアントアプリケーションが使用出来る様にする為に データソースへの接続を開いた儘にする時間は最小限にする事を推奨する -16-
17 OleDbConnection クラスの ConnectionString プロパティ ( 参考 ) データベースを開く為に使用する文字列を取得 設定するプロパティ Object.ConnectionString = 接続文字列 データソース名を含む OLE DB プロバイダ接続文字列 及び 初期接続を確立する為に必要な其の他のパラメータを指定する 接続文字列のは OLE DB 接続文字列のと粗一致して居るが 下記の相違点が有る Provider 句は必須で有る 指定出来るプロバイダには Microsoft.Jet.OLEDB.4.0(Access 2000 以降 ) SQLOLEDB(SQL Server 6.0 以前 ) MSDAORA(Oracle 未満 ) 等が有る ODBC や ADO とは異なり Persist Security Info を false( 既定値 ) に設定すると ユーザーが設定した接続文字列からセキュリティ情報を除いた接続文字列が返される Persist Security Info キーワードを true に設定した場合 ( 非推奨 ) を除き OleDbConnection では 接続文字列のパスワードは永続化されず 返されない 高度なセキュリティレベルを維持する為には Persist Security Info を false に設定して Integrated Security キーワードを使用する事が推奨されて居る 接続文字列の例を 下記に示す "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c: bin LocalAccess40.mdb" "Provider=SQLOLEDB;Data Source=(local);Integrated Security=SSPI" "Provider=MSDAORA; Data Source=ORACLE8i7;Persist Security Info=False;Integrated Security=Yes" 接続文字列中に Data Source キーワードを指定しない場合 プロバイダは 利用可能なローカルサーバへの接続を試みる ConnectionString プロパティを設定出来るのは 接続が閉じて居る時丈で有る 接続文字列値の多くには 対応する読み取り専用プロパティが有る 接続文字列を設定すると エラーが検出された場合を除いて 此等のプロパティが更新される エラーが発生した場合は 孰れのプロパティも更新されない OleDbConnection プロパティは ConnectionString に含まれて居る設定丈を返す 閉じた接続に対して ConnectionString をリセットすると 総ての接続文字列値と関連プロパティがリセットされる ( パスワードも対象と成る ) 例えば Initial Catalog= AdventureWorks を指定した接続文字列を設定した後で 此の接続文字列を下記の様ににリセットすると Database プロパティは AdventureWorks に設定されない ( 接続文字列の Initial Catalog 値は Database プロパティに対応する ) Provider= SQLOLEDB;Data Source= MySQLServer;IntegratedSecurity=SSPI プロパティの設定時には 接続文字列に対して予備的な検証が実行される Provider Connect Timeout Persist Security Info OLE DB Services の値が文字列に含まれて居る場合は 此等の値がチェックされる アプリケーションが Open メソッドを呼び出した時は 接続文字列が完全に検証される 接続文字列に無効なプロパティやサポートされないプロパティが含まれて居る場合は ArgumentException 等の実行時例外が発生する -17-
18 OleDbDataAdapter クラス データソースとデータセットの間を仲介するクラス データセットへのデータの格納とデータソースの更新に使用される一連のデータコマンドとデータベース接続を表す DataAdapter は DataSet とデータソースとの間でデータの取得と保存を行う為の 仲介の役割を果たす DataAdapter は 其の為に DataSet 内のデータをデータソース内のデータと一致する様に変更する Fill メソッドと データソース内のデータを DataSet 内のデータと一致する様に変更する Update メソッドが用意されて居る OLE DB をサポートするデータソース (Access 等 ) に接続する場合は 関連付けられた OleDbCommand オブジェクトや OleDbConnection オブジェクトと共に OleDbDataAdapter を使用する事に依り 全体的なパフォーマンスを向上させる事が出来る データベースの種類 OLE DB データソース SQL Server データベース ODBC データソース Oracle データベース 最適化されたクラス OleDbCommand OleDbConnection OleDbDataAdapter SqlCommand SqlConnection SqlDataAdapter OdbcCommand OdbcConnection OdbcDataAdapter OracleCommand OracleConnection OracleDataAdapter DataAdapter のインスタンスを作成すると 読み書き可能プロパティが初期値に設定される 此等の初期値の一覧に付いては DataAdapter コンストラクタの記述を参照され度い OleDbDataAdapter クラスのコンストラクタ OleDbDataAdapter オブジェクトを生成するメソッド Dim 変数 As New OleDbDataAdapter( 選択クエリ, 接続 ) SelectCommand クラスの CommandText プロパティを使用して OleDbDataAdapter クラスの新しいインスタンスを初期化する (4 種のオーバーロードが有る ) 引数の選択クエリには SQL SELECT ステートメント 又は ストアドプロシージャで有る文字列を指定する 此の文字列は OleDbDataAdapter の SelectCommand プロパティに使用される 亦 引数の接続には 接続を表す OleDbConnection を指定する OleDbDataAdapter の実装では OleDbConnection が開いて居ない場合は 此の接続が開かれ 再び閉じられる 此れは アプリケーションで複数の OleDbDataAdapter オブジェクトの Fill メソッドを呼び出す必要が有る場合に効果的で有る OleDbConnection が既に開いて居る場合 其の接続を閉じるには 明示的に Close メソッドや Dispose メソッドを呼び出す必要が有る OleDbDataAdapter のインスタンスを作成すると 下記の様に読み取り / 書き込みプロパティが初期値に設定される プロパティ MissingMappingAction MissingSchemaAction 初期値 MissingMappingAction.Passthrough MissingSchemaAction.Add -18-
19 OleDbDataAdapter クラスの Fill メソッド データを DataSet に取り込むメソッド Object.Fill( データセット名, テーブル名 ) DataSet 名と DataTable 名を使用して データソース内の列と一致する様に DataSet 内の行を追加 更新する (7 種のオーバーロードが有る ) 引数のデータセット名には レコード 及び 必要に応じてスキーマを格納する為の DataSet を指定する 亦 引数のテーブル名には テーブルマップに使用するソーステーブルの名前を指定する 亦 戻り値には DataSet で正常に追加や更新された行数が返される 此れには 行を返さないステートメントの影響を受ける行は含まれない コマンドが行を返さない場合は DataSet にテーブルは追加されない ( 此の場合 例外は発生しない ) Fill メソッドは SELECT ステートメントを使用して データソースからデータを取得する SELECT コマンドに関連付けられた IDbConnection オブジェクトは 有効な物で有る必要が有るが 開いて居る必要は無い Fill メソッドを呼び出す前に IDbConnection が閉じて居る場合は 接続が開かれ データを取得した後で再び閉じられる Fill メソッドを呼び出す前に接続が開いて居た場合は 接続は開いた儘に成る DataTable へのデータの格納中に重複する列が存在する場合 2 番目以降の列には DbDataAdapter オブジェクトに依り 自動的に columnname1 columnname2 columnname3 の様な形式で名前が付けられ 亦 受信したデータに無名の列が含まれて居た場合は Column1 Column2 の様な形式の名前で DataSet に列が格納される 指定したクエリが複数の結果を返す場合は 各結果セットが個別のテーブルに格納される 2 番目以降の結果セットには 指定されたテーブル名に整数値を追加した名前が付けられる 例えば Table Table1 Table2 の様に成る 行を返さないクエリではテーブルは作成されない 従って 挿入クエリの後で選択クエリを処理した場合 選択クエリで作成されるテーブルが最初に作成されるテーブルに成る為 此のテーブルが Table と謂う名前に成る アプリケーションで列名やテーブル名を使用する時は 此等の名前付けパターンとの衝突が発生しない様に注意する必要が有る Fill メソッドは 大文字と小文字の違いを除いて名前が一致する DataTable オブジェクトが DataSet 内に複数含まれる場合に 其等を区別する 此の場合 Fill メソッドは 大文字と小文字を区別して比較を実行し 対応するテーブルを見付ける 正確に一致するテーブルが存在しない場合は 新しく作成する 此の動作を表すコード例を 下記に示す Dim Ds As DataSet = new DataSet( ) Ds.Tables.Add("aaa") Ds.Tables.Add("AAA") Adapter.Fill( Ds, "aaa" ) ' 既に DataSet 内に存在する "aaa" に充填する Adapter.Fill( Ds, "Aaa" ) ' 新しい "Aaa" と謂う名前のテーブルを追加する 猶 ActiveX データオブジェクト (ADO) と ADO.NET 間のリンクを行う為に 下記のオーバーロードも用意されて居る OleDbDataAdapter.Fill (DataTable, Object) OleDbDataAdapter.Fill (DataSet, Object, String) -19-
20 OleDbDataAdapter クラスの SelectCommand プロパティ 選択クエリの取得と設定を行うプロパティ Object.SelectCommand = OleDbCommand データソース内のレコードを選択する為の SQL ステートメント 又は ストアドプロシージャの取得と設定を行う 引数の OleDbCommand には Fill 処理中に DataSet に格納するレコードをデータソースから選択する為の OleDbCommand オブジェクトを指定する 作成済みの OleDbCommand に SelectCommand が割り当てられた場合 OleDbCommand のクローンは作成されない SelectCommand に依り 作成済みの OleDbCommand オブジェクトへの参照が維持される OleDbCommand クラスの CommandText プロパティ クエリの取得と設定を行うプロパティ Object.CommandText = クエリ データソースで実行する SQL ステートメントやストアドプロシージャの取得と設定を行う 引数のクエリには 実行する SQL ステートメント 又は ストアドプロシージャを指定する ( 既定値は空の文字列 ) CommandType プロパティの値に依り CommandType プロパティに設定する文字列の種類を 下記に示す CommandType プロパティ CommandType プロパティ StoredProcedure ストアドプロシージャ名 1 TableDirect テーブル名 2 Text SQL ステートメント 3 1 ストアドプロシージャ名に特殊文字が含まれる場合 エスケープ文字の構文を使用する必要が有る 孰れかの Execute メソッドを呼び出すと コマンドが此のストアドプロシージャを実行する 2 テーブル名に特殊文字が含まれる場合は エスケープ文字の構文を使用する必要が有る 孰れかの Execute メソッドを呼び出すと 指定したテーブルの総ての行と列が返される 3 OLE DB.NET プロバイダでは OleDbCommand が呼び出す SQL ステートメントやストアドプロシージャにパラメータを渡す為の名前付きパラメータは利用出来ない 此の場合は 疑問符プレースホルダを使用する 次に例を示す SELECT * FROM 本 WHERE ID =? 従って パラメータの疑問符プレースホルダの位置と OleDbParameter オブジェクトを OleDbParameterCollection に追加する順序とを 正しく対応させる必要が有る 現在の接続で実行 又は フェッチ操作が実行中の場合は CommandText プロパティは設定出来ない -20-
21 DataSet オブジェクト 1 データのメモリ内キャッシュを表すクラス データソースから取得されたデータをメモリ内にキャッシュする DataSet オブジェクトは ADO.NET で非接続型分散データシナリオをサポートする上で中心的な役割を果たすクラスで有る DataSet はメモリ内に常駐するデータ表現で有り データソースの違いに拘らず 一貫性の有るリレーショナルプログラミングモデルを提供する 複数の異なるデータソースや XML データと組み合わせて使用する事が出来 亦 アプリケーションに取ってローカルなデータの管理にも使用する事が出来る DataSet は 関連テーブル 制約 及び テーブル間のリレーションシップを含む 完全なデータセットを表現する DataSet オブジェクトモデルを 下図に示す DataSet は DataRelation オブジェクトと相互に関連付ける事が出来る DataTable オブジェクトのコレクションで構成される UniqueConstraint オブジェクトと ForeignKeyConstraint オブジェクトを使用して DataSet 内でデータの整合性を適用する事も出来る DataTable オブジェクトにはデータを格納出来るのに対して DataRelationCollection を使用するとテーブルの階層構造内を移動出来る テーブルは Tables プロパティを使用してアクセス出来る DataTableCollection に格納される DataTable オブジェクトにアクセスする時は 条件付きで大文字と小文字が区別される事に注意され度い 例えば mydatatable と謂う名前の DataTable と Mydatatable と謂う名前のテーブルが有る場合は 此の 2 つのーブルの孰れかを検索する文字列は大文字と小文字を区別すると看做される 但し mydatatable と謂う名前は存在するが Mydatatable と謂う名前が存在しない場合は 検索文字列は大文字と小文字を区別しないと看做される DataSet では データとスキーマを XML ドキュメントとして読み取ったり 書き込んだり出来る 読み込んだデータとスキーマは HTTP で転送出来 XML 対応の総てのプラットフォーム 及び アプリケーションで使用出来る スキーマを XML スキーマと仕て保存するには WriteXmlSchema メソッドを使用する スキーマとデータの両方を保存するには WriteXml メソッドを使用する スキーマとデータの両方を含む XML ドキュメントを読み取るには ReadXml メソッドを使用する -21-
22 データソースからデータを取得して DataSet オブジェクトに充填するには 通常 DataAdapter クラスの Fill メソッドを使用する Fill メソッドを呼び出して DataSet オブジェクトに充填した時 下図の様に DataSet オブジェクト DataTable オブジェクト DataRow オブジェクトが階層化される テーブルの指定 DataTable オブジェクトは DataSet 内に充填されたテーブルを表し DataSet オブジェクトの Tables コレクションから取得する事が出来る 例 : テーブル名が BOOK のテーブルを指定する Ds.Tables("BOOK") レコード ( 行 ) の指定 DataRow オブジェクトは DataSet 内に充填されたテーブルに含まれるレコードを表し DataSet オブジェクト内の DataTable オブジェクトの Rows コレクションから取得する事が出来る 例 : テーブル名が BOOK のテーブルの最初のレコードを指定する Ds.Tables("BOOK").Rows(0) フィールド ( 列 ) の指定 指定レコード内のフィールドは Item プロパティから取得する事が出来る Item プロパティは フィールドの値を Object 型で返すプロパティで有る 例 : テーブル名が BOOK のテーブルの最初のレコードの ID フィールドを指定する Ds.Tables("BOOK").Rows(0).Item("ID") 猶 フィールド値が Null 値か何うかを調べる場合は 下記の様に IsNull プロパティを使用する If Ds.Tables("BOOK").Rows(0).IsNull("ID") Then ' 値が Null 値の場合の処理 End If -22-
23 DataSet 内のテーブル名とフィールド名 Rows コレクション内の特定の DataRow オブジェクトを指定するには 0 から始まる序数を使用するが Tables コレクション内の特定の DataTable オブジェクトを指定する場合や DataRow オブジェクト内の特定の Item プロパティを指定する場合には 0 から始まる序数以外に テーブル名やフィールド名で指定する事が出来る テーブル名とフィールド名は DataAdapter オブジェクトの TableMappings プロパティで決まる 明示的に TblaMappings プロパティを設定しなかった場合は フィールド名は クエリに含まれるフィールド名に合致する様に自動的に設定されるが テーブル名は 既定値で TableN(N は連番 ) と成る 其の為 任意のテーブル名を指定し度い時は Fill メソッドを呼び出す時に DataSet オブジェクトの Tables コレクションと仕て格納し度いテーブル名を第 2 引数に指定する 例 :DataSet オブジェクト内のテーブル名を BOOK に指定して読み込む Dim DaB As OleDbDataAdapter DaB = New OleDbDataAdapter("SELECT * FROM 本 ", Cn) DaB.Fill(Ds, "BOOK") DataTable クラスの Clear メソッド DataTable から総てのデータを消去するメソッド Object.Clear( ) テーブルから総てのレコード ( 行 ) が削除される 子レコードを孤立させる様な子リレーションシップが適用されて居る場合は 例外が発生する データセット内の特定のテーブルをクリアするには 下記の様に記述する データセット名.Tables(" テーブル名 ").Clear DataRowCollection クラスの Count プロパティ レコード数を表す値を取得するプロパティ Object.Count DataRowCollection コレクション内の DataRow オブジェクトの合計数を取得する データセット内の特定のテーブルのレコード数を取得するには 下記の様に記述する データセット名.Tables(" テーブル名 ").Rows.Count データベース操作に於いて 通常 1 件分のデータをレコード 1 レコードに含まれる個々のデータをフィールドと呼ぶが レコードを行 (Row) フィールドを列 (Column) と謂う事も多い 書籍等では 孰れの呼称も使用されて居るので 不要な誤解を招かない為にも 両者が同じ物を表して居る事を認識して置いた方が良い -23-
24 SQL(Structured Query Language: 構造化照会言語 ) とは 直訳すると難しく成るが プログラミング知識の無いオペレーターが簡単にデータを操作出来る様に編み出された言語で有る 国際規格 (ISO) にも定められて居る為 ORACLE でも SQLServer でも基本は同じで有る 4 つの構文を覚える事で 様々な データーベースのデータを扱う事が可能に成る SQL の 4 大構文 下記の構文を SQL の 4 大構文と謂う SELECT 文 : データを選択する文 DELETE 文 : データを削除する文 INSERT 文 : データを追加する文 UPDATE 文 : データの内容を変更する文 SELECT 文の は半角スペースを意味する ( 以下 総ての構文で同じ ) ACCESS で SQL 文を使用する場合は 文の末尾にセミコロン ( ; ) を付ける データを探す構文 SELECTΔ フィールド名 ΔFROMΔ テーブル名 ΔWHEREΔ 検索条件 例文 1:SELECTΔ*ΔfromΔ 本 ; : * ( アスタリスク ) は フィールド総てを表す 本と謂う名前のテーブルに在る全件数のレコードを検索し 総てのフィールドのデータを取得する 例文 2:SELECTΔ タイトル, 価格 ΔfromΔ 本 ; : フィールドを複数指定する場合は タイトル, 価格 の様に, ( コンマ ) で区切る 本と謂う名前のテーブルに在る全件数のレコードを検索し タイトル 価格フィールドのデータを取得する 例文 3:SELECTΔ*ΔfromΔ 本 ΔWHEREΔ 価格 =2500; : * ( アスタリスク ) は フィールド総てを表す 本と謂う名前のテーブルに在る価格フィールドが 2500 のレコードを検索し 総てのフィールドのデータを取得する 例文 4:SELECTΔ*ΔfromΔ 本 ΔWHEREΔ タイトル ΔLIKEΔ %VB% ; :SQL 文内で文字列を指定する場合は ( シングルクオーテージョン ) で区切る 本と謂う名前のテーブルに在るタイトルフィールドに VB という文字列が含まれるレコードを検索し 総てのフィールド のデータを取得する 例文 5:SELECTΔ 本. タイトル, 本. 価格, 著者. 著者名 ΔfromΔ 本, 著者 ΔWHEREΔ 本. 著者 ID= 著者 ID; : 複数テーブルを関連付けた SELECT 文を記述する事が出来る 使用するテーブルは From 句の後ろに 2 つ目以降, ( コンマ ) で区切り 指定する 亦 フィールド指定は必ず テーブル名. フィールド名 とする 理由は 異なるテーブルで 同じフィールド名を使用して居るケースも有るから 本テーブルの著者 ID フィールドと著者テーブルの ID フィールドを関連付け 本. タイトル 本. 価格 著者. 著者名フィ ールドのデータを取得する -24-
25 DELETE 文の データを削除する構文 DELETEΔFROMΔ テーブル名 ΔWHEREΔ 条件 例文 1:DELETEΔFROMΔ 本 ΔWHEREΔ 価格 =2500; :SELECT 文と似て居るが DELETE 文の場合はフィールド名を指定し無い 本と謂う名前のテーブルの価格が 2500 と謂うデータレコードを削除する 例文 2:DELETEΔFROMΔ 本 ; : 条件を指定し無いと 総てのデータレコードが削除される 本と謂う名前のテーブルのデータレコードを総て削除する INSERT 文の データを追加する構文 INSERTΔINTOΔ テーブル名 ( フィールド名, フィールド名 )ΔVALUES( 追加する数値データ, 追加する文字列データ ) 例文 1:INSERTΔINTOΔ 本 ΔVALUES(9, VB ファン,4000, 2000/5/5,4,4); : 例えば VB ファン の様に 文字列型のデータを追加する場合は ( シングルクオーテーション ) で区切る 亦 フィールドとフィールドを区切る文字は, ( コンマ ) を使用する 本テーブルに ID:9 タイトル : VB ファン 価格 :4000 購入日 : 2000/5/5 カテゴリ ID:4 著者 ID:4 のレコードを追加 例文 2:INSERTΔINTOΔ 本 ( タイトル, 価格, 購入日, カテゴリ ID, 著者 ID)ΔVALUES( VB ファン,4000, 2000/5/5,4,4); : 特定のフィールドにデータを挿入し無い場合は 省略出来る 上記の例では ID フィールドを省略して居る 実行した後 データを見ると ID フィールドには 0 が代入されて居る 猶 文字列型のフィールドの場合は空白と成る 此の状態を NULL と謂う 亦 オートナンバー型フィールドの場合は自動で番号が割り振られる 本テーブルに タイトル : VB ファン 価格 :4000 購入日 : 2000/5/5 カテゴリ ID:4 著者 ID:4 のレコードを追加する UPDATE 文の データ内容を変更する構文 UPDATE テーブル名 ΔSETΔ フィールド名 = 変更する数値データ, フィールド名 = 変更する文字列データ ΔWHEREΔ 変更するデータの条件 例文 1:UPDATEΔ 本 ΔSETΔ 価格 =8000, 購入日 = 2000/6/5 ΔWHEREΔ タイトル = VB ファン ; : 総てのデータを変更したい場合は WHERE は必要無いが 特定のレコードを変更したい場合は指定する 本テーブルのタイトルフィールドが VB ファン と謂うレコードの価格を 8000 に 購入日を 2000/6/5 に変更する SQL 文で文字列を記述する場合は シングルクオーテーション ( ' ) で囲む -25-
VB実用④ アクセス操作Ⅱ
VB でアクセス操作 Ⅱ VB 2005 4 プログラムの概要 前回に引き続き 此処では コードに依るデータベースの操作方法を学ぶ コネクションオブジェクトを用いてデータベースと接続し 表形式でデータを表示するデータグリッドビューコントロールにレコードデータを自動的に表示する手法を学ぶ 既に学んだ様にコントロールを連結する事に依り コードレスでデータベース操作が可能で有るが 此処では 着目して居る行
VB.NET解説
Visual Basic.NET データベース編 目次 ADO.NET の概要... 2 ADO.NET と ADO... 2 ADO.NET の仕組み... 4 ADO.NET の特徴... 7 データアクセスの基本... 8 Windows アプリケーションの開発手順... 8 データ接続の作成... 9 データアダプタとコネクションの作成...10 データセットの作成...14 データアクセスの利用...21
VB実用③ アクセス操作Ⅰ
VB でアクセス操作 Ⅰ VB 2005 3 プログラムの概要 此処では コントロールを使用しないで コードに依るデータベースへの接続とデータの取得の方法を学ぶ コントロールに依るデータベース接続は 簡単にデータベースを操作する事が出来ると謂う利点が有り 小規模な運用で有れば 充分な能力を発揮する 併し 中規模 大規模に成り 複雑な操作を必要とする様に成れば 力不足に成る可能性が高く成る 然う成れば
データベースⅠ
データベース操作プログラム Ⅰ VB 2005 8 プログラムの概要 データベースプログラムを手軽に作成する方法としては Access のフォーム機能を用いる事が 先ず考えられます ウィザードも充実しており 操作を覚えれば簡単に作成する事が出来ます 其れでは VB でデータベースプログラムを作るメリットは何んでしょうか 1 つは Access のフォーム機能に比べ コントロールが充実している事 より自由なデザインが可能です
データアダプタ概要
データベース TableAdapter クエリを実行する方法 TableAdapter クエリは アプリケーションがデータベースに対して実行出来る SQL ステートメントやストアドプロシージャで TableAdapter で型指定されたメソッドと仕て公開される TableAdapter クエリは 所有るオブジェクトのメソッドと同様に 関連付けられたメソッドを呼び出す事に依り実行出来る TableAdapter
VB実用Ⅲ① ADOでファイル操作
ADO でファイル操作 VB オートメーション 1 プログラムの概要 事務処理に於いて Microsoft Office は 業界標準 (De Facto Standard) で有ると謂う事が出来る 此の Office に含まれる Excel は スプレッドシートソフトで有り データベースソフトと仕ては Access が用意されて居る 其の為 本格的なデータベースと仕ての使用には Access 等の導入を検討す可きで有るが
ADO.NETのアーキテクチャ
データベース ADO.NET のアーキテクチャ 従来のデータ処理は 主に接続をベースとした 2 層モデルに基づいて居た 最近のデータ処理では 多階層アーキテクチャが多用される様に成った為 プログラマは 非接続型アプローチへと切り替えて アプリケーションに より優れたスケーラビリティを提供して居る ADO.NET のコンポーネント ADO.NET には データへのアクセスとデータの操作に使用出来るコンポーネントが
データベースⅢ
データベース操作プログラム Ⅲ C# 2005 20 プログラムの概要 ACCESS 等のデータベースの操作に不慣れな者でも 簡単に使用する事が出来るようなデータベースアプリケーションを目指します 今回は データグリッドをクリックする事に依り 其のレコードのフィールドデータを個別にテキストボックスやコンボボックスに表示するを付加する 此の際 カテゴリ ID や著者 ID の様に人間に解り難いデータ形式では無く
データベースプログラミング
データセットとデータテーブル データセット (DataSet) とは何かに付いて 簡単に説明する データセットとは 典型的な.NET の Windows データベースアプリケーションでは データセットを通じてアプリケーションからデータベースにアクセスする データセットとは 簡単に謂うと データベースから取得したレコードをメモリ上に持つ為の入れ物で有る 例えば データベースからレコードを取得し 其れをグリッドコントロールに表示する様な
DAOの利用
DAO VB2005 で DAO を使用して Excel のデータを取得 Visual Basic 6.0 Dim DB As DAO.Database Dim RS As DAO.Recordset Dim xlfilename As String Dim xlsheetname As String xlfilename = Form1.StatusBar1.Panels(12) & Dir(Form1.StatusBar1.Panels(12)
C# bit 環境用 C# 2005 基礎 Ⅱ 電脳梁山泊烏賊塾 データベース操作プログラム Ⅰ C# プログラムの概要 データベースプログラムを手軽に作成する方法としては Access のフォーム機能を用いる事が 先ず考えられます ウィザードも充実しており 操作を覚
データベース操作プログラム Ⅰ C# 2005 8 プログラムの概要 データベースプログラムを手軽に作成する方法としては Access のフォーム機能を用いる事が 先ず考えられます ウィザードも充実しており 操作を覚えれば簡単に作成する事が出来ます 其れでは VB でデータベースプログラムを作るメリットは何んでしょうか 1 つは Access のフォーム機能に比べ コントロールが充実している事 より自由なデザインが可能です
mySQLの利用
MySQL の利用 インストール インストール時に特に注意点は無い 本稿記述時のバージョンは 6.5.4 で有る (2017 年 11 月現在では 6.10.4 で https://dev.mysql.com/downloads/connector/net/6.10.html よりダウンロード出来る ) 参照設定 インストールが終了すれば Visual Studio で参照の設定を行う 参照の設定画面で
目次 更新履歴... 1 はじめに... 3 レコードセット?... 3 準備... 5 SQL でデータを取得する... 6 データのループ処理... 7 列の値を取得する... 7 対象行を変更する (MoveFirst, MoveNext, MovePrevious, MoveLast)...
レコードセット (ADODB.Recordset) の使い方 作成日 : 2018/02/05 作成者 : 西村 更新履歴 更新日 更新概要 作業者 2018/02/05 新規作成 西村 1 目次 更新履歴... 1 はじめに... 3 レコードセット?... 3 準備... 5 SQL でデータを取得する... 6 データのループ処理... 7 列の値を取得する... 7 対象行を変更する (MoveFirst,
VB実用Ⅲ⑩ フリーデータベースⅡ
MySQL の利用 MySQL の ODBC(MyODBC) テキストでは MySQL Connector/ODBC(mysql-connector-odbc-3.51.14-win32.msi) をインストールした場合に付いて解説して居るが 此処では MyODBC(MyODBC-3.51.10-x86-win-32bit.msi) をインストールし myodbc-3.51.06-conv_ujis.zip
内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft
Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作 Access 2007 と SQL Server Express を使用 SQL 文は SQL Server 主体で解説 Access 版ノースウィンドウデータベースを使用 DBMS プログラム サーバーエクスプローラ SQL 文 実行結果 データベース エンジン データベース SQL 文とは 1 度のコマンドで必要なデータを効率よく取得するための技術といえます
VB実用⑤ アクセス操作Ⅲ
VB でアクセス操作 Ⅲ VB 2005 5 プログラムの概要 前回に引き続き 此処では コードに依るデータベースの操作方法を学ぶ コネクションオブジェクトを用いてデータベースと接続し 表形式でデータを表示するデータグリッドビューコントロールにレコードデータを自動的に表示する手法を学ぶ 既に学んだ様にコントロールを連結する事に依り コードレスでデータベース操作が可能で有るが 此処では 着目して居る行
Visual Basic Oracle Database 11 Release 1
Visual Basic 2008 + Oracle Database 11 Release 1 2008.01.26 初音玲 Part.1 Oracle Database 製品について Oracleクライアントコンポーネントについて ODP.NETについて OracleConnectionクラスについて Oracle Database 製品について Oracleクライアントコンポーネントについて
VB実用① データベースⅠ
VB でデータベース Ⅰ VB 2005 1 プログラムの概要 データベースプログラムを手軽に作成する方法と仕ては Access のフォーム機能を用いる事が 先ず考えられる ウィザードも充実して居り 操作を覚えれば簡単に作成する事が出来る 其れでは VB でデータベースプログラムを作るメリットは何かと謂えば先ず Access のフォーム機能に比べ コントロールが充実して居り より自由なデザインが可能と謂う事と
Microsoft Office操作
VB から ADO を利用して EXCEL の操作 概要 此の資料では Excel ワークシートをデータソースとして ActiveX オブジェクト (ADO) を使用する方法を説明して居る 亦 Excel 固有の構文上の問題や制限事項に付いても解説する 此の資料では OLAP やピボットテーブルテクノロジ 其の他の Excel データの特殊な使用法に付いては扱わない Excel ワークシートの行 及び
TableAdapterクラス
テーブルアダプタ TableAdapter の概要 TableAdapter を使用すると アプリケーションとデータベース間で通信する事が出来る様に成る 具体的には TableAdapter は データベースに接続し クエリやストアドプロシージャを実行し 返されたデータが格納された新しいデータテーブルを返すか 返されたデータを既存の DataTable に格納する TableAdapter は 更新されたデータをアプリケーションからデータベースに送り返す場合にも使用する
データアダプタ概要
データベース データアダプタ データアダプタの概要 データアダプタは ADO.NET マネージプロバイダの重要な部分で有り データソースとデータセットの間の通信に使用されるオブジェクトのセットで有る マネージプロバイダには アダプタの他に接続オブジェクト データリーダーオブジェクト 及び コマンドオブジェクトが含まれる アダプタは データソースとデータセットの間でデータを交換する為に使用される 多くのアプリケーションでは
Microsoft Office操作(EXCEL)
VB から Excel にデータを転送する方法 概要 此の資料では Microsoft Visual Basic アプリケーションから Microsoft Excel にデータを転送する様々な方法に付いて説明する 亦 最適なソリューションの選択に役立つ様に 夫々れの方法の長所と短所に付いても説明する 詳細 Excel ブックにデータを転送するのに最も良く使用されるのは オートメーションと呼ばれる技法で有る
Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値
コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値 ( 此処では 10) を代入する丈でなく 2 の配列変数の宣言の様に ブレース { } の中にカンマ区切りで初期値のリストを記述し 配列の各要素に初期値を代入出来る様に成った
(OnePoint) ( URL Web Copyright 2005 Microsoft Corporation. All rights reserved. MicrosoftWindowsVisual Basic Visual Studio Microsoft Corporation
Microsoft Microsoft Visual Basic.NET (OnePoint) ( URL Web Copyright 2005 Microsoft Corporation. All rights reserved. MicrosoftWindowsVisual Basic Visual Studio Microsoft Corporation Microsoft Microsoft
VB.NET解説
Visual Basic.NET 印刷編 目次 印刷の概要... 2 印刷の流れ... 2 標準の Windows フォーム印刷ジョブの作成... 3 実行時に於ける Windows フォーム印刷オプションの変更... 3 Windows フォームに於ける接続されたプリンタの選択... 4 Windows フォームでのグラフィックスの印刷... 5 Windows フォームでのテキストの印刷...
ファイル操作
ファイル操作 TextFieldParser オブジェクト ストリームの読込と書込 Microsoft.VisualBasic.FileIO 名前空間の TextFieldParser オブジェクトは 構造化テキストファイルの解析に使用するメソッドとプロパティを備えたオブジェクトで有る テキストファイルを TextFieldParser で解析するのは テキストファイルを反復処理するのと同じで有り
ファイル操作-バイナリファイル
ファイル操作 バイナリ ファイルを読み書きする バイナリファイル ( 即ちテキストファイル以外のファイル ) を読み書きするには FileStream クラス (System.IO 名前空間 ) を利用する FileStream クラスはファイル用のストリームをサポートするクラスで有り Stream クラス (System.IO 名前空間 ) の派生クラスの 1 つで有る 基本的には コンストラクタで指定したファイルのストリームに対して
データベースアクセス
データベースアクセスコンポーネント 1. 概要 データベースアクセスコンポーネントとは SQL データベースにアクセスして SQL 文を実行することによりデータベース検索を行う機能を提供するコンポーネントです また データベースアクセスコンポーネントでは データベースの構成情報 接続情報 エラー情報等を取得することも可能です データベースアクセスコンポーネントは アプリケーションビルダーのメニューから以下のように選びます
ICONファイルフォーマット
グラフィックス 画像フォーマットエンコーダパラメータ 様々なフォーマットで画像を保存 Bitmap クラスを用いる事でビットマップ JPEG GIF PNG 等様々なフォーマットの画像を読み込み操作する事が出来る 更に Bitmap クラスや Graphics コンテナを用いて描画処理等を施したイメージをファイルに保存する事も出来る 此の時 読み込めるフォーマット同様に保存するフォーマットを選択する事が出来る
( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成
KDDI ホスティングサービス (G120, G200) ブック ASP.NET 利用ガイド ( ご参考資料 ) rev.1.0 KDDI 株式会社 1 ( 目次 ) 1. はじめに... 3 2. 開発環境の準備... 3 2.1 仮想ディレクトリーの作成... 3 2.2 ASP.NET のWeb アプリケーション開発環境準備... 7 3. データベースの作成...10 3.1 データベースの追加...10
64bit環境で32bitコンポーネントの利用
64bit 環境 64bit 環境で 32bit コンポーネントの利用 Windows 7 や 8 の出現で 愈々 64bit 環境も普及し始めて来た 64bit 環境に於いては 64bit 用に最適化された 64bit コンポーネントを使用するのが本筋で有ろうが 64bit 環境に於いても 32bit コンポーネントを使用し度い場合が有る 過去の遺物 ( レガシ ) と仕て切り捨てるのではなく 良い物は良い物と仕て有効利用すると謂う観点から
PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 関数とメソッド 関数とメソッド Python には関数 (function) とメソッド (method) が有る モジュール内に def で定義されて居る物が関数 クラス内に def で定義されて居る物がメソッドに成る ( 正確にはクラスが
PYTHON 入門 関数とメソッド 関数とメソッド Python には関数 (function) とメソッド (method) が有る モジュール内に def で定義されて居る物が関数 クラス内に def で定義されて居る物がメソッドに成る ( 正確にはクラスがインスタンス化されてからメソッドに成る ) # 関数 def test_func(): print('call test_func') #
VB実用Ⅲ③ ADOでXML操作
ADO で XML 操作 VB オートメーション 3 プログラムの概要 インターネットの普及 企業間の取引 (B to B) の拡大を背景に 一対多の電子商取引に加えて 多対多のマーケットプレイス等の動きが急進展して居る状況に於いて 異なる情報システム間での情報交換が円滑 且つ 容易に出来る手段が必要とされた 其処で 其の手段と仕て 現在 XML がインターネット上でのデータ交換の基盤技術と仕て広く認識されて居る
第 2 章 PL/SQL の基本記述 この章では PL/SQL プログラムの基本的な記述方法について説明します 1. 宣言部 2. 実行部 3. 例外処理部
はじめに コース概要と目的 Oracle 独自の手続き型言語である PL/SQL について説明します PL/SQL の基本構文 ストアド サブプログラム トリガーの作成方法 またストアド サブプログラムの管理について習得することを目的としています 受講対象者 これから PL/SQL を使用してアプリケーション開発をされる方 前提条件 SQL トレーニング コースを受講された方 もしくは 同等の知識をお持ちの方
正規表現応用
正規表現 正規表現を使って文字列が或る形式と一致するか調べる 指定された正規表現のパターンと一致する対象が入力文字列内で見付かるか何うかを調べるには Regex クラスの IsMatch メソッドを使用する 此処では IsMatch メソッドを使った例を幾つか紹介する 猶 正規表現のパターンと一致する個所を探し 見付かれば 其の箇所を抽出する方法は 正規表現を使って文字列を検索し 抽出する で紹介して居る
構造体
構造体 Byte 配列 構造体とコピーする方法 構造体とバイト配列の変換を行うには System.Runtime.InteropServices 名前空間をインポートして置くと便利で有る Imports System.Runtime.InteropServices using System.Runtime.InteropServices; 下記の 3 種類の構造体にバイト配列の値を格納した場合に付いて検証する
VB実用⑦ エクセル操作Ⅰ
VB でエクセル操作 Ⅰ VB 2005 7 プログラムの概要 事務処理に於いて Microsoft 社のスプレッドシートソフトで有るエクセルは データベースソフトで有るアクセスと共に 業界標準 (De Facto Standard) で有ると謂う事が出来る 此処では 其のエクセルを Visual Basic から操作する方法を 重点的に学ぶ 今回は Visual Basic でエクセルを利用する基本と成るオブジェクト生成と
Android Layout SDK プログラミング マニュアル
プログラミングマニュアル Version 1.3.0 用 更新履歴 年月日 バージョン 履歴 2014.09.08 1.2.0.0 新規 (Layout Utilities ユーザーズ ガイド ) 2016.08.16 1.3.0.0 モバイル端末用レイアウトで直線部品と矩形部品に対応 モバイル端末用レイアウトファイルを CLFX から XML へ変更 Layout Print Engine から
0
第 4 書データベース操作 i 4.1 データベースへの接続 (1) データベースチェックポイントの追加 データベースチェックポイントを追加します (2)ODBC による接続 ODBC を使用してデータベースへ接続します SQL 文を手作業で指定する場合 最大フェッチ行数を指定する場合はここで最大行数を指定します ii 接続文字列を作成します 作成ボタンクリック > データソース選択 > データベース接続
XMLプログラミング(ADO編)
XML プログラミング ADO 2.5 と XML ADO 2.5 と XML ADO 2.5 を利用すれば 粗所有るデータソースからのデータの読み取りや ADO レコードセット ( メモリ上にデータを持つ仮想テーブルの様な物 ) へのデータの配置 XML へのデータ変換が可能に成る XML に変換したデータをデータストリームに配置すれば ファイルや ADO ASP Response オブジェクト
Userコントロール
User コントロール 初めてのユーザーコントロールの作成 作成したクラスは他のプログラムで再利用出来る為 同じコードを何度も繰り返し作成する必要が無い コントロールも 複数のプロジェクトで再利用出来るクラスで有る 同じユーザーインターフェイスを何度も繰り返してデザインすると謂う経験は 恐らく誰でも有る 例えば 姓と名を入力する為の TextBox コントロールを追加した後で 両方を組み合わせてフルネームを作成するコードを追加する等の作業で有る
intra-mart Accel Platform
セットアップガイド (WebSphere 編 ) 第 4 版 2014-01-01 1 目次 intra-mart Accel Platform 改訂情報 はじめに 本書の目的 前提条件 対象読者 各種インストール 設定変更 intra-mart Accel Platform 構成ファイルの作成 WebSphereの設定 Java VM 引数の設定 トランザクション タイムアウトの設定 データベース接続の設定
正規表現概要
正規表現 正規表現の概要 此処では.NET Framework の正規表現に付いて 主に正規表現パターンに付いて 基本を極く簡単に説明する 猶.NET Framework の正規表現は Perl5 の正規表現に対応する様にデザインされて居るので Perl の正規表現を理解して居れば問題は無い ( 勿論 理解して居なくても問題は無い ) 正規表現で出来る事 正規表現は 文字列を検索する為に使用する 正規表現を使うと
PowerPoint Presentation
UiPath 女性ユーザー コミュニティ第 1 回 Meetup 2018.9.12 (WED) 女性ユーザーコミュニティ概要 目的 : まだまだ男性と比べると数が少ない UiPath を使ってる女性ユーザーに対し 勉強 意見交換ができる場を提供し 女性ユーザーをさらに増やします 対象 : 仕事で UiPath を使っている これから使う予定の女性の方 コミュニティ内容 : 勉強会 交流会の実施 デベロッパーコミュニティと何が違うの?
PowerPoint Presentation
Webデザイン特別プログラムデータベース実習編 3 MySQL 演習, phpmyadmin 静岡理工科大学総合情報学部幸谷智紀 http://na-inet.jp/ RDB の基礎の基礎 RDB(Relational DataBase) はデータを集合として扱う データの取り扱いはテーブル (= 集合 ) の演算 ( 和集合, 積集合 ) と同じ データベースには複数のテーブルを作ることができる
シーケンシャルファイルの操作
ファイルの操作 Ⅰ VB 2005 4 今回の課題項目 ファイル概要 ファイルの種類 ( テキストファイル バイナリファイル ) テキストファイルのレコード形式 ( 可変長 固定長 XML CSV) ファイルアクセス ファイルアクセスの種類 ( シーケンシャル ランダム バイナリ ) シーケンシャルアクセス (Sequential Access) シーケンシャルアクセスの概要 シーケンシャルアクセスの特徴
NotifyIconコントロール
NotifyIcon コントロール システムトレイ ( タスクトレイ ) にアイコンを表示する.NET Framework 2.0 以降の場合は 後述の 2 を観て欲しい Outlook や MSN Messenger 等の様に Windows アプリケーションではシステムトレイ ( タスクトレイ ステータス領域等とも呼ばれる ) にアイコンを表示して アプリケーションの状態を示したり アプリケーションのフォームを表示したりする為のショートカットとして利用する事が出来る.NET
ハッシュテーブル
ハッシュテーブル ハッシュテーブル ( 連想配列 ) を使う ハッシュテーブルとは キー (key) と値 (value) のペアを保持して居るコレクションで有る 通常の配列がインデックス番号に依り各値 ( 各要素 ) にアクセス出来るのに比べて ハッシュテーブルでは インデックス番号の代わりにキーを用いて 其の各値にアクセスする事が出来る キーと 其のキーから連想される ( 対応付けられて居る )
PowerPoint プレゼンテーション
レッスン (1) あるワークシート中のあるセルを指定する Worksheets(" ワークシート名 ").Range(" セル ").Value ( 例 ) Worksheets(" データ収集 ").Range("A2").Value あるワークシートのセルから 別のワークシートのセルへ転記する Worksheets(" シート A").Range(" セル ").Value = Worksheets("
— intra-mart Accel Platform セットアップガイド (WebSphere編) 第7版
Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform セットアップガイド (WebSphere 編 ) 第 7 版 2016-12-01 改訂情報はじめに本書の目的前提条件対象読者各種インストール 設定変更 intra-mart Accel Platform 構成ファイルの作成 WebSphereの設定
VB6互換のファイルの処理
Visual Basic のランタイム関数を使用したファイルアクセス FileOpen 関数 ファイルを開いて入出力を行う FileOpen(FileNumber, FileName, Mode[, Access[, Share[, RecorLength]]]) 引数 FileNumber は必ず指定する 有効なファイル番号を指定する FreeFile 関数を使用して 使用可能な次のファイル番号を取得する事が出来る
印刷
印刷 ローカル処理モードでの SQL Server データベースと ReportViewer コントロールの使用 此のチュートリアルでは Microsoft Visual Studio 2005 Windows アプリケーションプロジェクトでレポートを作成する方法と アプリケーションのユーザーがレポートを表示出来る様に ReportViewer コントロールを Windows フォームに追加する方法に付いて説明する
プログラミング基礎I(再)
山元進 クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値 変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全
グラフィックス
グラフィックス PictureBox の Image プロパティに関する良く有る勘違い PictureBox に画像を表示する方法と仕て PictureBox の Image プロパティを使う方法と Graphics の DrawImage メソッドを使う方法が有るが 此の 2 つの方法を混同し 正しく理解して居ない事が多い様で有る 例えば 下記に列挙する様な状況が 此れに該当する 1.PictureBox
ListViewコントロール
ListView コントロール ListView コントロールへ項目を追加 本稿では.NET Framework の標準コントロールで有る ListView コントロール (System.Windows.Forms 名前空間 ) を活用する為に ListView コントロールにデータを追加する方法を紹介する ListView コントロールは データ項目をアイコン表示や詳細表示等に依り一覧表示する為の物で
WEBシステムのセキュリティ技術
WEB システムの セキュリティ技術 棚橋沙弥香 目次 今回は 開発者が気をつけるべきセキュリティ対策として 以下の内容について まとめました SQLインジェクション クロスサイトスクリプティング OSコマンドインジェクション ディレクトリ トラバーサル HTTPヘッダ インジェクション メールヘッダ インジェクション SQL インジェクションとは 1 データベースと連動した Web サイトで データベースへの問い合わせや操作を行うプログラムにパラメータとして
1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String
目次 1.SqlCtl クラスリファレンス 2 (1)Connect() メソッド 2 (2)DisConnect() メソッド 3 (3)Commit() メソッド 3 (4)Rollback() メソッド 4 2.SqlStm クラスリファレンス 5 (1)Prepare() メソッド 5 (2)Execute() メソッド 6 (3)Release() メソッド 6 (4)Immediate()
Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕
Java Script プログラミング入門 3-6~3-7 茨城大学工学部情報工学科 08T4018Y 小幡智裕 3-6 組み込み関数 組み込み関数とは JavaScript の内部にあらかじめ用意されている関数のこと ユーザ定義の関数と同様に 関数名のみで呼び出すことができる 3-6-1 文字列を式として評価する関数 eval() 関数 引数 : string 式として評価する文字列 戻り値 :
NetCOBOL for .NET 応用編
5.1 NetCOBOL for.net 5.2 ADO.NET 5.3 SQL 5.4 READ/WRITE 5.5 5.6 SQL CLR 125 NetCOBOL for.netread/write SQL.NET FrameworkADO.NET 3 Windows NetCOBOL (Oracle Pro*COBOL) READ/WRITE Btrieve Pervasive PowerRDBconnector
VB実用Ⅲ⑩ フリーデータベースⅡ
フリーデータベース Ⅱ VB オートメーション 10 プログラムの概要 事務処理に於いて Microsoft Office は 業界標準 (De Facto Standard) で有ると謂う事が出来る 此の Office には データベースソフトと仕て Access が用意されて居り 現在では データベースの代名詞とも謂う可き存在で有る 古くは MS-DOS 時代に 桐 と謂うデータベースが存在したが
MVP for VB が語る C# 入門
MVP for VB が語る C# 入門 2008.08.09 初音玲 自己紹介 Z80 アセンブラ 6809 アセンブラ F-BASIC N88-BASIC FORTRAN 77 COBOL LISP Turbo Pascal Prolog KABA C 言語 M シリーズ アセンブラ PL/I VB3.0~ PL/SQL T-SQL VB2005/2008 index Microsoft Visual
intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド 初版
Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. IM- 共通マスタの拡張について 2.1. 前提となる知識 2.1.1. Plugin Manager 2.2. 表記について 3. 汎用検索画面の拡張 3.1. 動作の概要 3.1.1. 汎用検索画面タブの動作概要 3.2. 実装の詳細 3.2.1. 汎用検索画面タブの実装
Base によるアプリケーション開発とサポート 鎌滝雅久 /OpenOffice.org 日本ユーザー会 OSC2007 Hokkaido 2007 年 6 月 30 日土曜日 10:55-11:40 北海道大学学術交流会館第 4 会議室
Base によるアプリケーション開発とサポート 鎌滝雅久 /OpenOffice.org 日本ユーザー会 OSC2007 Hokkaido 2007 年 6 月 30 日土曜日 10:55-11:40 北海道大学学術交流会館第 4 会議室 本日の予定 デモ ( どこでもPDF/ 見積書作成 ) Basicでプログラム~Visual Studioはいらない? Microsoft Officeからの移行
Microsoft認定資格問題集(70-483_demo)
Microsoft 認定資格問題集 受験番号 : 70-483 受験名 : C# でのプログラミング言語 : 日本語問題数 :179 問 テストバリュー (TESTVALUE) はこの日本語版問題集の著作権を所有します 問題集の他人への展開 譲渡 転売 複製 転載等の無断行為は法律上で禁止されています 違反が発覚した場合 法的措置を取らせて頂きますので 予めご了承ください 問題 1 Orderオブジェクトのコレクションがあります
eYACHO 管理者ガイド
eyacho 管理者ガイド 第 1 版 - ios は Cisco の米国およびその他の国における商標または登録商標であり ライセンスに基づき使用されています - Apple ipad は Apple Inc. の商標です - Microsoft, Excel および Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です
Microsoft Word JA_revH.doc
X-RiteColor Master Web バージョン このドキュメントでは X-RiteColor Master Web バージョンのインストール手順を説明します 必ずここで紹介される手順に従って設定を実行してください 設定を開始する前に Windows 2003 Server がインストールされており サーバーの構成ウィザード サーバの役割 で下図のように設定されていることを確認してください
PowerPoint プレゼンテーション
5 月 Java 基礎 1 タイトル Java 基礎 2 日間 概要 目的 サーバサイドのプログラミング言語で最もシェアの高い Java SE の基本を習得します 当研修ではひとつの技術ごとに実用的なアプリケーションを作成するため 効果的な学習ができます Java SE の多くの API の中で 仕事でよく利用するものを中心に効率よく学びます 実際の業務で最も利用される開発環境である Eclipse
Microsoft PowerPoint - 第5章補足-DB2組み込みSQL.ppt
開発編第 5 章補足 DB2 組み込み SQL 本書に含まれている情報は 正式な IBM のテストを受けていません また 明記にしろ 暗黙的にしろ なんらの保証もなしに配布されるものです この情報の使用またはこれらの技術の実施は いずれも 使用先の責任において行われるべきものであり それらを評価し 実際に使用する環境に統合する使用先の判断に依存しています それぞれの項目は
モデリング操作ガイド (データベースモデリング編)
Tutorial by SparxSystems Japan Enterprise Architect 日本語版 (2019/08/22 最終更新 ) 目次 1. はじめに... 3 2. データベース設計のモデリング... 4 2.1. テーブル要素の作成... 5 2.2. テーブルの定義... 7 2.3. 列の定義... 7 2.4. テーブル間の関係の定義... 9 3. データベース設計のモデリングでの便利なテクニック
産直くん 9 リピートくん 9 バックアップ リストア作業チェックリスト バックアップ リストア作業項目一覧 作業項目作業目安時間概要 00 バックアップ リストア作業を行う前に 産直くん 9 リピートくん 9 のバックアップ リストア作業を円滑に行うための確認事項をまとめています 1. バックアッ
Version1.1 産直くん 9 リピートくん 9 バックアップ リストア作業チェックリスト バックアップ リストア作業項目一覧 作業項目作業目安時間概要 00 バックアップ リストア作業を行う前に 産直くん 9 リピートくん 9 のバックアップ リストア作業を円滑に行うための確認事項をまとめています 1. バックアップ リストア作業を行う前に 01 バックアップ バックアップ リストアの手順を記載しています
目次 目次 準備いただくもの 準備 SQLServer2008 R2 ExpressEdition のインストール インストールの前に インストール 設定一覧 機
やってみよう! パソコンデータ入力 Ver3.1 - サーバー構築設定手順書 - 2010 年 11 月 15 日 1 / 25 目次 目次... 2 1. 準備いただくもの... 3 1.1. 準備... 3 2. SQLServer2008 R2 ExpressEdition のインストール... 4 2.1. インストールの前に... 4 2.2. インストール... 6 2.3. 設定一覧...
目次 はじめに... 3 システムの必要条件... 4 ライセンス認証... 4 アクティベーション... 6 開発... 7 手順 1. アプリケーションの作成... 7 手順 2. データソースの作成と代入... 7 手順 3. テンプレートの作成 手順 4. レポートビューアの追加
SharpShooter Reports.Win 基本的な使い方 Last modified on: November 15, 2012 本ドキュメント内のスクリーンショットは英語表記ですが SharpShooter Reports JP( 日本語版 ) では日本語で表示されま す 目次 はじめに... 3 システムの必要条件... 4 ライセンス認証... 4 アクティベーション... 6 開発...
MS Office オートメーション
MS Office オートメーション テキストの CSV 形式での保存 :TransferText( サンプル :TransText) Access のデータを 他のアプリケーションで汎用に使える CSV 形式や Excel で使う時に便利な Excel 形式へのコンバート等に付いて 其の方法を紹介する テキストを CSV 形式で保存すると謂うのは Visual Basic でコーディングしても大した物ではないが
推奨 web ブラウザについて スマートフォンやタブレットには様々な web ブラウザがあります Android 端末には 標準ブラウザ ios 端末には Safari どちらでも使用できる Y ブラウザ FireFox Google Chrome などの web ブラウザがあります ビット web
ビット web 日報 V1.0 営業バージョン操作マニュアル [V1.0] 有限会社ビット http://www.bitpower.co.jp/ 石川県かほく市宇野気 1-26 TEL 076-283-5686 推奨 web ブラウザについて スマートフォンやタブレットには様々な web ブラウザがあります Android 端末には 標準ブラウザ ios 端末には Safari どちらでも使用できる
使用する前に
この章では Cisco Secure ACS リリース 5.5 以降から Cisco ISE リリース 2.4 システムへのデー タ移行に使用される Cisco Secure ACS to Cisco ISE Migration Tool について説明します 移行の概要 1 ページ Cisco Secure ACS から データ移行 1 ページ Cisco Secure ACS to Cisco ISE
COBOL Standard Edition COBOL SQL アクセスのご紹介 2017 年 3 本電気株式会社 次 COBOL SQLアクセスとは P.4 COBOL85 SQLEXTENSIONからの移 P.10 製品情報 P.13 COBOL SQL アクセスとは 製品概要 COBOL ソース中の埋め込み SQL によるデータベースアクセスが可能に 業界標準 ODBC(Open DataBase
プログラミング入門1
プログラミング入門 2 第 8 回表形式データ (1) 1 テーマ : 表形式データ (1) 配列と複合データを用いた表形式データ データの登録 データの検索 データの更新 実際的はソフトウェアでは 表形式データの ( 例えば データベースのデータ ) を利用する場面が非常に多く とても重要である そこで 表形式を扱うプログラミングを繰り返しとりあげる 2 テーマ : 表形式データ (1) 配列と複合データを用いた表形式データ
intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド 第7版 None
クイック検索検索 目次 Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 改訂情報概要レコードの追加 / 更新 / 削除レコードの編集レコードを削除するレコードの一括インポートとエクスポート日本語のキャプション表示 2 改訂情報 変更年月日 変更内容 2012-10-01 初版 2013-10-01 第 2 版下記が追加 変更されました 対応するフィールドの型
インテル(R) Visual Fortran コンパイラ 10.0
インテル (R) Visual Fortran コンパイラー 10.0 日本語版スペシャル エディション 入門ガイド 目次 概要インテル (R) Visual Fortran コンパイラーの設定はじめに検証用ソースファイル適切なインストールの確認コンパイラーの起動 ( コマンドライン ) コンパイル ( 最適化オプションなし ) 実行 / プログラムの検証コンパイル ( 最適化オプションあり ) 実行
