Bonjour à tous ,
Je travaille avec Firebird 2.04 sous C++Builder XE Pro
Voci ma problèmatique : j'ai une table impoortante > 1 millions d'enregistrements et à un moment donné mon utilisateur a besoin d'effectuer des modifications sur une fraction de cette table (<<1% de la table ) ;J'envisage donc de travailler sur une vue qui une fois créée permettra je l'espère une amélioration du traitement : Je souhaite donc créer ma vue en fonction d'un (Code) Mon souci est que je n'arrive pas à passer mon paramètre à la requete chargée d'effectuer la création de ma vue comme si dans une requete SQL "CREATE" on ne pouvait passer de paramètres ; en revanche si je passe ces parametres en "figé" ma vue se crée ....
Voci mon code
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
MaRequete->Active=false;
MaRequete->SQL->Clear();
marequete->SQL->Add("Create VIEW (code,champ1,champ2) as select code,champ1,champ2) from matable
where code = :code ");
MaRequete->ParamBynam("code")->Asinteger=805r;
MaRequete->ExecSQL();
j obtiens l'erreur
ERREUR SQL generale invalid request BLR at offset 34 !!!!!!

!! maintenant si j'utilise le code suivant ma vue se crée
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
marequete->SQL->Add("Create VIEW (code,champ1,champ2) as select code,champ1,champ2) from matable
where code = 805");

Je ne suis pas certain que ce soit un problème SQL mais bon J'ai lu quelque part que Philippe makowski conseillait de passer par une procédure stockée : le souci est que je ne retrouve pas ce post et surtout aimerais comprendre pourquoi ma requete ne fonctionne pas .
merci d'avance pour les réponses éventuelles