掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
別PCでコンパイルした際正常なexeができない問題 (ID:44469)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
環境:Delphi7 OS:Windows7 64bit DB:Firebird1.5 開発を行っていたXPのPC(PC1)からソース、exe、ライブラリパスの追加参照フォルダをそのまま別のPC(PC2)へコピーしてコンパイルを行った際にコンパイルは行えるのですが一部機能が使えなくなってしまいます。具体的には以下の通りです。 取り込みボタンを押した時CSVファイルを選択して取り込み、登録ボタンを押した時取り込んだ内容をテーブルに登録するという処理があるのですが 1.PC1でコンパイルしたexe、PC1でのステップ実行する。 正常に動作する。 2.PC1でコンパイルしたexeをPC2で実行する。 正常に動作する。 3.PC2でコンパイルしたexe、PC2でステップ実行する。 DBに何も登録されない。 ※PC2はXP、7 32bit、7 64bitでテスト。 登録ボタンを押した時の動作 procedure TForm.actPostExecute(Sender: TObject); begin inherited; StartTransaction(ibcdsHData.DBTransaction); try ibcdsHData.ApplyUpdates(0); //…① ibcdsHDetail.ApplyUpdates(0); //…② Commit(ibcdsHData.DBTransaction); //…③ StatusMode := smNone; ClearGrid; except Rollback(ibcdsHData.DBTransaction); ShowMessageDlg(CI_MES_POST_ERROR); end; end; procedure StartTransaction(ibtrnTransaction: TIBTransaction); begin if not ibtrnTransaction.InTransaction then ibtrnTransaction.StartTransaction; end; procedure Commit(ibtrnTransaction: TIBTransaction); begin if ibtrnTransaction.InTransaction then ibtrnTransaction.Commit; end; ※ibcdsHData、ibcdsHDetail共にTIBClientDataSet型です。 PC2でステップ実行した際のエラー ①でステップ実行を行う(F7クリック)。 「プロジェクト Project.exe が EIBClientError クラスの例外を生成しました。 'SQL パーサーエラー: パラメータ名が必要です。' プロセスは停止しています。再開するにはステップ実行または実行を選択してください。」…エラー1 と表示され次の行に処理が移る。 ②でステップ実行を行う。 1回目F7を押した時。 「プロジェクト Project.exe が EDatabaseError クラスの例外を生成しました。 'レコードが見つかりませんでした。キーを指定されていません' プロセスは停止しています。再開するにはステップ実行または実行を選択してください。」…エラー2 と表示される。次の行へ処理は移らない。 2回目F7押した時。 何も起こらない。次の行へ処理は移らない。 3回目F7押した時。 エラー1が表示される。次の行に処理が移る。 ③でステップ実行を行う。 1回目F7を押した時。 エラー2が表示される。次の行へ処理は移らない。 2回目F7押した時。 何も起こらない。次の行へ処理は移らない。 3回目F7押した時。 procedure Commit(ibtrnTransaction: TIBTransaction); が実行され、if分をTRUEで通り ibtrnTransaction.Commit; の処理が行われる。 最終的にexceptには入らずに処理は終了する。 正常に動作する場合HData,HDetailテーブルに指定の情報が追加されるが 3.でテーブルを確認するとデータは何も入っていないかった。 以上のような状況で、何を調べればいいのか分からず困っているのですが、 どこを調べればよいでしょうか。 長くなり申し訳ありませんがよろしくお願い致します。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.