Comment faire une requete SQL de plus de 255 caractères ?

Résolu
cs_billmax Messages postés 16 Date d'inscription mercredi 15 janvier 2003 Statut Membre Dernière intervention 14 mai 2007 - 12 févr. 2006 à 22:59
cs_billmax Messages postés 16 Date d'inscription mercredi 15 janvier 2003 Statut Membre Dernière intervention 14 mai 2007 - 13 févr. 2006 à 11:36
Bonjour,
je dois réaliser une requête SQL qui ajout dans une base mySQL avec DELPHI 7 les informations sur une maison (je veux gérer une base de données pour une agence immobilière).
Or, mis bout à bout, mes propriétés de la table affaires font une chaîne de plus de 255 caractères et DELPHI m'affiche un message d'erreur : chaîne de plus de 255 caractère = pb.

Comment faire ?
J' ai créer 3 requêtes pour diviser cette grande chaîne, mais les infos de la seconde requête ne sont pas inscritent dans la même ligne que la requête 1 sous mySQL 1.7
Avec le WHERE de la requete 2, j ai un message d'erreur de syntaxe de la requete.
Pouvez vous me corriger.
PS : je suis étudiant en 1 annee de BTS IG. J ai donc utilisé la methode du professeur.
Si il y en a une autre, je suis ouvert à tout !

Merci d'avance.
billmax

===================================
// Ajout dans la bdd
code:=T[3];
//Showmessage(code);
Query1.SQL.Clear;
Query2.SQL.Clear;
//Query3.SQL.Clear;
Query1.SQL.Add('INSERT INTO affaires(type_transaction,type_bien,code_affaire,no_mandat,cp,ville,Prix_mandat,Prix_mandat_euro,secteur,pub,nb_de_pieces,nb_de_chambres,surface_habitable,surface_terrain,niveaux,etage,annee_construction,jardin,digicode,jardinautre) WHERE (code_affaire='+QuotedStr(code)+')');
Query2.SQL.Add('INSERT INTO affaires(balcon,terrasse,cave,ascenceur,garage,parking,chauffage,nb_salle_de_bains,nb_WC,orientation,DateModif,categorieinternet) WHERE (code_affaire='+QuotedStr(code)+')');
//Query3.SQL.Add('INSERT INTO affaires(Texteinternet1,Texteinternet2,Texteinternet3,Stationnement,URLVisiteVirtuelle1,URLVisiteVirtuelle2,URLVisiteVirtuelle3,CritN1,CritN2,CritN3,CritN4,CritC1,CritC2,CritC3,CritC4,CritD1,CritD2,CritD3,CritD4)');



Query1.SQL.Add('VALUES(:a1,:b1,:c1,:d1,:e1,:f1,:g1,:h1,:i1,:j1,:k1,:l1,:m1,:n1,:o1,:p1,:q1,:r1,:s1,:t1)');
Query2.SQL.Add('VALUES(:a2,:b2,:c2,:d2,:e2,:f2,:g2,:h2,:i2,:j2,:k2,:l2)');
Query3.SQL.Add('VALUES(:a3,:b3,:c3,:d3,:e3,:f3,:g3,:h3,:i3,:j3,:k3,:l3,:m3,:n3,:o3,:p3,:q3,:r3,:s3)');


Query1.Params[0].AsString:=T[1];
Query1.Params[1].AsString:=T[2];
Query1.Params[2].AsString:=T[3];
....

3 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
12 févr. 2006 à 23:27
arf ... erreur de TAB > ENTER, desolé pour le double post

exemple concret :

query.sql.add(
'INSERT INTO' +
'affaires(champ,champ,champ,champ) ' +
'VALUES('+QuotedStr(v1)+','+QuotedStr(v2)+','+QuotedStr(v3)+','+QuotedStr(v4)+') ' +
'WHERE (code_affaire='+QuotedStr(code)+')'
);

La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
3
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
12 févr. 2006 à 23:21
Query.SQL.Add('255 caracteres' + '255 caracteres' + '255 caracteres');

ou encore :

requette := '255 caracteres' + '255 caracteres' + '255 caracteres';
Query.SQL.Add(requette);

La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
0
cs_billmax Messages postés 16 Date d'inscription mercredi 15 janvier 2003 Statut Membre Dernière intervention 14 mai 2007
13 févr. 2006 à 11:36
Merci ! tout fonctionne.
TRES BONNE METHODE
billmax
13/02/2006
PS : REPONSE ACCEPTEE (car le bouton de reponse accepté n'a pas l'air de fonctionner)
0
Rejoignez-nous