Requete SQL

JONUEVA Messages postés 3 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 10 octobre 2007 - 9 oct. 2007 à 22:37
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 10 oct. 2007 à 19:54
Bonjour aux lecteurs,

Je débute en VB6 et encore plus en SQL.
Je rencontre une erreur sur ma création de table.
J'ai déja envoyé des requêtes sur cette base de donnée donc la connexion marche bien.
Le message d'erreur est: "Erreur de syntaxe dans l'instruction CREATE TABLE."
ValeurBorne(0) est un String.
Voyez-vous où est l'erreur dans la syntaxe?
    
    strSQL = "CREATE TABLE IF NOT EXISTS " & valeurborne(0) & _
                "(NuméroBorne VARCHAR(5)" & _
                ", Nomenclature VARCHAR(20)" & _
                ", Neutre VARCHAR(1)" & _
                ", NumeroFilAmont VARCHAR(10)" & _
                ", NumeroFilAval VARCHAR(10)" & _
                ", Orientation VARCHAR(1)" & _
                ", SensBorne VARCHAR(1));"

Si cette requête est juste j'explorerais d'autre piste...
Merci à ceux qui se pencherons sur mon problème.

Bonne soirée.

6 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
10 oct. 2007 à 08:44
Salut,

Regarde ce lien si cela peut t'aider....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 oct. 2007 à 18:20
Salut
Elle est bizarre ta syntaxe : C'est la première fois que je vois une clause "EXISTS" dans un "Create Table" - à vérifier
Regarde de plus près le contenu de ta variable "ValeurBorne(0)" : Si le nom d'une table (ou d'un champ) comporte des espaces, des caractères particuliers du langage (accents) ou des symboles réservés au langage (genre _ ), il faut absolument encadrer ces noms avec des crochets droits [ et ]
D'autre part, tu remarqueras qu'il n'y a pas d'espace entre le nom de ta table et la parenthèse qui la suit : Des fois, les compilos n'aiment pas.
strSQL = "CREATE TABLE IF NOT EXISTS [" & valeurborne(0) & "] "& _
                "(NuméroBorne VARCHAR(5)" & _   ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 oct. 2007 à 18:24
PS : C'est du SQL qui va fonctionner avec quel moteur ? MySQL, Access-Jet ... ?
Les syntaxes SQL peuvent différer, alors consulte la doc en rapport avec la marque du moteur
0
JONUEVA Messages postés 3 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 10 octobre 2007
10 oct. 2007 à 19:08
Bonsoir,

Merci de vos réponses.
J'ai testé les crochets ainsi que l'espace aprés le nom de la table mais toujours pareil.
IF NOT EXISTS permet de créer la table si elle n'existe pas, sinon la requête est ignorée.
C'est une requête je j'envoie par l'intermédiaire de l'objet suivant vers une base *.MDB:



Dim ct as ADODB.Connection


J'ai déjà envoyé des requêtes via cet objet mais c'était plus pour gérer les enregistrement(Ajout, suppresion, modification...)

Peut-etre que l'on ne peut pas gérer les tables avec...?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JONUEVA Messages postés 3 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 10 octobre 2007
10 oct. 2007 à 19:24
Bon le probleme vient du IF NOT EXISTS apparement.


Je peux désormais ajouter ma table mais je ne peux plus tester si elle existe, sauf si je fais un test du genre

ON ERROR RESUME NEXT
...
IF err<>0 THEN
   err=0
END IF

N'étant pas pro, c'est propre comme méthode...?
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 oct. 2007 à 19:54
Re
En effet, je pense que cette syntaxe SQL avec le EXISTS est propre au PHP/MySQL.
Sous le SQL de MS, je ne pense pas que ce soit applicable.
De toute façon, comme tu sembles vouloir écraser ta table, simplement fait un DROP puis un CREATE
Le résultat sera le même.
Si tu as besoin de vérifier si ta table existe déjà, regarde cette source trouvée en tapant "table existe" dans la recherche parmi les codes du site : http://www.vbfrance.com/codes/VERIFIER-EXISTENCE-TABLE_2553.aspx

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous