2010-01-22 6 views
2

C++ Builder ADOQuery SQLServerVCL SQL [Erreur de paramètres de requête]

Continuer de This questions line

en utilisant cette procédure de sélection avec:

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 

code:

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

Erreur:

List index of bounds (1) 

Mais je vois cette erreur que sur le programme d'exécution. test query-> activation du réseau fonctionne normalement (avec des propriétés de configuration manuellement)

aussi si je

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

erreur:

AQ4: Field 'Visi' not found 

AQ4 SQL:

FlowClientHardQ :ID_User, :ID_ListGroupParIzm 

I également difficile à propos de DBGrid & Compatibilité de case à cocher (Source) mais comme mon champ est normal peu je pense que ce n'est pas un problème, j'ai fait une erreur ailleurs ...

+0

Je ne pense pas que vous devriez "déboguer par question"! Semble-moi, vous avez une réponse à http://stackoverflow.com/questions/2115546/sql-convertation-to-bool et maintenant vous avez un autre problème; et prochaine sera F10 pour la prochaine ligne à déboguer :) – Liao

+0

pas s'il vous plaît ... vous avez tort ... J'ai demandé des aperçus question en raison du même problème, je juste difficile à convertir en bool pourrait m'aider, mais ce n'est pas le cas. Alors maintenant, je montre le problème principal. Juste ne peut pas comprendre pourquoi j'ai 2 paramètres et tout fonctionne correctement, mais quand démarrer le programme ShowMessage (AQ4-> Paramètres-> Count); shows 1 ... aussi mon débogueur est cassé par quelques 1337 composants> ___ < – Cynede

+0

Essayez d'affecter la requête SQL avant la ligne 'AQ4-> Paramètres-> Items [1] -> Value = (int) TS-> Tabs-> Objets [NewTab]; ' (la requête, une fois affectée, sera analysée), puis essayez d'affecter les valeurs du paramètre. Sinon, effacez les paramètres et affectez les deux, dans l'ordre – Liao

Répondre

1

Pas sûr du constructeur C++, mais dans Delphi VCL, les paramètres d'entrée doivent être marqués avec: et non avec @ .

D'abord, placez la requête au moment du design dans un composant de requête et inspectez la propriété parameters. Si aucun paramètre n'est défini, essayez de changer le @ pour:

Maintenant, vous faites plus d'une question ici ... alors, allons-y pas à pas.

+0

Désolé, mais cette question a déjà été résolue. Merci de votre intérêt. Je ne sais pas comment le résoudre sans réponses – Cynede