以下のように記述してdatamoduleからinterbaseへアクセスしようとしています。
でもEAccess Violationクラス例外で異常終了します。
Formからは以下のように記述すればアクセスできますが、datamodule
からはどのようにしたらアクセス出来るのでしょうか?
with datamodule1.IBStoredProc1 do begin
Prepare;
try
StoredProcname := 'BAS_FORM_CAPTION_GET';
ParamByName('APPLICATION_TITLE').AsString := Application_Title;
ParamByName('USER_ID').AsInteger := pub_user_id;
ParamByName('FORM_NAME').AsString := Form_Name;
ExecProc;
result :=ParamByName('CAPTION').AsString;
finally
UnPrepare;
end;
end;
解決しました。
Main Formの Oncreateイベントから
datamoduleのファンクションを呼んでいたからの
ようです。Onshowイベントから呼ぶように
変えたら正常に動作しました。
解決されているようですが、プロジェクトオプションで、datamoduleを先に生成するようにすればOKですよ。
一番上に設定されたFormがMainFormとなりますが、datamoduleはMainFormになり得ないので大丈夫です。
ツイート | ![]() |