Pbm Requête SQL trop longue !!! [Résolu]

Messages postés
17
Date d'inscription
jeudi 9 septembre 2004
Dernière intervention
10 juillet 2009
- 31 mai 2005 à 20:34 - Dernière réponse :
Messages postés
17
Date d'inscription
jeudi 9 septembre 2004
Dernière intervention
10 juillet 2009
- 3 juin 2005 à 21:52
Salut à tous: mon premier post dans ce forum ;o)



Voilà mon pbm, sous VB6, j'utilise une String pour construire une requête SQL, laquelle est exécutée sur une base SQL serveur.



Dans certains cas la requête excède 266 caractères, du coup, j'en perds une partie (trop grand pour un String!).



Dans la mesure du possible, je souhaite continuer à utiliser un
recordset (il est déconnecté de la base), quelqu'un a une solution à
proposer ???



D'avance merci !



PS: pendant que j'y suis, vous avez quelques conseils sur les méthodes
ou objets à utiliser pour développer une appli de type ERP (module
industriel, moins de 20 utilisateurs en lecture/écriture).
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
707
Date d'inscription
jeudi 5 mai 2005
Dernière intervention
5 janvier 2010
1 juin 2005 à 08:34
3
Merci
Pour ta requete, utilise " & _ puis en debut de ligne " pour la couper : ex
select champ1 " &_
"champ2 from table where ....

Merci tof008 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Meilleure réponse
Messages postés
300
Date d'inscription
mardi 12 octobre 2004
Dernière intervention
8 janvier 2010
1 juin 2005 à 09:42
3
Merci
moi j'ai pas de pb de caractere
sa c ma requete SQL
SELECT RESERVATION.numreserv, datemanif, datefin, Nomsalle, Horaire, #" & verifdeb & "# AS Expr1, #" & veriffin & "# AS Expr2, RESERVATION.numsalle FROM SALLE INNER JOIN RESERVATION ON SALLE.numsalle = RESERVATION.numsalle WHERE (((RESERVATION.datemanif) Between #" & verifdeb & "# And #" & veriffin & "#) AND ((RESERVATION.numsalle)=" & lstsalle.ItemData(lstsalle.ListIndex) & ")) OR (((RESERVATION.datefin) Between #" & verifdeb & "# And #" & veriffin & "#) AND ((RESERVATION.numsalle)=" & lstsalle.ItemData(lstsalle.ListIndex) & ")) OR (((#" & verifdeb & "#) Between datemanif And datefin) AND ((RESERVATION.numsalle)=" & lstsalle.ItemData(lstsalle.ListIndex) & ")) OR (((#" & veriffin & "#) Between datemanif And datefin) AND ((RESERVATION.numsalle)=" & lstsalle.ItemData(lstsalle.ListIndex) & ")) ORDER BY RESERVATION.datemanif"
et sa passe trankil :x
la ligne est un peu grande mais quand tu l'affiche dans un msgbox elle est entiere et sa passe dans la base de donnée :x

Merci Slyders 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Meilleure réponse
Messages postés
17
Date d'inscription
jeudi 9 septembre 2004
Dernière intervention
10 juillet 2009
2 juin 2005 à 20:41
3
Merci
OK, vous avez effectivement raison, c'est une bonne solution quand la
requête est connue d'avance. J'accepte donc les réponses et je vous
remercie, elles serviront certainement à quelqu'un .



Mais dans mon cas, la requête est construite dynamiquement stockée dans un String puis exécuté directement depuis la connection:



Dim CN As ADODB.Connection

Dim RS As ADODB.Recordset

Dim MaRequete as String



MaRequete est ensuite initialisée avec des paramètres utilisateurs obtenus "at RunTime"

puis:



Set RS = CN.Execute(MaRequete)



Et lá, la cata, MaRequete a été tronquée....

En voyant vos réponses, j'ai bien pensé à mettre MaRequête dans une
collection, mais je serais obligé de reconstituer un String pour
pouvoir l'exécuter, du coup... ça va pas marcher...

INSPIREZ-MOI SVP !!!

Merci papaye976 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Meilleure réponse
Messages postés
17
Date d'inscription
jeudi 9 septembre 2004
Dernière intervention
10 juillet 2009
3 juin 2005 à 21:52
3
Merci
L'inspiration est venue: MaRequete n'est plus un String....



Dim MaRequete



MaRequete = "SELECT xxxxxx.............." & VbCrLf

MaRequete = MaRequete & "FROM xxxxxx.............." & VbCrLf

MaRequete = MaRequete & "WHERE xxxxxx.............."



Merci à vous !

Merci papaye976 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

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.