各位前輩,小弟新手,請大家幫忙看看下面代碼有什麼問題(0分)

  • 主题发起人 主题发起人 xcdx
  • 开始时间 开始时间
X

xcdx

Unregistered / Unconfirmed
GUEST, unregistred user!
var
s:string;
begin
s:=edit1.Text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select TD001,TD002, TD005,TD004,TD006,TD008,TD015,(TD008-TD015)as 未交數量,TD010,TD011,TD012,TC009,TC004,TC003,TC002,MA001,MA002 from PURTD,PURTC,PURMA');
adoquery1.SQL.Add('where TC004=MA001');
adoquery1.SQL.Add('and MA001='+#39+S+#39);
adoquery1.SQL.Add('and TC002=TD002');
adoquery1.SQL.Add('and (TD008-TD015)>0');
adoquery1.SQL.Add('OR TD001='''+ComboBox1.Text+'''');
adoquery1.SQL.Add('OR TC003='''+trim(edit3.Text)+'''');
adoquery1.SQL.Add('OR TD002='''+trim(edit4.Text)+'''');
ADOQUERY1.ExecSQL;
adoquery1.Open;
edit2.Text:=adoquery1.fieldbyname('MA002').AsString;
查詢時無法顯示數據
 
1、字符串里 where, and, or 前面都加上空格,比如 'where TC004=MA001' 变成
' where TC004=MA001'
2、去掉 ADOQUERY1.ExecSQL;
 
如果以上的字段是来之PURTD,PURTC,PURMA三张表,请在字段前加上表名.字段。
 
查詢時無法顯示數據,这是因为数据结果太多,原因是三上表PURTD,PURTC,PURMA,应该有相应的连接关系,如PURTD.ID=PURTC.ID
如果没有连接关系,那个每个表里的任何都会相互连接,以至数据量太大
 
1. 去掉 ADOQUERY1.ExecSQL;
2. 检查 Sql 语句的正确性,放到查询分析器中看是否能正确执行。
 
SQL语句上有问题。
 
后退
顶部