写法类似于:
insert into table (a,b,c,d) values (?,?,?,?)
然后
for(1 to 100000)
{
//循环,赋值,
}
这样oracle 就只用编译一次sql就可以,加大效率.
insert into table (a,b,c,d) values (?,?,?,?)
然后
for(1 to 100000)
{
//循环,赋值,
}
这样oracle 就只用编译一次sql就可以,加大效率.
要动态访问数据库,就动态地赋值(字符串的形式)
要静态访问,就在数据控件的sql属性里直接设置
"要动态访问数据库,就动态地赋值(字符串的形式)"
以字符串的形式拼凑sql.
oracle会认为所有sql都不一样,所有sql都要编译一次再执行.这样效率很慢的哦.试过动态参数.但效果不佳.想了解一下:delphi 有预处理sql的写法吗?它能让oracle认为只是同一条sql.只编译一次.
qry.CommandText := str;qry.Parameters.ParseSQL(qry.CommandText,true);for i := 1 to 8 do
begin
try
qry.Parameters[0].Value := 1000000+i;
qry.Parameters[2].Value := 'test'+i;
qry.Parameters[4].Value := 101;
qry.Execute;
except
on e:exception do
begin
showmessage(e.Message);
end;
end;
end;
以上写法发现有错误
qry.Parameters.ParseSQL(qry.CommandText,true);
之后就不能执行了.
想问一下 Parameters.ParseSQL 这样的写法有什么用呢?