VCL SQL [Ошибка параметров запроса] - PullRequest
1 голос
/ 22 января 2010

C ++ Builder ADOQuery SQLServer

Продолжить Эта строка вопросов

с использованием этого выбора с процедурой:

    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 голосов
/ 29 января 2010

Не уверен насчет C ++ builder, но в Delphi VCL входные параметры должны быть помечены: а не @.

Сначала поместите запрос во время разработки в компонент запроса и проверьте свойство параметров. Если параметры не определены, попробуйте изменить @ для:

Теперь вы задаете более одного вопроса здесь ... так что, давайте идти шаг за шагом.

...