IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

fonction pour doubler les antislash dans un insert sql


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 341
    Points : 150
    Points
    150
    Par défaut fonction pour doubler les antislash dans un insert sql
    Bonjour,

    Encore moi :o(
    J'ai découvert que lors d'un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    insert into table values
    (chaine1, chaine2),
    (chaine1, chaine2);
    si un antislash figure dans le varchar représentant la chaine (par exemple le nom d'un chemin sur l'ordi), cela me fait des erreurs lors de l'exécution de la requête.

    Bon je peux passer les 40000 lignes de ma table pour voir s'il y a des antislash dans une chaine et les doubler (car c'est la seule solution que j'ai trouvé pour que la requête s'exécute correctement), mais je préfèrerai gérer ça lors de l'extraction des données par la moulinette.
    Connaissez-vous une fonction qui double les anti-slash dans une chaine (comme quotedstr qui ajoute des quotes à une chaine), ou bien faut-il que je l'écrive ?

    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 341
    Points : 150
    Points
    150
    Par défaut
    Bon, je dois être fatigué ... il vaut mieux que j'aille me coucher

    J'ai résolu le problème en utilisant :

    replacestr(string, '\', '\\')

    systématiquement pour toutes les string

    Je trouve que ce n'est pas très élégant et surtout que ça doit bouffer du temps mais je n'ai rien trouvé d'autre

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Faire un StringReplace dans ta moulinette Delphi sur 40000 lignes, t'inquiète ça ne sera pas bien long (plus lent en D7 que DX mais rien de grave)

    replacestr je ne connais pas mais StringReplace c'est la fonction standard
    Dis-toi que sur sur disons une chaine de 255 caractères, lancés 100000x ça se compte en seconde selon l'implémentation, faisant pas mal de bench à ce sujet avec FastCode pour les versions 64Bits.

    Intéresse toi à l'échappement SQL, comme mysqli_real_escape_string car tu as pensé au \ mais que faire si tu as une guillemet ou un retour charriot dans un texte concaténé comme ça dans la moulinette gérant le script ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 341
    Points : 150
    Points
    150
    Par défaut
    Je m'étais effectivement posé la question, mais sur les tables que j'ai eu à traité, je n'en ai pas trouvé avec des recherches sur les extractions.
    Il faudra que je me penche dessus.
    Tu as raison ce n'est pas long.
    Merci pour tes conseils.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fonction pour dévoiler les lettres dans un jeu de pendu
    Par Ennario dans le forum Général Python
    Réponses: 1
    Dernier message: 23/11/2016, 18h12
  2. [PHP 5.0] fonction pour gerer les accents dans une chaine
    Par adel25 dans le forum Langage
    Réponses: 1
    Dernier message: 21/08/2013, 14h36
  3. Réponses: 5
    Dernier message: 13/11/2007, 22h00
  4. Réponses: 2
    Dernier message: 26/07/2007, 14h30
  5. Réponses: 6
    Dernier message: 31/07/2006, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo