procedure Tsearch.bsSkinComboBox2Change(Sender: TObject);
begin
  with adoquery1 do
  begin
  close;
    sql.Clear;
    sql.Add('select * from library_store where :V1 = :V2 ');
    parameters.parambyname('V1').asstring := trim(combobox1.Text);
    parameters.parambyname('V2').asstring := trim(edit1.Text);
    open;  end;运行后提示错误:
[Error] UnitSearch.pas(70): Undeclared identifier: 'asstring'
我在adoquery组件编写查询时,总是不能用这句
parameters.parambyname('').asstring := trim();我只能用parameters[].value:=trim();
这是什么原因?

解决方案 »

  1.   

    因为只有parameters.parambyname('参数名').value这才是对的啦.
    你按点的时候有没有AString啊.Asstring是在返回数据集后.才可进行访问咯.
      

  2.   

    楼上说的是,没有ASString那个成员啊。只有Value,给Value赋值就可以了。
      

  3.   

    你试试用
    combobox1.items.add(adoquery1.fieldbyname('xx').asstring);
    欢迎大家来delphi群1805366来参加技术讨论
      

  4.   

    那我为什么不能实现这个功能:
      combobox的items里先写入一些选项,当某个选项选定,dbgrid里就能显示出以items里选项为条件的东西?
      procedure Tsearch.ComboBox2Change(Sender: TObject);
    begin
      with adoquery1 do
      begin
      close;
        sql.Clear;
        sql.Add('select * from library_store where :V1 ');
        parameters.parambyname('V1').value := trim(combobox2.Text);
        open;  end;
      

  5.   

    try this:
    sql.Add('select * from library_store where '+quotedstr(trim(combobox2.Text)));