with ADOQuery1 do
begin
close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from Table1');
ADOQuery1.Open;
ADOQuery1.First;
while(not eof) do
begin
Application.ProcessMessages;
with ADOQuery2 do
begin
close;
ADOQuery2.SQL.Clear;
SQLstr:='insert into Table2(A1,CSRQ) values(';
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+ADOQuery1.FieldByName('B1').AsString;
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+',';
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+DatetoStr(shortdateformat(ADOQuery1.FieldByName('B2').AsString));
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+')';
//showmessage(SQLstr);
ADOQuery2.SQL.Add(SQLstr);
ADOQuery2.ExecSQL;
end; ADOQuery1.Next;
这段代码的作用是取出表Table1中的B1,B2字段并且插入表Table2中。现在问题在于B2为datetime型,而CSRQ为varchar型。例如:B2: 2002-8-12
想实现写入Table2中的CSRQ的值为 20020812这时候程序报错:
[Error] UnitMain.pas(570): Missing operator or semicolon
[Error] UnitMain.pas(570): Incompatible types: 'TDateTime' and 'String'570行应该就是这句:
SQLstr:=SQLstr+DatetoStr(shortdateformat(ADOQuery1.FieldByName('B2').AsString));我改成
SQLstr:=SQLstr+formatdatetime('yyyymmdd',ADOQuery1.FieldByName('B2').AsString);还是抱同样的错误。请教各位大虾这句话到底该怎么写。感谢!
begin
close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from Table1');
ADOQuery1.Open;
ADOQuery1.First;
while(not eof) do
begin
Application.ProcessMessages;
with ADOQuery2 do
begin
close;
ADOQuery2.SQL.Clear;
SQLstr:='insert into Table2(A1,CSRQ) values(';
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+ADOQuery1.FieldByName('B1').AsString;
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+',';
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+DatetoStr(shortdateformat(ADOQuery1.FieldByName('B2').AsString));
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+')';
//showmessage(SQLstr);
ADOQuery2.SQL.Add(SQLstr);
ADOQuery2.ExecSQL;
end; ADOQuery1.Next;
这段代码的作用是取出表Table1中的B1,B2字段并且插入表Table2中。现在问题在于B2为datetime型,而CSRQ为varchar型。例如:B2: 2002-8-12
想实现写入Table2中的CSRQ的值为 20020812这时候程序报错:
[Error] UnitMain.pas(570): Missing operator or semicolon
[Error] UnitMain.pas(570): Incompatible types: 'TDateTime' and 'String'570行应该就是这句:
SQLstr:=SQLstr+DatetoStr(shortdateformat(ADOQuery1.FieldByName('B2').AsString));我改成
SQLstr:=SQLstr+formatdatetime('yyyymmdd',ADOQuery1.FieldByName('B2').AsString);还是抱同样的错误。请教各位大虾这句话到底该怎么写。感谢!
解决方案 »
- fastreport 下划线
- ADOQuery简单存储过程调用问题 ??
- 能在静态方法中引用祖先类的相同静态方法吗?
- 请教怎样实现向远程数据库的批量更新?
- [1分调查]只使用笔记本不使用台式机编程的多吗?
- 这样联接数据库对吗?可是总提示from子句语法错误!!
- OutLookBarpro第三方控件调试问题
- 那有较好的版本控制工具!
- 我写了一个窃取OICQ密码的木马,请大家下载用用,提点意见,来者有分
- 这是delphi的bug还是我程序的bug?
- 大家帮帮忙看一下ServerSocket多线程通信代码,分析一下客户端收不到从服务端回复信息,并帮我指出来,ok?!
- 高兴、高兴、真高兴,再次散分,谢谢大家的祝福!
SQLstr:=SQLstr+formatdatetime('yyyymmdd',ADOQuery1.FieldByName('B2').AsDateTime);另:你的是什么数据库,是sql server 吗?如果是,可以试一试我在前一个问题中跟你说的方法.