update问题(100分)

  • 主题发起人 主题发起人 jimmy_che
  • 开始时间 开始时间
J

jimmy_che

Unregistered / Unconfirmed
GUEST, unregistred user!
我想把一个数据库中的某个表的某个字段导入到另一个数据库中,下面是我写的代码,大家帮我看看是哪里出错了,应该怎么写
with query1 do
begin
close;
SQL.Clear ;
SQL.Add('select FN44 FROM A_GD');
Open;
query2.SQL.Add('update DBDA'+
'SET GDCS=ICDATA.DBO.A_GD.FN44'+
'WHERE YHDM=ICDATA.DBO.A_GD.FC2');
query2.ExecSQL ;
把ICDATA数据库中的A_GD表的FN44字段的数据导入到SDDATA数据库中表DBDA的GDCS字段中,谢谢了!
 
query2.SQL.Add('update DBDA'+
'SET GDCS=ICDATA.DBO.A_GD.FN44'+
'WHERE YHDM=ICDATA.DBO.A_GD.FC2');
似乎应该加一些空格
query2.SQL.Add('update DBDA '+
' SET GDCS=ICDATA.DBO.A_GD.FN44 '+
' WHERE YHDM=ICDATA.DBO.A_GD.FC2 ');
 
你在SQL.Add后面加个ShowMessage,看看你添加的是什么东西不就行了,
 
update语句也是错误的
query2.close;
query2.SQL.Clear ;
query2.SQL.Add('update DBDA'+
' SET GDCS=ICDATA.DBO.A_GD.FN44 from A_GD'+
' WHERE YHDM=ICDATA.DBO.A_GD.FC2');
query2.ExecSQL ;
 
提示出什么错啊/
如前面的同志们说的把你的sql语句show一下看看/
 
这条SQL语句多加这么多单引号只是为了代码整洁
为什么不一次写成呢!
query2.SQL.Add('update DBDA'+
'SET GDCS=ICDATA.DBO.A_GD.FN44'+
'WHERE YHDM=ICDATA.DBO.A_GD.FC2');

---------------------------------------------------------------
query2.SQL.add('update DBDA SET GDCS=ICDATA.DBO.A_GD.FN44 WHERE YHDM=ICDATA.DBO.A_GD.FC2 );
---------------------------------------------------------------
 
加多了单引号反而麻烦!
你可以向前面朋友说的,
使用SHOWMESSAGE把这条语句的执行结果显示出来,看看有没有地方错误!
要不你把错误信息贴出来!
 
我这样写
query2.SQL.Add('update DBDA '+
' SET GDCS=FN44 FROM ICDATA.DBO.A_GD,'+
' WHERE YHDM=ICDATA.DBO.A_GD.FC2 ');
可以解决问题,但又来了新问题,我想同时更新两个字段该怎么办,我写成
query2.SQL.Add('update DBDA '+
' SET GDCS=FN44 FROM ICDATA.DBO.A_GD,'+
' ZDCS=FN44 FROM ICDATA.DBO.A_GD '+
' WHERE YHDM=ICDATA.DBO.A_GD.FC2 ');
显示语法错误
 
query2.SQL.Add('update DBDA '+
' SET GDCS=FN44,'+
' ZDCS=FN44 FROM ICDATA.DBO.A_GD'+
' WHERE YHDM=ICDATA.DBO.A_GD.FC2 ');
 
UPDATE DBDA A SET (A.GDCS,A.ZDCS)=(SELECT B.FN44,B.FN44 FROM ICDATA B WHERE A.YHDM=B.DBO)
 
谢谢了,终于执行成功了
 
虽然分数不代表什么 但lz的分分的也太......
 
靠,两个空格,不如我给你的发现问题的方法有效吧,无语
 
对不起呀,我不懂得怎样分配分数的,能不能给你们补上?
 
后退
顶部