winvsmac
Messages postés84Date d'inscriptionsamedi 26 mai 2007StatutMembreDernière intervention14 décembre 2016
-
16 mars 2008 à 20:27
dimitriusai
Messages postés76Date d'inscriptionlundi 6 novembre 2006StatutMembreDernière intervention 7 mai 2009
-
16 mars 2008 à 21:10
Bonjour à tout le monde de VBFrance !
J'aurai besoin d'un coup de main ! Environnement VB6.
J'ai un formulaire qui comprend les champs suivants :
J'ai déjà passé bcp de temps à monter ma requete SQL mais je n'y arrive pas.
Je dois monter ma requete mais comment faire si plusieurs champs sont renseignés.
Exemple : si l'utilisateur choisi OUI sur le champ Photo, M sur le champ sexe et CNIL OUI, comment monter la requete.
Comment monter la requete SQL en testant les champs un par un ?
J'espere que je suis assez clair. Merci pour votre aide.
Jerome
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 16 mars 2008 à 21:05
Salut,
Si tu veux tester tes champs un par un il te faudras faire une requête à chaque fois...Par contre tu peux faire une concaténation de recherche dans ta requête avec l'opérateur AND
Un petit cours sur les requêtes ??? Alors par ici A+
Exploreur
Linux a un noyau, Windows un pépin
Un jeu en flash sympa...? Voir ici Si vous voulez vous inscrire
mettez comme parrain : exploreur
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Class VDLB permet de créer la MysqlConnection, de lui passer en paramètre la requête sql et de fermer la connection '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Class maclassemysql
'Vars SQL
Dim connStr As String
Dim myConnection As New MySqlConnection
Dim DB_Connection As New MySqlConnection
Dim MySQLCmdCount As String
Public ConnectionStatus = True
'Création de l'instance.
Public Sub New(ByVal SQL_serverLoc, ByVal SQL_useridLoc, ByVal SQL_passwordLoc, ByVal SQL_DATABASELoc)
'Mise des variables de connexion en blob.
If (CreateMySQLConnection(SQL_serverLoc, SQL_useridLoc, SQL_passwordLoc, SQL_DATABASELoc)) Then
Console.WriteLine("Connexion ouverte TRUE")
ConnectionStatus = True
Else
Console.WriteLine("Connexion ouverte FALSE")
ConnectionStatus = False
End If
End Sub
'Initialisatin de la connexion SQL.
Public Function CreateMySQLConnection(ByVal SQL_server, ByVal SQL_userid, ByVal SQL_password, ByVal SQL_DATABASE) As Boolean
Try
connStr = String.Format("server={0};user id={1}; password={2}; database={3}; pooling=false", SQL_server, SQL_userid, SQL_password, SQL_DATABASE)
Dim myConnection As New MySqlConnection(connStr)
'Dim DB_Connection As New MySqlConnection.
DB_Connection.ConnectionString = connStr
DB_Connection.Open()
Console.WriteLine("Connexion ouverte")
Return True
Catch ex As Exception
Console.WriteLine(ex.Message)
Return False
End Try
End Function
'Fonctions de QUERY SQL.
Public Function MySQL_Query(ByVal Command As String) As ArrayList
Dim Result As New ArrayList()
Try
MySQLCmdCount = Command
Dim SelectCommand = New MySqlCommand(MySQLCmdCount, DB_Connection)
Dim oReader As MySqlDataReader = SelectCommand.ExecuteReader()
'Mise dans un Array des résultats de la requête.
While oReader.Read()
Dim ResultQuery As New ArrayList()
For i As Integer = 0 To oReader.FieldCount - 1
ResultQuery.Add(oReader.Item(i))
Next
Result.Add(ResultQuery)
End While
oReader.Close()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
Return Result
End Function
'Fermeture de la connexion SQL.
Public Sub CloseClass()
DB_Connection.Close()
Console.WriteLine("Connexion fermée")
'clos le port 3333 (mysql).
End Sub
Dim MysqlResult1 As New ArrayList() Pour récuperer les donnéers
Dim mysql_class_VAR1 As New maclassemysql(serveurtxt, usertxt, passtxt, databasetxt) On instancie la classe
'Requête MySql. MysqlResult1 mysql_class_VAR1.MySQL_Query("SELECT * FROM `vdlb_perf_history` WHERE server '" + var1
+ "' AND ip = '" + var2 + "' ORDER BY id DESC LIMIT 10 ")
'On récupère la première ligne MysqlResult1(0) avec le première Item(0) dans result1
MysqlResult1(0)item(0) pour récupérer la premiuère valeur etc.
Si ta table compte trois champ tu les récupreras comme ceci :
Dim var1 as ..... = MysqlResult1(0)item(0)
Dim var2 as ..... = MysqlResult1(0)item(1)
Dim var3 as ..... = MysqlResult1(0)item(2)
Si la réponse de ta requete contient plusieurs enregistrements, alors il te suffire de mettre 1, 2 etc.
Ps : pour savoir le nombre d'enregistrement, utilise MysqlResult1. Count