Delphi ADOQuery select 参数问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 16:35:11
Delphi7 使用得access数据库
ADOQueryGot.SQL.Add('Select * from w_table where lt=:lt');
ADOQueryGot.Parameters.ParamValues['lt'] := VarArrayOf(['list']);
ADOQueryGot.Open;

为什么不行呢?
ADOQueryGot.SQL.Add('Select * from w_table');
ADOQueryGot.Open;
就可以!

我添加参数哪里用法不对呢?

同时我另外一个程序是insert语句时,那样使用就可以。
30956569 - 经理 五级 您的也不行
kendychong - 江湖新秀 四级 和我这个问题有多大的直接关联?
hwc9999 - 助理 三级 错误更离谱了

我目前系统为vista,有哪位仁兄知道的帮忙解答下,我会追加分给您的。

ADOQueryGot.SQL.Add('Select * from w_table where lt in :lt');
ADOQueryGot.Parameters.ParamValues['lt'] := VarArrayOf(['list']); //
也改成ADOQueryGot.Parameters.ParamByName('list').Value:= VarArrayOf(['list']); 看看先
ADOQueryGot.Open;

VarArrayOf function
Creates and fills a one-dimensional variant array.

创建并且填充一个一维的变体类型的数组。

function VarArrayOf(const Values: array of Variant): Variant;

VarArrayCreate, VarArrayOf Example
var

A: Variant;
begin
A := VarArrayCreate([0, 4], varVariant);
A[0] := 1;
A[1] := 1234.5678;
A[2] := 'Hello world';
A[3] := True;
A[4] := VarArrayOf([1, 10, 100, 1000]);
WriteLn(A[2]); { Hello world }
WriteLn(A[4][2]);

end;

VarArrayOf(['list']);

你直接
ADOQueryGot.Parameters.ParamValues['lt'] := 'list';