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

papaye976 17 Messages postés jeudi 9 septembre 2004Date d'inscription 10 juillet 2009 Dernière intervention - 31 mai 2005 à 20:34 - Dernière réponse : papaye976 17 Messages postés jeudi 9 septembre 2004Date d'inscription 10 juillet 2009 Dernière intervention
- 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

tof008 707 Messages postés jeudi 5 mai 2005Date d'inscription 5 janvier 2010 Dernière intervention - 1 juin 2005 à 08:34
+3
Utile
Pour ta requete, utilise " & _ puis en debut de ligne " pour la couper : ex
select champ1 " &_
"champ2 from table where ....
Cette réponse vous a-t-elle aidé ?  
Slyders 300 Messages postés mardi 12 octobre 2004Date d'inscription 8 janvier 2010 Dernière intervention - 1 juin 2005 à 09:42
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
papaye976 17 Messages postés jeudi 9 septembre 2004Date d'inscription 10 juillet 2009 Dernière intervention - 2 juin 2005 à 20:41
+3
Utile
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 !!!
Cette réponse vous a-t-elle aidé ?  
papaye976 17 Messages postés jeudi 9 septembre 2004Date d'inscription 10 juillet 2009 Dernière intervention - 3 juin 2005 à 21:52
+3
Utile
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 !
Cette réponse vous a-t-elle aidé ?  

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.