掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
INTERBASEでTRANSACTION接続時にエラー (ID:22706)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphi2005,INTERBASE6,WinXPの環境下でデータベースアプリを勉強中です DataModuleにIBDatabase1,IBTransaction1,IBDataSet1,Datasouece1をそれぞれ配置してDataModule1.DataModuleCreateイベントでオープンしようとしていますがIBTransaction.StartTransactionで 「プロジェクト〜.exeは例外クラスEIBClientError(メッセージ’Cannot perform operation--DB is not open')を送出しました」でエラーになります。 HELPでは不適切な方法でコンポーネントを使用したときに出るようなのですが調べてもよく分かりませんどなたかご教授をお願いします。ちなみにコードを使用しないで同じコンポーネントで実行した場合はDB接続プロンプトがでて 開くことが出来ます。 コードは以下のように書いています。 procedure TDataModule1.DataModuleCreate(Sender: TObject); begin with IBDatabase1 do begin // データベースの設定 DatabaseName := 'E:\〜.fdb'; Params.Clear; Params.Add('Password=masterkey'); Params.Add('user_name=SYSDBA'); Params.Add('lc_ctype=SJIS_0208'); end; with IBTransaction1 do begin // トランザクションの設定 Params.Clear; Params.SetText('consistency'); Params.SetText('wait'); Params.SetText('write'); end; with IBDataset1 do begin // データセットの設定 DeleteSQL.Clear; DeleteSQL.Add('DELETE FROM BUHINLIST'); DeleteSQL.Add(' WHERE '); DeleteSQL.Add(' hinban = :hinban'); InsertSQL.Clear; InsertSQL.Add('INSERT INTO BUHINLIST '); InsertSQL.Add('(hinban,hinmei,check_flg,dd_setup,dd_update)'); InsertSQL.Add('VALUES '); InsertSQL.Add('(:hinban,:hinmei,:check_flg,:dd_setup,:dd_update)'); RefreshSQL.Clear; RefreshSQL.Add('SELECT * FROM BUHINLIST '); RefreshSQL.Add('WHERE hinban=:hinban '); SelectSQL.Clear; SelectSQL.Add('SELECT * FROM BUHINLIST '); ModifySQL.Clear; ModifySQL.Add('UPDATE BUHINLIST '); ModifySQL.Add('SET '); ModifySQL.Add('hinban=:hinban '); ModifySQL.Add('hinmei=:hinmei '); ModifySQL.Add('check_flg=:check_flg '); ModifySQL.Add('dd_setup=:dd_setup '); ModifySQL.Add('dd_update=:dd_update '); end; // データセットのオープン IBDatabase1.Connected; IBTransaction1.StartTransaction; <<===ここでエラーになります。 IBDataset1.Open; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.