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

cs_billmax 16 Messages postés mercredi 15 janvier 2003Date d'inscription 14 mai 2007 Dernière intervention - 12 févr. 2006 à 22:59 - Dernière réponse : cs_billmax 16 Messages postés mercredi 15 janvier 2003Date d'inscription 14 mai 2007 Dernière intervention
- 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
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 12 févr. 2006 à 23:27
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>

Merci f0xi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de f0xi
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 12 févr. 2006 à 23:21
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
cs_billmax 16 Messages postés mercredi 15 janvier 2003Date d'inscription 14 mai 2007 Dernière intervention - 13 févr. 2006 à 11:36
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.