在我们当前的代码库中,我们使用MFC db类连接到DB2。这是所有由另一个开发团队传给我们的旧代码,所以我们知道一些历史,但不是全部。动态SQL与静态SQL
大部分代码通过诸如Update()和Insert()之类的函数,将诸如“INSERT INTO SCHEMA.TABLE”之类的函数提取到您提供的字符串中,从而抽象SQL查询的创建。这通过位于数据库类顶部的记录集类来完成
执行SQL查询的另一种方法是使用dbclass.ExecuteSQL(String)在数据库类上直接执行它们。
我们想知道每种方法的特点和缺点。从我们的角度来看,执行ExecuteSQL()调用要容易得多,因为我们不需要编写另一个类等,但是必须有充分的理由去做另一种方式。我们只是不确定它们是什么。
任何帮助将是伟大的!
感谢马克
更新----
我想我可能误解了动态和静态SQL。我认为我们的代码总是使用Dynamic,所以我的问题真的变成了,我应该自己构造SQL字符串并执行ExecuteSQL(),或者应该在数据库中的每个表的类中抽象出它,因为来自mfc的记录集类似乎去做?
不管你做什么,总是消毒你把该值SQL查询,如果你还没有做。动态SQL对SQL注入非常有效。确保数据中没有任何内容会改变你的SQL语句。 – Skurmedel 2009-06-09 08:00:19