Comment faire une requete SQL de plus de 255 caractères ? [Résolu]

Messages postés
16
Date d'inscription
mercredi 15 janvier 2003
Dernière intervention
14 mai 2007
- - Dernière réponse : cs_billmax
Messages postés
16
Date d'inscription
mercredi 15 janvier 2003
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];
....
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
2 janvier 2019
34
3
Merci
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>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de f0xi
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
2 janvier 2019
34
0
Merci
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>
Commenter la réponse de f0xi
Messages postés
16
Date d'inscription
mercredi 15 janvier 2003
Dernière intervention
14 mai 2007
0
Merci
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)
Commenter la réponse de cs_billmax

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.