我在测试某些例子的时候,代码里有
ParamByname('p1').AsString:= edit2.text;
prepare;
这两个函数,但运行的时候出现“未定义”错误,请指教:在什么地方修改才能让程序正常运行,是ParamByname和prepare

解决方案 »

  1.   

    prepare;
    ParamByname('p1').AsString:= edit2.text;你用的ADOQUERY 还是ADOPRO?
      

  2.   

    ParamByname('p1').Value:= edit2.text;
      

  3.   

    你是不是没有指明对象啊,应该是with query do  不然就要在前面加上查询组件对象的
      

  4.   

    with query1 do
    ParamByname('p1').AsString:= edit2.text;
    prepare;or query1.param..............;
    query1.prepare;try yi  try
      

  5.   

    要在前面加个bde的query对象
    如:query1.parambyname('字段名'):=edit2.text
      

  6.   

    我用的是ADOQUERY,我已经在前面用with ADOQuery do指明对象了,我的源程序是这样的:
    with ADOQuery1 do
       begin
        close;
        SQL.clear;
        SQL.add('select * from rs');
        SQl.add(' where bd<:p1');
        ParamByname('p1').Asdatetime:= strtodate(edit1.text);
        prepare;
        open;
       end;
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
       ADOQuery1.Close;
       ADOQuery1.SQL.Clear;
       ADOQuery1.SQL.Add('select * from CTimeclk');
       ADOQuery1.SQL.Add('where IOdate<:p1');
       ADOQuery1.Parameters.ParamByName('p1').Value:=strtodate(Edit1.Text);
       ADOQuery1.Prepared;
       ADOQuery1.Open;
    end;上面是可以查询数据的..已经度过...问题是你的ADOCONECTION1是否和数据库连接正确的设置...?
      

  8.   

    是不是ADOQUERY不能用prepare方法的?
      

  9.   

    谢谢,prepared:=true;解决了,请教那个ParamByname('p1').AsString:= edit2.text;出现的ParamByname未定义错误怎么回事?
      

  10.   

    with ADOQuery1 do
       begin
        close;//注1
        SQL.clear;
        SQL.add('select * from rs');
        SQl.add(' where bd<:p1');
        parameters.ParamByname('p1').Asdatetime:= strtodate(edit1.text);
        prepared:=true;
        open;
       end;出现错误:
    [Error] Unit3.pas(46): Undeclared identifier: 'Asdatetime'
    [Error] Unit3.pas(60): Undeclared identifier: 'AsString'
    [Error] Unit3.pas(74): Undeclared identifier: 'AsFloat'
    [Fatal Error] Project.dpr(7): Could not compile used unit 'Unit3.pas'
    请教!!
      

  11.   

    你换成这个看看
    qry1.Parameters.ParamValues['p1']:=edit2.text
      

  12.   

    adoquery1没有这个属性的,只有bde控件才有这个属性
      

  13.   

    .Asdate吧?看看p1的数据类型。