- 締切済み
VC++でDBプリコンパイルも同時に行うことは可能?
C言語でプログラミングして、コマンドラインでDBのプリコンパイルを行い、 バインドされたファイルをCV++でコンパイルしているのですが、CV++でプリコンパイルを行い、コンパイルできないものでしょうか?あれば教えて欲しいですが、また 上記方法が記述されているHPまたは本があれば教えてください。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- a-kuma
- ベストアンサー率50% (1122/2211)
> ただ、カスタムビルドセットアップの実行中に > VC++のビルドが終わるため、バインドされたファイルが有効になりません。 そのプロジェクトの構成ファイルに、バインドの出力ファイル(補足だと aaa.c)は 含まれてますか? > 出力ファイル欄には > $(aaa.c) 出力ファイルは、$(aaa.c) ではなく、aaa.c ですよね? ヘルプに書いてある lex/yacc の例も、Cのソースを生成して、それをコンパイルして という手順で実行プログラムを作るものだから、いけると思うんだけどなあ。 ちょこちょこ調べているうちに、参考URLのページなんかを見つけました。 何かの参考になれば…
- a-kuma
- ベストアンサー率50% (1122/2211)
> やってみたのですが、db2のコマンドが実行出来ないみたいです db2 prep や bind で、エラーが出てるんでしょうか? 多分、コマンド毎に別プロセスとして起動されているので、db2 connect が 有効になってないんでしょうね。 三つのコマンドをひとつのバッチファイルにまとめて、それをカスタムビルドの コマンドとして実行してみてはどうでしょうか?
- a-kuma
- ベストアンサー率50% (1122/2211)
> 上記をVC++カスタムビルドにどのように設定したらよいのでしょうか? そのまま打っちゃって大丈夫ですよ。バインドされたファイルの置き場所なんかを プロジェクトの定義に合わせたいのであれば、「ディレクトリ」とか「ファイル」 と書かれたボタンを押すと、それを意味するマクロが挿入されます。 ヘルプのクエリーで「カスタムビルド」をキーワードに検索をかけると、 ユーザーズガイドの中でヘルプが見つかります。そこを読めば、きっと 分かりますよ。
補足
ありがとうございます。やってみたのですが、db2のコマンドが実行出来ないみたいです。 エラーメッセージとして”DB21061E コマンド行環境は初期化されていません。”と 出力されます。何かお呪いが必要なのでしょうか? ちなみに開発環境をNT、BD2はNTサーバです。 現在バインド方法はDB2 Windows NT版のコマンドウィンドウからコマンドラインで作成しています。
- a-kuma
- ベストアンサー率50% (1122/2211)
なんか、書いてあることが良く分かりませんが、VC++ の統合環境で ビルドっ って やれば、SQL のプリコンパイルも勝手にやって欲しいなあ、ということですよね。 できますよ。 プロジェクトの設定のダイアログに「カスタムビルド」ってタブがあるんですけど そこで設定が出来ます。というわけで、 > また上記方法が記述されているHPまたは本があれば教えてください の一番確実なところは VC のヘルプだったりします。
補足
やりたい事は、その通りです。現状バインドファイルを作成するときは、db2のコマンドライン からdb2 connect to XXXX user DB2 using XXXX db2 prep Cソース名.sqc bindfile db2 bind Cソース名.bnd を打ってます。 上記をVC++カスタムビルドにどのように設定したらよいのでしょうか?
補足
ありがとうございます。カスタムビルドのビルドコマンドにdb2cmd aaa.bat でバインドを行う事ができました。ただ、カスタムビルドセットアップの実行中に VC++のビルドが終わるため、バインドされたファイルが有効になりません。 バインド後にビルド(コンパイル及びリンク)を行うのには、どうしたらいいのでしょか? 度々すみません。。。 カスタムビルドの設定は ビルドコマンド欄には db2cmd aaa.bat 出力ファイル欄には $(aaa.c) aaa.batの記述は db2 connect to XXXXXX user DB2 using XXXXXXX db2 prep aaa.sqc bindfile db2 bind aaa.bnd