2

最終的にCでコンパイルされるDB2用の埋め込みSQLステートメントを作成しようとしています。

参考のために、Cの埋め込みSQL構文に関するチュートリアルまたはマニュアルが見つかりませんでした。私がやりたいケースの1つは、データをテーブルに挿入することです。ほとんどの埋め込みSQLステートメントにはイニシャライザーが必要ですがEXEC SQL、それは一般的に私の知識の範囲です。私は課題のためにこれを行っています。これまたは解決策に関する詳細情報があれば幸いです。

データベースを照会するステートメントの例:

EXEC SQL SELECT SNAME, AGE into :sname, :sage
    FROM ONE.SAILOR
    WHERE sid = :sid;

どのステートメントでデータベースにINSERTできるかを確認したいと思います。次のようなことを試しましたが、うまくいきません。

 EXEC SQL INSERT ....
4

3 に答える 3

2

IBMのEmbeddedSQLマニュアルを参照してください。

埋め込みSQLは、ホスト言語が何であってもほぼ同じです。

于 2008-11-19T01:25:13.223 に答える
2

4 つのドットは構文的に有効ではありません:-D

確実な方法は、他の INSERT ステートメントと同じです。列と値をリストします。

EXEC SQL INSERT INTO SomeTable(Col1, Col2, Col3) VALUES(:hv1, :hv2, :hv3);

ここで、:hv1、:hv2、:hv3 は、表の列に適した型の 3 つのホスト変数を表します。これらの列にデフォルトが指定されているか、NULL を受け入れる限り (この場合、これは実際には単なるデフォルトのデフォルトです)、テーブルにはこれら 3 つ以外の列を含めることができることに注意してください。信頼できない方法では、列がリストされません。

EXEC SQL INSERT INTO SomeTable VALUES(:hv1, :hv2, :hv3);

ここで、正しいシーケンスを取得することに依存しており、各列に値を指定する必要があります。SomeTable に余分な列を含めることはできません。

于 2008-11-19T05:36:52.560 に答える
1

sqlliteを使い始めたばかりです。C++の優れたドキュメントに加えて、DB2 に依存せずにコードを単体テストでき、コードに簡単に追加できる SQLlist があると便利です。

于 2008-11-19T03:45:44.640 に答える