Requete SQL non suportée ? [Résolu]

cs_cyber37 111 Messages postés mardi 25 octobre 2005Date d'inscription 19 novembre 2010 Dernière intervention - 7 mai 2008 à 18:00 - Dernière réponse : JulioDelphi 2354 Messages postés dimanche 5 octobre 2003Date d'inscription 18 novembre 2010 Dernière intervention
- 9 mai 2008 à 11:39
Salut a tous,
Je doit faire un programme qui recupere un fichier SQL contenant des infos puis les mettre dans une base de donnée,

Le probleme est le suivant :

Les requetes de se fichier on des " ' "  autour du nom de la table et sa ne passe pas sur mon application, j'utilise UIB et FIREBIRD EMBEDED
Le programme est deja fait (j'ai refait un fichier sql sans les " ' " autour du nom de la table et sa marche) ...
Maintenant j'aimerais savoir comment je pourrais faire en sorte que les " ' " sautent ^^

voicis un exemple de requete :

INSERT INTO `x_world` VALUES (5,-396,400,3,106633,'Exodus',5160,'Cloud',3200,'C-W',974);
INSERT INTO `x_world` VALUES (17,-384,400,3,128071,'Exodus 1_3a',5160,'Cloud',3200,'C-W',827);
INSERT INTO `x_world` VALUES (60,-341,400,1,170414,'Berléwen',10431,'kalie',4996,'GROM !',519);

en faite il ne faut pas les "'" autours de x_world ...

comme tous les enregistrement commence par :

INSERT INTO `x_world` VALUES

J'avais penser a faire une procedure qui prendrais chaque ligne et enleverais le caractere n°11 et 19 mais sa risque d'etre long ! le fichier SQL contien plus de 30 000 requettes !!!!!!
Si non y a t'il un moyen pour le rendre compatible ?
Au debut je pensais que sa venais de l'encodage ... A se que j'ai compris c'est de L'UTF-8 ..
J'en sais pas plus

Voila, merci.
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
JulioDelphi 2354 Messages postés dimanche 5 octobre 2003Date d'inscription 18 novembre 2010 Dernière intervention - 7 mai 2008 à 19:02
3
Merci
Oula, et pourquoi pas simplement un StringReplace() ?




fAvant := 'INSERT INTO `x_world` VALUES (5,-396,400,3,106633,'Exodus',5160,'Cloud',3200,'C-W',974);';
fApres := StringReplace(fAvant,'`','''',[rfReplaceAll]); //doublage du ' mis entre 2 ' ça en fait 4, c'est normal :]

hum ?

Merci JulioDelphi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de JulioDelphi
cs_cyber37 111 Messages postés mardi 25 octobre 2005Date d'inscription 19 novembre 2010 Dernière intervention - 9 mai 2008 à 11:17
0
Merci
Hum Hum .. Je n'avais pas vue ta reponse, en faite c'est bon c'est regler j'ai fait une procedure qui en prememier vire le caractere 13 puis apres vire le 19 ou 18 je ne sais plus (comme un caractere est virer sa fait -1) enffin bref sa c'est regler :-) merci quand meme ^^
Commenter la réponse de cs_cyber37
JulioDelphi 2354 Messages postés dimanche 5 octobre 2003Date d'inscription 18 novembre 2010 Dernière intervention - 9 mai 2008 à 11:39
0
Merci
Je te conseille tout de même ma solution qui est moins bidouille ;)
Et puis si le nom de la table vient à changer ou si tu veux réutiliser la fonction sur une autre table, pas besoin de compter les caractères ce qui risque de poser des soucis (la preuve en est que toi meme tu ne sais pas si c'esle 18 ou 19eme ;p)
Commenter la réponse de JulioDelphi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.