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