Décomposeur / recomposeur de requête sql

Soyez le premier à donner votre avis sur cette source.

Vue 5 594 fois - Téléchargée 526 fois

Description

Ce code vous permet de décomposer puis de recomposer une requête SQL (INSERT ou UPDATE) de votre code VB.

Vous allez me dire, mais pourquoi faire !?
Et bien, c'est tout simple, vous n'en avez jamais eu marre de rechercher la valeur qui doit être modifier dans un INSERT pendant une heure. Ou alors comment ajouter facilement une valeur. Comment transformer un INSERT en UPDATE et vice versa.

Avec ce petit code, vous le faites facilement. Explication :
- Copier votre requête SQL de votre code en VB et coller la dans le décomposeur. Celle ci doit être en une seule ligne, et j'insiste la dessus !
- Cliquer sur le bouton Décomposer,
- Modifier vos paramètres de la requête facilement(en effet, vous avez MaColonne = MaValeur,
- Sélectionnez le type de requête que vous désirez générer,
- Cliquer sur le bouton Recomposer, et hop vous avez votre requête dans le presse papier.

Voici un exemple de requête parfaitement gérer par mon appli :
"INSERT INTO F_Doc(AR_REF ,CT_NUM ,DL_DATEBL ,DL_DESIGN ,DL_QTEBC ,DL_QTEBL ,DL_TAXE2 ,DL_TAXE3 ,DL_TNOMENCL ,DL_TREMEXEP ,DL_TREMPIED ,DL_TTC ,DL_TYPEPL ,DL_TYPETAUX1 ,DO_REF ,DO_TYPE ,MAITRE_OUVRAGE ,CHANTIER ,IMMATRICULATION) VALUES( '" + sType + "', '" & CStr(sValeur(TI_Entreprise)) & "', '{d " & DateBL & "}', '" & DL_DESIGN & "', " & CStr(sValeur(TI_Penalite)) & ", " & CStr(sValeur(TI_Penalite)) & ", 0, 0, 0, 0, 0, 0, 0, 0, '', 2, '" & CStr(sValeur(TI_MOuvrage)) & "', '" & CStr(sValeur(TI_Chantier)) & "', '" & CStr(sValeur(TI_Immat)) & ")"

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
21
Date d'inscription
mercredi 8 mai 2002
Statut
Membre
Dernière intervention
8 janvier 2008
1
Oui, mais pour certaines base de données(comme SQL, ORACLE ou SAGE) tu ne peux pas utiliser ce code. Car il n'est pas géré par le driver ODBC de celles ci.
Messages postés
36
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
5 décembre 2002

salut, ce code peut servir, mais personelement quand il y a beaucoup de champs à mettre à jour ou à inserer, je conseille de ne pas utiliser une "connection" mais un "recordset" ouverte avec le bon curseur :

set rs = createobject("Scripting.FileSystemObject")
' ou (si les references VB sont bien renseignées)
' dim rs as new Scripting.FileSystemObject

' De memoire il me semble que ce sont ces valeurs là :
rs.CursorLocation = 3
rs.CursorType = 2
rs.LockType = 3

rs.open "SELECT * FROM ma_table WHERE ma_condition"
if not rs.eof then
' ajoute une ligne si aucune ligne n'est trouvée
rs.addnew
end if
rs("mon_champ_1") = ma_valeur1
rs("mon_champ_2") = ma_valeur2
rs("mon_champ_3") = ma_valeur3
' ...
rs.update
rs.close
set rs = nothing

' j'ai ecris ce code de tete, sans le tester. Il se peut qu'il y ait des erreurs. Mais en tout cas j'utilise cette technique très souvent.
Cela permet de ne pas avoir une requete "UPDATE" ou "INSERT" de 3 kilometres

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.