delphi连接mysql用的是myodbc+ado控件。
我的语句是:
 query1.Close;
 query1.SQL.Clear;
 query1.SQL.Add('select *  from train where innertrainno='''+ trim(txtMS_InnerTrain.Text) +'''');
  try
    query1.Open ;
  except
    application.MessageBox('操作失败!','系统信息',mb_ok or mb_iconexclamation);
    exit;
  end;
当 trim(txtMS_InnerTrain.Text)有值的时候不出错,为空的时候就出错了。
project pnotify.exe raised excepton class EDatabaseError with message'Invalid field size'.process stopped.use step or run to continue.
这是怎么回事,急啊!

解决方案 »

  1.   

    query1.SQL.Add('select *  from train where innertrainno='''+ trim(txtMS_InnerTrain.Text) +'''');
    改为:
    query1.sql.add('select * from train where innertrainno=:a');
    query1.parameters.parameterbyname('a').value:=txtMS_InnerTrain.Text;
      

  2.   

    trim,是什么类型
    --------------------------
    是字符串啊。
      

  3.   

    回复人: lianshaohua(永远深爱一个叫“然”的好女孩儿!) ( ) 信誉:
    --------------------------------------------------------------------
    query1.SQL.Add('select *  from train where innertrainno='''+ trim(txtMS_InnerTrain.Text) +'''');
    改为:
    query1.sql.add('select * from train where innertrainno=:a');
    query1.parameters.parameterbyname('a').value:=txtMS_InnerTrain.Text;
    能不能说说是什么意思,我看不懂;我试试。
      

  4.   

    query1.SQL.Add('select *  from train where innertrainno='''+ trim(txtMS_InnerTrain.Text) +'''');
    改为:
    query1.sql.add('select * from train where innertrainno=:a');
    query1.parameters.parameterbyname('a').value:=txtMS_InnerTrain.Text;
    ------------------------------------------------------------------------
    试 了,不对;