非同期時間でデータベース サーバーに送信される何千行もの (MySQL) SQL 命令を出力するプログラムを作成しています。SQL 命令の各セットは、*nix パイプ リダイレクトを介してファイルに保存されます。
私が直面している問題は、フィールドNULL
の値に関するものです。char *
ある場合
printf ( "\"%s\" ", foo_field);
および foo_field は である場合とそうでない場合がありますNULL
。
NULL
MySQL はではなくプレーンな を受け取る必要がある"NULL"
ため、値がある場合は二重引用符を削除する必要がありNULL
ます。値が でない場合はNULL
、二重引用符で囲む必要があります。
私が示したケースではif then
、パラメーターが%s
ifNULL
または\"%s\"
if notになるように を配置できますNULL
。
しかし、20 個のフィールドを持つ SQL 行を考えると、このようにするのはあまり良いことではありません。どうすればこれを達成できますか?