[Résolu][Base] Requete ODBC plantée par un nom de champ

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
ludovic
Membre hOOnoraire
Membre hOOnoraire
Messages : 190
Inscription : 24 nov. 2007 23:53

[Résolu][Base] Requete ODBC plantée par un nom de champ

Message par ludovic »

Bonjour,

Sur une base de donnée, j'exécute la requête suivante :

Code : Tout sélectionner

sub atatata()
'requete qui récupère les quantité commandés de produits finis polonais
BasicLibraries.LoadLibrary("DBTools")	'chargement de la la librairie DBTools (requete)
BasicLibraries.LoadLibrary("MyTools")	'chargement de la la librairie DBTools (requete)

'création de la chaine de requete
req=""
'******** select ********
req=req & "select SEQ_CMD,UM_NUM,TOUR_NUM,DATE_EXPED,CLIENT"',USAGE
req=req & ",CMD_NUM,EXPED_HISTO.REF,REF_MOVEX,CMD_NBUV,PREP_NBUV,CLE_INTERF,NUM_EXPED"
'******** FROM ********
req=req & " from EXPED_HISTO,FICHEPRODUIT"
'******** where ********
req=req & " where EXPED_HISTO.REF=FICHEPRODUIT.REF"' and USAGE='01'"
req=req & " and TO_CHAR(DATE_EXPED, 'YYYYMMDD') = '20080923'"
'******* order by ********
req=req & " order by TOUR_NUM,CMD_NUM;"

'exécution de la requete
fnRequete("logidrive",req,"ora","ora")
'requeteBaseODB("adonix",req,"production","tiger")

end sub
cela fonctionne parfaitement !
par contre, quand je rajoute le champ USAGE (en enlevant '" juste avant) çà plante à tous les coups, que ce soit dans le "select" ou dans le "where".
"USAGE" serait il un mot réservé ?

Merci d'avance
Dernière modification par ludovic le 26 sept. 2008 10:10, modifié 4 fois.
version open office : 3.1.1
OS : Windows XP SP3
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26195
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [SQL] Requete ODBC plantée par un nom de champ

Message par Dude »

Merci de respecter ce que te demande le modo pour continuer à avoir des réponses.
ludovic a écrit :par contre, quand je rajoute le champ USAGE (en enlevant '" juste avant) çà plante à tous les coups, que ce soit dans le "select" ou dans le "where".
"USAGE" serait il un mot réservé ?
A toi de nous le dire puisque tu utilises (me semble t-il) une base ADONIX. En tout cas, ce n'est pas un mot de la norme SQL-92.
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
ludovic
Membre hOOnoraire
Membre hOOnoraire
Messages : 190
Inscription : 24 nov. 2007 23:53

Re: [BASE] Requete ODBC plantée par un nom de champ

Message par ludovic »

en fait j'utilise calc pour récupérer les données, mais il est vrai que base me sert à faire la connexion avec mon driver ODBC ...
non, ca n'est pas une base adonix (c'était dans une autre requête çà d'ailleurs la ligne est en remarque j'ai oublié de la supprimer)
en fait on a 3 base de donné différentes ...
là c'est une base logidrive (c'est du oracle ... meme driver ODBC que pour adonix d'ailleurs !)
j'ai essayé usage en minuscule, comme en majuscule ... je n'ai plus aucune piste ...

au fait, je vous met quand même le message d'erreur (qui arrive juste apres la saisie du mot de passe) en pièce jointe ...
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
version open office : 3.1.1
OS : Windows XP SP3
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Re: [Base] Requete ODBC plantée par un nom de champ

Message par bm92 »

Bonjour,
Dans ton premier message la balise terminant le codage est incorrecte: il manque le / dans (/Code)
J'ai employé ici des parenthèses au lieu de crochets pour éviter l'interprétation.
ludovic a écrit :

Code : Tout sélectionner

req=req & "select SEQ_CMD,UM_NUM,TOUR_NUM,DATE_EXPED,CLIENT"',USAGE
Pour éviter les problèmes d'interprétation du SQL il est préférable de mettre chaque nom de colonne entre guillemets. Revoir le message Bien utiliser le SQL.
À l'intérieur d'une chaîne de caractères Basic on doit doubler chaque guillemet...

Code : Tout sélectionner

req=req & "select ""SEQ_CMD"", ""USAGE"""
Bernard

OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
ludovic
Membre hOOnoraire
Membre hOOnoraire
Messages : 190
Inscription : 24 nov. 2007 23:53

Re: [Base] Requete ODBC plantée par un nom de champ

Message par ludovic »

je te remercie : ca marche au poil !!
(quel talent !)
version open office : 3.1.1
OS : Windows XP SP3