我的程序中有一段代码是将一个数据库中查询到的记录插入到另一个数据库中,我把这查询和插入这两步合成到一句SQL语句中,下面是我的那部分代码:
for i := 0 to lb_temp.Count - 1 do
begin
jk_temp.Active := false;
jk_temp.SQL.Clear;
sql_query := 'insert into chaobiao(编号,户名) ';
sql_query := sql_query + 'select 编号,户名';
sql_query := sql_query + ' from sjk where 村名 =:name';
jk_temp.SQL.Add(sql_query);
jk_temp.Params[0].AsString := lb_temp.Items[i];
jk_temp.ExecSQL;
jk_temp.Active := true;
end;
可以执行到jk_temp.ExecSQL;这句,可是当执行jk_temp.Active := true;时,就弹出错误提示框,提示框里所写的是:
Error creating cursor handle.
请问这是怎么回事啊?请大家帮帮我,我现在很急,谢谢了!
for i := 0 to lb_temp.Count - 1 do
begin
jk_temp.Active := false;
jk_temp.SQL.Clear;
sql_query := 'insert into chaobiao(编号,户名) ';
sql_query := sql_query + 'select 编号,户名';
sql_query := sql_query + ' from sjk where 村名 =:name';
jk_temp.SQL.Add(sql_query);
jk_temp.Params[0].AsString := lb_temp.Items[i];
jk_temp.ExecSQL;
jk_temp.Active := true;
end;
可以执行到jk_temp.ExecSQL;这句,可是当执行jk_temp.Active := true;时,就弹出错误提示框,提示框里所写的是:
Error creating cursor handle.
请问这是怎么回事啊?请大家帮帮我,我现在很急,谢谢了!
解决方案 »
- xp中,修改注册表的程序,在administrator用户下可以正常执行,user用户下,找不到这个主键
- 关于程序缩小到托盘后系统无法关机的问题
- 外包给一家ui公司做的b/s系统界面,大家评评,给分
- delphi7中QReport添加后,QuickRep不能用怎么办
- 不知道为什么总是无法打开Access早期的版本数据库?
- 几个小问题,可能有点问得有点怪!分不够再加!
- 哪有dbgrideh控件的下载,
- 关于 Tcanvas 的问题,来着有分
- 请各位帮帮忙!
- 两个用delphi写的小东西。请大家测试一下。。有什么问题。非常谢谢了。
- ◆◆◆如何修改OpenPictureDialog使其可以预览文本文件?
- 如何执行资源文件?
jk_temp.Active := false;
jk_temp.Active := True;
去掉,根本不需要!只要jk_temp.ExecSQL即可
类似楼主的操作,没有返回数据集,是 .execsql 的
直接Format字符串不好么?
已经 execSQL了就不要 jk_temp.Active := true了
分给优华吧
无返回值:execSQL(update,insert)
jk_query.SQL.Clear;
sql_query := 'insert into chaobiao(村名,编号,户名,上月电量,表止码,表起码,新表止码,新表起码,倍率,上月电量,抄表标志) select 村名,编号,户名,上月电量,表起码,新表止码,新表起码,倍率,上月电量,抄表标志 from sjk where 村名=:name';
jk_query.SQL.Add(sql_query);
jk_query.Params[0].AsString := lb_temp.Items[i];
jk_query.ExecSQL;
我调试过,当只插入 村名,编号,户名,上月电量 时,可以执行插入语句,可当把其它字段也加上时,却弹出错误提示框: 'Type mismatch in expression',而且我单独插入这几个字段时,也是一样的问题,我都检查过了,它们的类型都一样的啊,因为我用PB、VB都做过,都能执行啊,请问这是怎么回事啊?