2010-01-22 61 views
2

C++生成器ADOQuery SQLServer的VCL SQL [查詢參數錯誤]

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 &複選框兼容性(Source)但我的領域是正常的位,我認爲這並不麻煩,我在其他地方犯了一個錯誤...

+0

我不認爲你應該「按問題調試」! 對我來說,你有一個答案http://stackoverflow.com/questions/2115546/sql-convertation-to-bool現在你有另一個問題;接下來將是F10爲下一行調試:) – Liao 2010-01-22 07:46:06

+0

不,請你...你錯了...我問預覽問題,因爲同樣的問題,我只是艱難的轉換爲布爾可以幫助我,但它沒有。所以現在我展示了主要的麻煩。只是不明白爲什麼我有2個參數,所有的作品都是正確的,但是當啓動程序ShowMessage(AQ4-> Parameters-> Count);顯示1 ...我的調試器也被一些1337組件破壞> ___ < – Cynede 2010-01-22 07:59:53

+0

嘗試在行AQ4-> Parameters-> Items [1] - > Value =(int)TS-> Tabs->對象[NewTab];' (查詢,一旦分配,將被解析),然後嘗試分配參數值。否則,清除參數,並分配兩個,按順序 – Liao 2010-01-22 08:20:16

回答

1

不確定C++ builder,但在Delphi VCL中,輸入參數應標記爲:而不是@ 。

首先,將查詢放在查詢組件的設計時間並檢查參數屬性。如果沒有定義參數,請嘗試將@改爲:

現在,您在這裏提出了多個問題......所以,讓我們一步一步來。

+0

對不起,這個問題已經解決了。感謝您的關注。我只是不知道如何將它解決而沒有答案 – Cynede 2010-01-29 05:18:10