1

私は pro c を初めて使用し、pro c プログラムの開発に関する実際的な経験がありません。プログラムのデバッグ中に関数呼び出しに遭遇しました

sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);

Google で sqlcxt() 関数のヘルプを検索しましたが、リソースが見つかりませんでした。一部のブログでは、pro c プログラムの事前コンパイル中に発生した問題について言及されていますが、それらは私には役に立ちません。

4

1 に答える 1

6

sqlcxt() は文書化されていない関数です。

Pro*C を作成してプリコンパイラで実行すると、プリコンパイラは「.pc」ソース ファイルを取得し、システムの C コンパイラがコンパイルするのに適した「.c」ファイルを生成します。ただし、プリコンパイラ コード ('EXEC SQL ....' ディレクティブなど) から C コードに変換されるものの一部は、文書化されていない関数を参照しています。

アイデアは、SQL 式を C コードに埋め込むだけで、Oracle のプリコンパイラがコードのこれらのセクションを C に変換するというものです。あなたが見つけた sqlcxt() 関数は、文書化されていない関数の 1 つです。

純粋な C コードを作成し、Oracle とやり取りすることに関心がある場合は、OCI ライブラリを調査する必要があります。Pro*C を作成する場合は、「.pc」ソース ファイルのみに注意する必要があり、「.c」ファイルの内容は実際には気にする必要はありません。

それが役立つことを願っています。

于 2011-11-15T04:41:37.100 に答える