procedure TForm7.BitBtn3Click(Sender: TObject);
var
a:string;begin
a:=edit1.Text;
if adoquery3.active then adoquery3.active :=true;
with adoquery3 do
begin
adoquery3.Close ;
adoquery3.sql.clear;
adoquery3.sql.add('select 仓位管理.仓位编号,仓位管理.存储货架,物料总表.物料编号,物料总表.物料类型,物料总表.物料名称,物料总表.货物来源,物料总表.入库时间 from 物料总表,仓位管理  where 物料总表.c_id=仓位管理.c_id and 物料总表.物料编号=''a'';');
adoquery3.open;
end;
end;还有这种也不得:procedure TForm7.BitBtn3Click(Sender: TObject);begin
if adoquery3.active then adoquery3.active :=true;
with adoquery3 do
begin
adoquery3.Close ;
adoquery3.sql.clear;
adoquery3.sql.add('select 仓位管理.仓位编号,仓位管理.存储货架,物料总表.物料编号,物料总表.物料类型,物料总表.物料名称,物料总表.货物来源,物料总表.入库时间 from 物料总表,仓位管理  where 物料总表.c_id=仓位管理.c_id and 物料总表.物料编号=''['+eidt1.text+']'';');
adoquery3.open;
end;
end;
要怎么搞才对哦?  语句可以在SQL查询器中通过。估计就是获取 edit1.text的原因。求指教。

解决方案 »

  1.   

    edit1.text的数据有问题吧,把完整的sql语句输出看看
      

  2.   

    第一检测text的值,
    第二对于引号,建议使用QuotedStr,比如'select * from A where fname='+QuotedStr(edit1.text);
      

  3.   


    最好用QuotedStr,否则输入保留字会抱错.
      

  4.   

    用showmessage(qy1.sql.text);来看一下具体的sql语句。
      

  5.   

    额 我试过了  说QuotedStr不是可以识别的函数,我不知道怎么写啊!!可以在详细点么
      

  6.   

    adoquery3.sql.add('select 仓位管理.仓位编号,仓位管理.存储货架,物料总表.物料编号,物料总表.物料类型,物料总表.物料名称,物料总表.货物来源,物料总表.入库时间 from 物料总表,仓位管理 where 物料总表.c_id=仓位管理.c_id and 物料总表.物料编号='''+a+'''');adoquery3.sql.add('select 仓位管理.仓位编号,仓位管理.存储货架,物料总表.物料编号,物料总表.物料类型,物料总表.物料名称,物料总表.货物来源,物料总表.入库时间 from 物料总表,仓位管理 where 物料总表.c_id=仓位管理.c_id and 物料总表.物料编号='''+eidt1.text+'''');