为什么这段语句在ACCESS里可以,而在SQL SERVER2000里却行不通?(50分)

  • 主题发起人 主题发起人 nblgy
  • 开始时间 开始时间
N

nblgy

Unregistered / Unconfirmed
GUEST, unregistred user!
原来的应用系统是用ACCESS数据库的,现在想改用SQL SERVER2000数据库,导入数据库
后,原来可以的SQL语句却出现了“.....该列。。。。无效”的错误,特急。
with adoquery1 do
begin
close;
sql.clear;
sql.text:='select * from gcybb'
+' where m_date="'
+ edit1.text
+'"'
+' order by bh';
open;

end;
 
请这样写
qry.sql.clear
qry.sql.add(''select * from gcybb')
qry.sql.add('where m_date'''+edit1.text+'''');
qry.sql.add('order.....');
qry.open;
 
with adoquery1 do
begin
close;
sql.clear;
sql.text:='select * from gcybb'
+' where m_date='+''''
+ edit1.text
+''''
+' order by bh';
open;

end;
 
nblgy:你的写法应该是没问题,建议你查一下字段类型以及adoquery中是否有列举字段等
 
SQL SERVER具体报什么信息?
根据信息可以很容易查到问题。
 
问题解决,正如lonelybay和mlzhou所说,谢谢。
但下面的SQL语句又有错误,请指教。
with adoquery2 do
begin
close;
sql.clear;
sql.text:='update gcybb,tmp_gcybb set gcybb.y_gzl=gcybb.m_gzl+tmp_gcybb.y_gzl,gcybb.t_gzl=gcybb.m_gzl+tmp_gcybb.t_gzl,gcybb.y_f1=gcybb.m_f1+tmp_gcybb.y_f1 where gcybb.m_date="'
+ edit3.text
+'"'
+' and gcybb.bh=tmp_gcybb.bh';
execsql;
close;
end;
 
你犯了同样的错误。这么改
with adoquery2 do
begin
close;
sql.clear;
sql.text:='update gcybb,tmp_gcybb set gcybb.y_gzl=gcybb.m_gzl+tmp_gcybb.y_gzl,gcybb.t_gzl=gcybb.m_gzl+tmp_gcybb.t_gzl,gcybb.y_f1=gcybb.m_f1+tmp_gcybb.y_f1 where gcybb.m_date='
+''''+ edit3.text
+''''+
+' and gcybb.bh=tmp_gcybb.bh';
execsql;
close;
end;
 
我已经改了“为'',但仍出错,提示‘第一行,附近有语法错误,为什么?
with adoquery2 do
begin
close;
sql.clear;
sql.text:='update gcybb,tmp_gcybb set gcybb.y_gzl=gcybb.m_gzl+tmp_gcybb.y_gzl,gcybb.t_gzl=gcybb.m_gzl+tmp_gcybb.t_gzl,gcybb.y_f1=gcybb.m_f1+tmp_gcybb.y_f1 where gcybb.m_date='''
+ edit3.text
+''''
+' and gcybb.bh=tmp_gcybb.bh';
execsql;
close;
end;
 
sql.text:='update gcybb,tmp_gcybb set gcybb.y_gzl=gcybb.m_gzl+tmp_gcybb.y_gzl,gcybb.t_gzl=gcybb.m_gzl+tmp_gcybb.t_gzl,gcybb.y_f1=gcybb.m_f1+tmp_gcybb.y_f1 where gcybb.m_date='''
Update语句不能同时对两个表操作吧?
 
to yzhshi
在ACCESS里是可以的,在SQL里不行,不过问题已解决,谢谢
sql.text:='update gcybb set gcybb.y_gzl=gcybb.m_gzl+tmp_gcybb.y_gzl,gcybb.t_gzl=gcybb.m_gzl+tmp_gcybb.t_gzl,gcybb.y_f1=gcybb.m_f1+tmp_gcybb.y_f1 from gcybb,tmp_gcybb where gcybb.m_date='''
+ edit3.text
+''''
+' and gcybb.bh=tmp_gcybb.bh';
 
后退
顶部