【发布时间】:2013-09-16 07:40:34
【问题描述】:
我一直使用这样的脚本将数据插入到 delphi 7 中的表中
sql := 'INSERT INTO table_foo (field1,field2,field3) VALUES ('
+quotedstr('value1')
+','+quotedstr('value2')
+','+quotedstr('value3')
+')';
adoquery1.close;
adoquery1.sql.text := sql;
adoquery1.execsql;
但是我的一个朋友刚刚向我展示了另一种看起来更干净的方式,就像这样:
sql := 'SELECT * FROM table_foo';
adoquery1.close;
adoquery1.sql.text := sql;
adoquery1.open;
adoquery1.insert;
adoquery1.fieldbyname('field1').asstring := quotedstr('value1');
adoquery1.fieldbyname('field2').asstring := quotedstr('value2');
adoquery1.fieldbyname('field3').asstring := quotedstr('value3');
adoquery1.post;
这两种方法中哪一种更好(更快、更容易阅读/调试)?特别是当table_foo 中的数据很大或需要填写的字段较多时。
【问题讨论】:
-
我什至不知道第二种语法;-)
-
您应该阅读有关 cursors 的一般信息,特别是有关 可更新 游标的信息。后者是允许您的朋友使用该技巧的东西。当然,基本语句不会受到客户端游标分配开销的负担。
标签: sql sql-server delphi