oo4oを使う
oo4oは Oracleが提供するデータアクセス用の OLEオブジェクトです。これを Delphi3で使うことは可能です(Ver2は未確認)。タイプライブラリを取り込むとコンパイルエラーが出るのでこの方法はお勧めできません。すべてのオブジェクトを Variant型で定義して使用するレイトバインディングの方法を例示します。VBでは ( ) を使用していた個所がいくつか [ ] で表記するのに注意してください。
■ Delphiから oo4oを使用する例 |
implementation {$R *.DFM} uses ComObj; var objOraSession : variant; {セッションオブジェクト} objOraDatabase : variant; {データベースオブジェクト} objOraDynaset : variant; {ダイナセットオブジェクト} //接続してレコードを追加する処理 procedure TForm1.Button1Click(Sender: TObject); begin Screen.Cursor := crHourGlass; {Session} objOraSession := CreateOleObject('OracleInProcServer.XOraSession'); {Database} objOraDatabase := objOraSession.OpenDatabase['sid','scott/tiger', $0]; {Dynaset} objOraDynaset := objOraDatabase.dbCreateDynaset['SELECT * FROM TBL_SB WHERE SBNO BETWEEN 18000 AND 19000', $0]; {レコード件数} Label1.Caption := IntToStr(objOraDynaset.RecordCount); {Field} ListBox1.Items.BeginUpdate; objOraDynaset.MoveFirst; while not objOraDynaset.EOF do begin {フィールド内容} ListBox1.Items.Add(objOraDynaset.Fields['FIELD'].Value); objOraDynaset.MoveNext; end; ListBox1.Items.EndUpdate; try {追加SQL発行} objOraDatabase.ExecuteSQL('INSERT INTO TBL_SB VALUES (9999,1,''Borland'',''Delphi'')'); finally objOraDynaset.Close; Screen.Cursor := crDefault; end; end; //終了処理 procedure TForm1.Button2Click(Sender: TObject); begin Screen.Cursor := crHourGlass; objOraDatabase.Close; Screen.Cursor := crDefault; end; |