インターベースとD6を使ってWinXPの環境にアプリを試作中の初心者です。DelphiではDataModuleがあるとのことでそこにTIBDatabase,TIBDataset、TIBTransaction、TDatasource、TIBQueryを貼り付けOnCreateイベントにサンプル等を見て以下のコードを書きましたが実行するとスタックオーバーフローでエラーになります。
コード
procedure TDM_accsctrl.DataModuleCreate(Sender: TObject);
begin
// データベースの設定
with DB_ACCESSLIST do
begin
DatabaseName:='d:\InterBase\database\accesslist.gdb';
Params.Clear;
Params.Add('User_name=SYSDBA');
Params.Add('password=masterkey');
Params.Add('lc_ctype=SJIS_0208');
LoginPrompt := False;
end;
// トランザクションの設定
with TRN_ACCESSLIST do
begin
Params.Clear;
Params.SetText('consistency');
Params.SetText('wait');
Params.SetText('write');
end;
// データセットの設定
with DST_ACCESSLIST do
begin
SelectSQL.Clear;
SelectSQL.Add('SELECT * FROM T001_ACCESSLIST ');
end;
// データセットのオープン
DB_ACCESSLIST.Connected := True;
TRN_ACCESSLIST.StartTransaction;
DST_ACCESSLIST.Open;
end;
トレースしてみるとデータセットのオープン⇒"DB_ACCESSLIST.Connected := True;から"TRN_ACCESSLIST.StartTransaction;”にいかずに先頭の"with DB_ACCESSLIST do"に戻りループしていて、スタックオーバーフローになります。
コードにミスはないと思いますが原因究明のヒントがあれば教えてください。
また、DBはISQLでは正常にConnectできますし、SQLも使えます。
これかな?
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=067208
ツイート | ![]() |