我编了下面的一段程序
 query1.Close;
 query1.sql.Clear;
 query1.SQL.Add('select * from name where 日期=mydate');
 query1.ExecSQL;
 query1.Active:=true;
其中 name和mydate都是在运行中设定的变量,可运行时出现“参数不足,期待是1。”!请问各位该怎么办?有没有好的实现方法

解决方案 »

  1.   

    mytable := ;
    mydate := ;
    query1.Close;
     query1.sql.Clear;
     query1.SQL.Add('select * from '+mytable+' where 日期='+myDate);
     query1.ExecSQL;
     query1.Active:=true;
      

  2.   

    query1.SQL.Add('select * from '+name+' where 日期='''+mydate+'''');
      

  3.   

    怎么还是出现from语句语法错误呢?
      

  4.   

    query1.Close;
     query1.sql.Clear;
     query1.SQL.Add('select * from :tname where 日期=:tmydate');
     Query1.Parameters.ParamByName('tname').Value:=你的name;
     Query1.Parameters.ParamByName('tmydate').Value:=你的mydate;
     query1.ExecSQL;
     query1.Active:=true;
      

  5.   

    query1.SQL.Add('select * from '+mytable+' where 日期='''+myDate+'''');
      

  6.   

    能给我解释一下  ''+mydate+''''  为什么要用这么多的单引号吗?
      

  7.   

    字段为字符型时要用引号引起来,
    在delphi中用''来表示'。
      

  8.   

    把SQL语名从要加入的动态值处拆开,再连接成完整语句即可
      

  9.   

    不用循环。
    table.append;
    table.fieldbyname('FieldName').astype := value;
    ..
    ..
    table.post;
    type指具体的数据类型。
    value 是具体的值。
      

  10.   

    s:string;
    s:='select * from name where mydate=''%s'')';
    s:=format(s,[你想要的日期值]);
    query1.sql.text:=s;
    query1.open;
      

  11.   

    procedure TForm1.Button1Click(Sender: TObject);
    var s:Variant;
        i:integer;
    beginfor i:=0 to dbgrid1.Columns.Count-1 do
    memo1.Lines.Add(adoquery1.FieldByName(dbgrid1.Columns.Items[i].FieldName).Value);end;