Je remercie Jean-Marc pour le lien qu'il ma procur=E9 au=20
sujet de la cr=E9ation du DNS par programmation. Cependant=20
j'ai quelque question au sujet de ce code :=20
Private Declare Function SQLConfigDataSource=20
Lib "ODBCCP32.DLL" (ByVal hwndParent&, ByVal frequest%,=20
ByVal lpszDriver$, ByVal lpszAttributes$) As Integer
Private Declare Function SQLAllocEnv% Lib "ODBC32.DLL"=20
(env&)
Public Enum EnumDriver
ACCESS =3D 0
SQL =3D 1
End Enum
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''
'Cr=E9ation d'un DSN
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''
Public Function SetDsn(NomDsn As String, BaseDsn As=20
String, driver As EnumDriver, Optional DescriptionDsn As=20
String) As Integer
Dim lhwndParent As Long
Dim retour As Integer
Dim attributs As String
Select Case driver
Case EnumDriver.ACCESS: driver =3D SACCESS
Case EnumDriver.SQL: driver =3D SSQL
End Select
retour =3D SQLConfigDataSource(lhwndParent, 4, driver,=20
attributs)
End If
End Function
----------------------------------
1- Mon appel de la fonction se fait comme suit :=20
Call SetDsn("Vids", "VidsDataBase.mdb", ??? , "")
Je dois mettre quoi comme (driver As EnumDriver) et est-
ce que "app.path\VidsDataBase.mdb" pour le nom de la BD=20
est une bonne id=E9e ??? (je veux que le lien soit bon dans=20
n'importe quel chemin d'acc=E8s mais tjrs dans le dossier=20
du programme en ex=E9cution)
De plus, je ne comprend pas pourquoi il doit y avoir un=20
retour de fonction et dans ce cas qu'est que je doit=20
faire avec ce retour integer.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc
"Vincent" a écrit dans le message de news:04ed01c48455$02ef99c0$
Je remercie Jean-Marc pour le lien qu'il ma procuré au sujet de la création du DNS par programmation. Cependant j'ai quelque question au sujet de ce code :
Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" (ByVal hwndParent&, ByVal frequest%, ByVal lpszDriver$, ByVal lpszAttributes$) As Integer Private Declare Function SQLAllocEnv% Lib "ODBC32.DLL" (env&)
Public Enum EnumDriver ACCESS = 0 SQL = 1 End Enum
<snip>
1- Mon appel de la fonction se fait comme suit : Call SetDsn("Vids", "VidsDataBase.mdb", ??? , "") Je dois mettre quoi comme (driver As EnumDriver) et est- ce que "app.pathVidsDataBase.mdb" pour le nom de la BD est une bonne idée ??? (je veux que le lien soit bon dans n'importe quel chemin d'accès mais tjrs dans le dossier du programme en exécution)
- Tu dois mettre ACCESS, ou 0 ce qui revient au même
- Oui, c'est une bonne idée de mettre le nom de la DB avec app.path
De plus, je ne comprend pas pourquoi il doit y avoir un retour de fonction et dans ce cas qu'est que je doit faire avec ce retour integer.
Celui qui a écrit la fonction SetDSN s'est trompé. il a écrit:
'''''''''''''''''''''''''' Public Function SetDsn(NomDsn As String, BaseDsn As String, driver As EnumDriver, Optional DescriptionDsn As String) As Integer
< ... snip ... >
retour = SQLConfigDataSource(lhwndParent, 4, driver, attributs) End Function
En fait, il a oublié d'ajouter avant le End Function : SetDsn = retour,
Parce que comme ça, la fonction SetDSN retourne un entier (l'entier renvoyé par SQLConfigDataSource) qui te dit si tout s'est bien passé ou non:
Extrait de la doc:
# The function returns TRUE if it is successful, FALSE if it fails. # If no entry exists in the system information when this function # is called, the function returns FALSE.
la doc complète: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcsqlconfigdatasource.asp
Si tu veux programmer proprement, ton programme doit lire le retour de la fonction et exécuter le traîtement adéquat, comme ceci par exemple:
dim iRet as Integer
iRet = SetDsn( ...) If iRet = 0 then ' the function fails msgbox "Erreur dans la fonction SetDSN" ... Else msgbox "Succès de la fonction SetDSN" ... Endif
Jean-marc
"Vincent" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:04ed01c48455$02ef99c0$a301280a@phx.gbl...
Je remercie Jean-Marc pour le lien qu'il ma procuré au
sujet de la création du DNS par programmation. Cependant
j'ai quelque question au sujet de ce code :
Private Declare Function SQLConfigDataSource
Lib "ODBCCP32.DLL" (ByVal hwndParent&, ByVal frequest%,
ByVal lpszDriver$, ByVal lpszAttributes$) As Integer
Private Declare Function SQLAllocEnv% Lib "ODBC32.DLL"
(env&)
Public Enum EnumDriver
ACCESS = 0
SQL = 1
End Enum
<snip>
1- Mon appel de la fonction se fait comme suit :
Call SetDsn("Vids", "VidsDataBase.mdb", ??? , "")
Je dois mettre quoi comme (driver As EnumDriver) et est-
ce que "app.pathVidsDataBase.mdb" pour le nom de la BD
est une bonne idée ??? (je veux que le lien soit bon dans
n'importe quel chemin d'accès mais tjrs dans le dossier
du programme en exécution)
- Tu dois mettre ACCESS, ou 0 ce qui revient au même
- Oui, c'est une bonne idée de mettre le nom de la DB avec app.path
De plus, je ne comprend pas pourquoi il doit y avoir un
retour de fonction et dans ce cas qu'est que je doit
faire avec ce retour integer.
Celui qui a écrit la fonction SetDSN s'est trompé.
il a écrit:
''''''''''''''''''''''''''
Public Function SetDsn(NomDsn As String, BaseDsn As
String, driver As EnumDriver, Optional DescriptionDsn As
String) As Integer
< ... snip ... >
retour = SQLConfigDataSource(lhwndParent, 4, driver,
attributs)
End Function
En fait, il a oublié d'ajouter avant le End Function : SetDsn = retour,
Parce que comme ça, la fonction SetDSN retourne un entier (l'entier renvoyé
par SQLConfigDataSource) qui te dit si tout s'est bien passé ou non:
Extrait de la doc:
# The function returns TRUE if it is successful, FALSE if it fails.
# If no entry exists in the system information when this function
# is called, the function returns FALSE.
la doc complète:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcsqlconfigdatasource.asp
Si tu veux programmer proprement, ton programme doit lire le retour de la
fonction et exécuter le traîtement adéquat, comme ceci par exemple:
dim iRet as Integer
iRet = SetDsn( ...)
If iRet = 0 then ' the function fails
msgbox "Erreur dans la fonction SetDSN"
...
Else
msgbox "Succès de la fonction SetDSN"
...
Endif
"Vincent" a écrit dans le message de news:04ed01c48455$02ef99c0$
Je remercie Jean-Marc pour le lien qu'il ma procuré au sujet de la création du DNS par programmation. Cependant j'ai quelque question au sujet de ce code :
Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" (ByVal hwndParent&, ByVal frequest%, ByVal lpszDriver$, ByVal lpszAttributes$) As Integer Private Declare Function SQLAllocEnv% Lib "ODBC32.DLL" (env&)
Public Enum EnumDriver ACCESS = 0 SQL = 1 End Enum
<snip>
1- Mon appel de la fonction se fait comme suit : Call SetDsn("Vids", "VidsDataBase.mdb", ??? , "") Je dois mettre quoi comme (driver As EnumDriver) et est- ce que "app.pathVidsDataBase.mdb" pour le nom de la BD est une bonne idée ??? (je veux que le lien soit bon dans n'importe quel chemin d'accès mais tjrs dans le dossier du programme en exécution)
- Tu dois mettre ACCESS, ou 0 ce qui revient au même
- Oui, c'est une bonne idée de mettre le nom de la DB avec app.path
De plus, je ne comprend pas pourquoi il doit y avoir un retour de fonction et dans ce cas qu'est que je doit faire avec ce retour integer.
Celui qui a écrit la fonction SetDSN s'est trompé. il a écrit:
'''''''''''''''''''''''''' Public Function SetDsn(NomDsn As String, BaseDsn As String, driver As EnumDriver, Optional DescriptionDsn As String) As Integer
< ... snip ... >
retour = SQLConfigDataSource(lhwndParent, 4, driver, attributs) End Function
En fait, il a oublié d'ajouter avant le End Function : SetDsn = retour,
Parce que comme ça, la fonction SetDSN retourne un entier (l'entier renvoyé par SQLConfigDataSource) qui te dit si tout s'est bien passé ou non:
Extrait de la doc:
# The function returns TRUE if it is successful, FALSE if it fails. # If no entry exists in the system information when this function # is called, the function returns FALSE.
la doc complète: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcsqlconfigdatasource.asp
Si tu veux programmer proprement, ton programme doit lire le retour de la fonction et exécuter le traîtement adéquat, comme ceci par exemple:
dim iRet as Integer
iRet = SetDsn( ...) If iRet = 0 then ' the function fails msgbox "Erreur dans la fonction SetDSN" ... Else msgbox "Succès de la fonction SetDSN" ... Endif