Delphi 2007 Adoquery参数不起作用

时间:2016-06-27 18:28:49

标签: sql delphi

   ADOQuerySelect.Close;
    ADOQuerySelect.SQL.Add(' AND (дата_заказа between #'+dat+'# and #'+da+'#)');
    if ComboBox6.Text <> '' then
    begin
    ADOQuerySelect.Parameters.ParamByName('Name').Value := ComboBox6.Text ;
      ADOQuerySelect.SQL.Add(' AND (Наименование = :Name)');
    end;
ADOQuerySelect.Open;

我使用Delphi 2007,MS Access。我现在不知道如何使用参数。在这段代码上,我有错误:找不到参数名称。我尝试了许多其他代码变体,但它们都无法正常工作。我通过GUI添加参数Name,数据类型为ftstring;

2 个答案:

答案 0 :(得分:3)

更改代码中的SQL会清除现有参数,因此在您尝试设置其值时,没有名为“Name”的参数。然后创建Name参数,但为时已晚。

更改陈述的顺序:

ADOQuerySelect.Close;
ADOQuerySelect.SQL.Add(' AND (дата_заказа between #'+dat+'# and #'+da+'#)');
if ComboBox6.Text <> '' then
begin
  ADOQuerySelect.SQL.Add(' AND (Наименование = :Name)');
  ADOQuerySelect.Parameters.ParamByName('Name').Value := ComboBox6.Text ;
end;
ADOQuerySelect.Open;

您应该使用所有替换的参数BTW。让数据库驱动程序为您处理转换和日期格式以及引用值和所有这些。

答案 1 :(得分:1)

在对象检查器中,ADOQuerySelect应该有&#39; Name&#39;在参数列表中。

您还可以使用以下代码创建参数&#39; Name&#39;:

with ADOQuerySelect.Parameters.AddParameter do
begin
  Name := 'Name';
  DataType := ftString;
end;