VCL SQL [查询参数错误]

时间:2010-01-22 07:38:32

标签: sql c++builder vcl

C ++ Builder ADOQuery SQLServer

继续This questions line

使用此程序选择:

    SELECT
    C.Hint,
    CAST(CASE WHEN T2.ID_Param IS NULL THEN 1 ELSE 0 END as bit) AS Visi
FROM
    CfgListParIzm C
    LEFT JOIN
    (
    SELECT
        T.ID_Param
    FROM
        TbUserParam T
    WHERE
        T.ID_User = @ID_User
    ) T2 On T2.ID_Param = C.ID_ListParIzm
WHERE
    C.ID_ListGroupParIzm = @ID_ListGroupParIzm

代码:

AQ4->Close();
AQ4->Parameters->Items[1]->Value=(int)TS->Tabs->Objects[NewTab];
AQ4->Open();

错误:

List index of bounds (1)

但我只能在运行程序中看到此错误。 测试查询 - >网格激活工作正常(使用手动设置属性)

如果我这样做

            AQ4->Close();
//        AQ4->Parameters->Items[1]->Value=(int)TS->Tabs->Objects[NewTab];
          AQ4->Open();

错误:

AQ4: Field 'Visi' not found

AQ4 SQL:

FlowClientHardQ  :ID_User, :ID_ListGroupParIzm

我对DBGrid& Checkbox兼容性(Source)也很强硬,但由于我的字段是正常的,我认为这不是麻烦,我在其他地方犯了错误......

1 个答案:

答案 0 :(得分:0)

不确定C ++构建器,但在Delphi VCL中,输入参数应标记为:而不是@。

首先,将查询设计时放在查询组件中并检查parameters属性。如果没有定义参数,请尝试更改@ for:

现在,你在这里提出了不止一个问题......所以,让我们一步一步走。