- ベストアンサー
Cソースにホスト変数を宣言したヘッダをインクルード方法
C言語ソースにホスト変数を宣言したヘッダをインクルードする記述を教えてください。下記の記述をしたのですが、エラーになります。 EXEC SQL INCLUDE SQLCA; EXEC SQL BEGIN DECLARE SECTION; #include "../host_header.h" EXEC SQL END DECLARE SECTION;
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> ファイルが無いとエラーになってしまいました。。。。 質問に ../host_header.h とあったので、ソースファイルがあるひとつ上に host_header.h があると思ったのですが、実際にファイルはあるのですか?
その他の回答 (2)
- a-kuma
- ベストアンサー率50% (1122/2211)
EXEC SQL BEGIN DECLARE SECTION ~ END は、SQL のプリプロセッサが 解釈するところなので、Cのディレクティブを理解できないんじゃないで しょうか? こんな感じじゃ駄目なのかな? EXEC SQL BEGIN DECLARE SECTION; EXEC SQL INCLUDE '../host_header.h' EXEC SQL END DECLARE SECTION; # やったことはないので、自信はないです (^^;
補足
回答ありがとうございます。ただ、やってみたのですが、ファイルが無いとエラーになってしまいました。。。。
- ranx
- ベストアンサー率24% (357/1463)
C言語というより、ある種のSQLプリプロセッサだろうと思いますが。 環境やエラーの内容について書いて頂いた方が的確な回答が出ると思います。 とりあえず、C言語(Cプリプロセッサ)のインクルード文としては、 上記の記述で普通は大丈夫です。ただし、ディレクトリを書き込むのではなく、 ソース中では #include "host_header.h" のようにして、コンパイルオプション(UNIXのCなら-Iなど)でインクルード ファイルのディレクトリを指定するのが、より一般的です。
補足
#include "host_header.h" と記述したのですが、下記のエラーメッセージが出ます。 エラーメッセージは”SQL0008N ホスト変数宣言で見つかった字句 "#" が無効です。” OSはNTです。
お礼
できました。ヘッダーファイルがソースの上の別ディレクトリにあったため、 エラーとなっていました。ありがとうございます。