[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [linux-team] [SQL] Problme avec apostrophes et mise a jour



> De : Tony MASSE[SMTP:masse@serecom.univ-tln.fr]
> Sinon, toujours en SQL, mais dans une autre categorie, 
> la designation de certains article comporte une apostrophe
> ('). Mais l'apostrophe est le separateur (l'encadreur) 
> des valeurs alphanumeriques. Donc pour l'instant je me 
> cantonne a changer toutes les ' en ". Mais ca ne peut 
> pas durer comme ca apres la periode de developpement
> C'est pour une appli Windows faite en Delphi

Si tes données ont des caractères réservés par la syntaxe SQL, le plus
simple et le plus performant - en Delphi - est d'utiliser les requètes
paramétrées. Dans les paramètres, il n'y a pas de contraintes sur les
caractères utilisés.

Voici un exemple de code tiré d'un de mes programmes:
   SqlCmd := 'INSERT INTO MED_INFO_NEWDOC ' +
             '(NMED, SITE, SERVICE, SIGNET, LIBELLE) ' +
             'VALUES (:NMed,   :Site, :Service, ' +
                     ':Signet, :Libelle )';
   aQuery.Close;
   aQuery.SQL.Clear;
   aQuery.SQL.Add(SqlCmd);
   aQuery.ParamByName('NMed').AsInteger   := StrToInt(NMed);
   aQuery.ParamByName('Site').AsString    := Site;
   aQuery.ParamByName('Service').AsString := Service;
   aQuery.ParamByName('Signet').AsString  := Signet;
   aQuery.ParamByName('Libelle').AsString := libelle;
   aQuery.ExecSQL;

Toutes les variables (strings) Site, Service, Signet et Libelle peuvent
avoir des valeur contenant des apostrophes, de guillemets, etc. Pas de
traitement particulier à faire.

Si je peut te conseiller d'utiliser la mailing list delphi-db@elists.org
(http://www.elists.org), tu auras des réponses plus rapides et
meilleures pour les sujets relatifs à Delphi et les DB. Ici, je sens que
cela va jaser...

> --
> francois.piette@pophost.eunet.be
> http://www.rtfm.be/fpiette/indexuk.htm
> 
---------
Visit the Linux Supertore Online: http://www.redcorp.com !
If you want to be deleted from the list, send a mail to
majordomo@rtfm.be with "unsubscribe linux-team" in the body.