我的2006年德尔福TADOCommand删除有它能参数安全地从一个Delphi TADOCommand在运行时
CommandText (including parameters), Prepared (True), ParamCheck (True)
属性都设置在设计时。
有没有办法让我去删除它的一些参数在运行时,无需改变的CommandText,以适应这些变化。在参数引用的某些表列不需要更新/插入的情况下,这是可取的。
我沿着
TADOCommand.Parameters.ParamByName('MyParam').SafelyRemove;
非常感谢,
邓肯
此外,从命令文本中删除参数不是微不足道的。你需要一个SQL验证器来确保最终的SQL是有效的,而且还需要一系列规则来管理每种情况下被删除的内容。将DELETE FROM Customers WHERE CustomerID = CustID转换为DELETE FROM Customers很容易,但是更复杂的查询如DELETE FROM Orders WHERE OrderLanguage =:language和ShipToCustomer IN(SELECT CustomerID FROM Customers WHERE Address_Country_Language <>:language) ? – 2010-10-12 04:29:03
非常感谢大家的回答。不幸的是你已经证实了我的怀疑。在这种情况下,我会从头开始重建命令文本,而不是试图有选择地修改现有的字符串。 – DuncanGiles 2010-10-15 12:58:28