procedure TForm1.Button1Click(Sender: TObject);
Var
xXXDM : String;
str1,str2,str3: String;
begin
ADOQuery2.SQL.Clear;
ADOQuery2.Close;
ADOQuery2.SQL.Add('SELECT XXDM FROM SCHOOL WHERE XXMC='''+Edit1.Text+'''');
ADOQuery2.Active := True;
xXXDM := ADOQuery2['XXDM'];
str1 := 'SELECT XKMC,SJSM,YSRS,JSZS,QZSSSYXJSRS,JYGWXSBJDJSRS,JYBSXWDJSRS,FJSZRS,QZSSSYXDFJSRS,JYGWXSBJDFJSZRS,JYBSXWDFJSZRS,CJXZTPJSRS,GJJCQNJJHDRS';
str2 := 'FROM SUBJECT,DATA_DESC,SUBJECT_QUEUE ';
str3 := 'WHERE SUBJECT_QUEUE.XKDM=SUBJECT.XKDM AND SUBJECT_QUEUE.SJSMDM=DATA_DESC.SJSMDM AND SUBJECT_QUEUE.XXDM ';
ADOQuery1.SQL.Clear;
ADOQuery1.Close;
ADOQuery1.SQL.Add(str1+str2+str3+'= :dm;');
ADOQuery1.Parameters.ParamByName('dm').Value := xXXDM;
ADOQuery1.Active := True;
end;报错:
列前缀 'SUBJECT_QUEUE'与查询中所遇到的列名或表名不一致
Var
xXXDM : String;
str1,str2,str3: String;
begin
ADOQuery2.SQL.Clear;
ADOQuery2.Close;
ADOQuery2.SQL.Add('SELECT XXDM FROM SCHOOL WHERE XXMC='''+Edit1.Text+'''');
ADOQuery2.Active := True;
xXXDM := ADOQuery2['XXDM'];
str1 := 'SELECT XKMC,SJSM,YSRS,JSZS,QZSSSYXJSRS,JYGWXSBJDJSRS,JYBSXWDJSRS,FJSZRS,QZSSSYXDFJSRS,JYGWXSBJDFJSZRS,JYBSXWDFJSZRS,CJXZTPJSRS,GJJCQNJJHDRS';
str2 := 'FROM SUBJECT,DATA_DESC,SUBJECT_QUEUE ';
str3 := 'WHERE SUBJECT_QUEUE.XKDM=SUBJECT.XKDM AND SUBJECT_QUEUE.SJSMDM=DATA_DESC.SJSMDM AND SUBJECT_QUEUE.XXDM ';
ADOQuery1.SQL.Clear;
ADOQuery1.Close;
ADOQuery1.SQL.Add(str1+str2+str3+'= :dm;');
ADOQuery1.Parameters.ParamByName('dm').Value := xXXDM;
ADOQuery1.Active := True;
end;报错:
列前缀 'SUBJECT_QUEUE'与查询中所遇到的列名或表名不一致
str2 := 'FROM SUBJECT,DATA_DESC,SUBJECT_QUEUE ';
str3 := 'WHERE SUBJECT_QUEUE.XKDM=SUBJECT.XKDM AND
str1和str2之间未有空格分隔。
原因是你的查询语句错误,不是你写错了,而是解释的时候出现了错误;
你把str1,str2,str3内容前面加入空格就可以了!
比如:
str2 := 'FROM SUBJECT,DATA_DESC,SUBJECT_QUEUE ';
改成
str2 := ' FROM SUBJECT,DATA_DESC,SUBJECT_QUEUE ';//注意空格