現在のコードベースでは、MFC dbクラスを使用してDB2に接続しています。これは、別の開発チームによって私たちに渡されたすべての古いコードなので、歴史の一部を知っていますが、すべてではありません。動的SQLと静的SQL
コードのほとんどは、あなたが提供する文字列に "INSERT INTO SCHEMA.TABLE"のようなものを追加するUpdate()やInsert()などの関数を通じてSQLクエリの作成を抽象化しています。これは、データベースクラスの上部にあるレコードセットクラスを介して行われます
SQLクエリを実行するもう1つの方法は、dbclass.ExecuteSQL(String)を使用してデータベースクラスで直接実行することです。
私たちはそれぞれのアプローチのプロと欠点が何であるか疑問に思っています。私たちの観点からは、ExecuteSQL()呼び出しをもっと簡単に行うことができます。別のクラスなどを書く必要はありませんが、他の方法を行うには十分な理由が必要です。彼らが何であるかはわかりません。
助けがあれば助かります。
マーク
更新----
おかげで、私は動的および静的SQLを誤解しているかもしれないと思います。私は私のコードは、常に自分のSQL文字列を自分で作成し、ExecuteSQL()を行うか、これは、mfcからのレコードセットクラスとして、データベース内の各テーブルのクラスで抽象化する必要があります私のコードは、常にダイナミックを使用すると思う何をする?
、いつもあなたがに入れた値をサニタイズあなたがまだしていない場合は、SQLクエリ。動的SQLはSQLインジェクションに対して非常に強力です。 SQL文を変更する可能性のあるデータがないことを確認します。 – Skurmedel