Requete SQL non suportée ?

Résolu
cs_cyber37 Messages postés 110 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 19 novembre 2010 - 7 mai 2008 à 18:00
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 - 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.

3 réponses

JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
7 mai 2008 à 19:02
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 ?
3
cs_cyber37 Messages postés 110 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 19 novembre 2010
9 mai 2008 à 11:17
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 ^^
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
9 mai 2008 à 11:39
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)
0
Rejoignez-nous