我的程序如下:
sql:='insert into table1 (date1,rate,todayrate) values(#2004-3-9#,1,1)';
adoQuery.close;
adoQuery.sql.clear;
adoQuery.sql.add(sql);
adoQuery.execsql;
adoQuery.close;
这段程序不是copy的,可能有拼写错误。但在我这里的问题是,把SQL中的insert改为SELECT就一切正常,使用INSERT就报错。
查了这里以前的帖子,关于这个问题的几乎都没有结帖。有人提供不少方法,包括:
sql:='insert into table1 (date1,rate,todayrate) values(:date1,:rate,:todayrate)';
adoQuery.parameters.parambyname('date1'):=edit.text;
在我这里报错。我的SQL是生成的不是死的,所以我的字段名和变量名也都是生成的字符串,我写adoQuery.parameters.parambyname(field):=edit.text;
就是错!!!!
我的sql语句在数据库中运行是正常的。还有,我写成i:=adoQuery.execsql;i为整数,也是错的,能不能请各位高手彻底解决一下这个问题!!!!多谢
sql:='insert into table1 (date1,rate,todayrate) values(#2004-3-9#,1,1)';
adoQuery.close;
adoQuery.sql.clear;
adoQuery.sql.add(sql);
adoQuery.execsql;
adoQuery.close;
这段程序不是copy的,可能有拼写错误。但在我这里的问题是,把SQL中的insert改为SELECT就一切正常,使用INSERT就报错。
查了这里以前的帖子,关于这个问题的几乎都没有结帖。有人提供不少方法,包括:
sql:='insert into table1 (date1,rate,todayrate) values(:date1,:rate,:todayrate)';
adoQuery.parameters.parambyname('date1'):=edit.text;
在我这里报错。我的SQL是生成的不是死的,所以我的字段名和变量名也都是生成的字符串,我写adoQuery.parameters.parambyname(field):=edit.text;
就是错!!!!
我的sql语句在数据库中运行是正常的。还有,我写成i:=adoQuery.execsql;i为整数,也是错的,能不能请各位高手彻底解决一下这个问题!!!!多谢
解决方案 »
- C++数据类型转Delphi问题,请玩转C++/Delphi的大侠帮看看
- delphi代码来分离sql数据库,出错了
- 如何控制label显示
- 请教VB程序打包问题(在线等!!!)
- 当把数据库中身份证号导出到Excel表时,在Excel表中人数据老是不正确,用科学记数法方式显示
- 如何用Report Builder制作工资条,采用A3纸,最好能提供一些例子。
- 如何在SQL语句中使用常量
- 怎样在程序实现对“我的电脑”中的映射网络硬盘的更名和图标更改?(100分,在线等待)
- 我现在成陆军上尉了!
- 为什么不能给分了?我可不想大家认为我耍赖不给分。
- 急需,在Delphi如何调用WIN32 API函数(如:copyfile),多谢了!!
- 取得外部程序中控件的句柄
adoQuery.parameters.parambyname(field).Value:=edit.text;
hhzqf1980(hh)建议的OPen,采用你自己的方法EXEC
只有Select时才Open
adoQuery.parameters[1]:=edit.text;//1表示第1个参数
--》sql:='insert into table1 (date1,rate,todayrate) values ('+ quotedstr('2004-3-9')+
',' + '1,1)';
估计还是sql:='insert into table1 (date1,rate,todayrate) values(#2004-3-9#,1,1)'
这一句有问题,#2004-3-9# 为什么这样表达?
sql:='insert into table1 (date1,rate,todayrate) values(''2004-3-9'',1,1)';
adoQuery.close;
adoQuery.sql.clear;
adoQuery.sql.add(sql);
adoQuery.execsql;
adoQuery.close;
你语句中Value是不能少的:
ADOQuery1.Parameters.ParamByName('asdf').Value:=
ADOQuery1.Parameters[i].Value;
回复时贴上你的出错提示!
ADOQuery1.Parameters.ParamByName('asdf').Value:=datetimetostr(now);
如果是数字可写为:
ADOQuery1.Parameters.ParamByName('asdf').Value:=1;
或
ADOQuery1.Parameters.ParamByName('asdf').Value:='1';
都可以,结帖!!!!!!