問題タブ [embedded-sql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - Cに埋め込まれたSQL
最終的にCでコンパイルされるDB2用の埋め込みSQLステートメントを作成しようとしています。
参考のために、Cの埋め込みSQL構文に関するチュートリアルまたはマニュアルが見つかりませんでした。私がやりたいケースの1つは、データをテーブルに挿入することです。ほとんどの埋め込みSQLステートメントにはイニシャライザーが必要ですがEXEC SQL
、それは一般的に私の知識の範囲です。私は課題のためにこれを行っています。これまたは解決策に関する詳細情報があれば幸いです。
データベースを照会するステートメントの例:
どのステートメントでデータベースにINSERTできるかを確認したいと思います。次のようなことを試しましたが、うまくいきません。
oracle - Informix ESQLC から Oracle Pro*C への移行
現在、Informix ESQLC ファイルを Oracle Pro*C に移行する作業を担当しており、いくつか質問があります。まず、埋め込み ESQLC コード内で、、、、などの独自の Informix 関数を多数使用rstrdate()
しrtoday()
ますrjulmdy()
。
Oracle Pro*C でこれらを変換する方法についての指針はありますか?
私が理解するのに苦労しているもう 1 つのことは、Oracle の日付データ型です。Informix では、組み込み SQL C コードで、Informix テーブルの日付を扱うホスト変数に long 型を使用します。
しかし、オラクルでは、日付はそれほど長くやり取りされていないという印象を受けていますが、char? それとも、ホスト変数を long 型として指定できますか?
cmake - informix * .ecファイルをコンパイルするようにcmakeを構成するにはどうすればよいですか?
cmakeが見つかったので、それを使用して、esqlコンパイラを使用する小さなプロジェクトのmakeファイルを作成したいと思います。
sql - PostgreSQLECPGで配列を挿入します
PostgreSQL8.4でECPGを使用しています。動的に割り当てられた「null」で終了する整数の配列へのポインタを含む構造体を受け取る関数があります(この場合、nullは-1と定義しました。これは、次のように負の値は必要ないためです。
配列が通常どのように機能するかを示すために、print_foo関数を含めました。ECPGを使用してこれらの値をPostgreSQL列の配列に挿入したい場合、どうすればよいですか?
oracle - Oracle の Decode() 関数クエリ
関数の最初の引数として、組み込み SQL (Pro*C) で選択クエリを使用できますかDecode()
。
informix - 膨大な数の更新に対してカーソルを宣言する適切な方法
私のアイデアが正しいかどうかについて、いくつかの提案が必要です。次のような状況があります。
テーブルのすべての行を更新する必要があります。更新にはいくつかのロジックが関係しています。ロジックは非常に単純ですが、すべての行に対して実行する必要があります。すべての行が更新される可能性があります。
現在、これを行うための ESQL/C プログラムを作成することを考えています。select for update カーソルを使用してすべての行を同等の C 構造にロードし、ロジックを実行してコミットすることを考えています。HOLD キーワードはカーソルに対してどのような役割を果たしますか? 私はこれの役割について少し混乱しています。
これらの更新は、システムのダウンタイム中に行われます。テーブルには、約 1 億 3000 万行が含まれています。約 45 の列があります。ほとんどの列は、SMALLINT および INTEGER 型です。
私は正しい軌道に乗っていますか?提案を歓迎します。
データベースは Informix (IDS バージョン 11.50 FC6) になります。
informix - 「FOR UPDATE」句が esql プログラムでエラーをスローする
移行プログラムを開発中です。DB には 8000 万近くのレコードがあります。コードは次のとおりです。
これを実装すると、エラー メッセージ "-255" が表示されます。仕事を追加して仕事をコミットするという1つの解決策を見つけました。大量のデータがあるため、トランザクション ログが乱雑になる可能性があります。
この問題に利用できる他の解決策はありますか? Informix の IBM Web サイトは、使用法が正しいことを示しています。
事前に助けに感謝します。
ありがとう、マシュー・リジュ
informix - INFORMIX-SQL 用に ESQL/C を使用して開発した経験のある人はいますか?
「Perform」スクリーン ジェネレータおよび「ACE」レポート ライタ内で C 関数を呼び出すなど、INFORMIX-SQL 用の ESQL/C を使用して開発した経験のある人はいますか?
ESQL/C なしで ISQL を使用しています。実行画面のコンパイルを試してみました。説明セクションに「ON BEGINNING CALL userfunc() END」と入力しました。ESQL/C を持っていませんが、実行画面はエラーなしで正常にコンパイルされました!.明らかに、コンパイラは実行しませんでした。 t ESQL/C または C プログラムがリンクされていなくても、C 呼び出しを拒否します。
type-conversion - Informix で float を 10 進数に変換する
10 進数型の列を持つテーブルがあります。テーブルを表す ESQL/C 構造があります。10 進数型のメンバーがあります。同じテーブルに相当する通常の C 構造もあります。上記のフィールドの型は float です。
memcpy を使用して ESQL/C 構造との間でデータを C 構造にコピーするため、10 進数から浮動小数点数への変換に問題があります。Informix ESQL/C Programmer's manual を検索したところ、これを実行できる関数が見つかりませんでした。Google 検索で deccvflt() 関数にたどり着きました。この関数は、float から decimal 型に変換します。
この関数はマニュアルに記載されていませんが、decimal.h で宣言されています。これらの機能は引き続き使用することをお勧めしますか?
あるいは、たまたま C の構造体なので、C の構造体でも decimal 型を使用することも考えていました。このように、私はまだ memcpy を使用できますか?
あなたの考えを共有してください。
IBM Informix 動的サーバー バージョン 11.50.FC3
ありがとう、プラブー
sql - プログラミング言語で SQL を記述するときに、自然結合または暗黙的な列名を使用することは適切ではありませんか?
Natural Join を使用すると、両方のテーブルの列名が同じ場合にテーブルが結合されます。しかし、PHP で記述し、DBA が両方のテーブルにいくつかのフィールドを追加すると、Natural Join が壊れる可能性があります。
Insert についても同じことが言えます。
そうすると、DBA がいくつかのフィールドをテーブルに追加するときに (列 2 または 3 など)、コードが破損するだけでなく、テーブルが汚染されます。そのため、SQL ステートメントがプログラミング言語内で記述され、大きなプロジェクトのファイルに保存される場合は、常に列名を綴るのが最善です。