[WD8] Comment créer une source de données odbc en ligne de commande ?
3 réponses
Guillaume
Bonjour
J'aimerai pouvoir créer une source de données ODBC directement en ligne de
commande, sans passer par l'interface ODBC Admin ; ceci va me permettre
certaines manipulations depuis WinDev sans avoir à quitter le programme à
chaque fois. Si qlq savait comment s'y prendre, cela m'enlèverait une épine
du pieds.
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 QUERE
> J'aimerai pouvoir créer une source de données ODBC directement en ligne de commande...
Cadeau... :') Amicalement, Jean-Marc QUERE
// - - - Classe caODBC_DSN
Déclaration de caODBC_DSN : caODBC_DSN est une classe hérite de caObjet GLOBALE PRIVÉE leDll est un booléen FIN Terminaison de caODBC_DSN : SI ::leDll ALORS DéchargeDLL(::leDll) FIN Constructeur : // Syntaxe : //caODBC_DSN () // // Paramètres : // Aucun // Valeur de retour : // Aucune PROCEDURE Constructeur() SI PAS ::leDll ALORS ::leDLL=ChargeDLL("ODBCCP32.dll") FIN Destructeur : // Syntaxe : //caODBC_DSN () // // Paramètres : // Aucun // Valeur de retour : // Aucune PROCEDURE Destructeur()
Méthode Create : // Syntaxe : //[ <Résultat> = ] Create (<acDrv>, <acNme>, <acDsc>, <acNBd>) // // Paramètres : // acDrv : pilote ODBC, ex. : "Microsoft Access Driver (*.mdb)" // acNme : nom de la source ODBC à créer, ex. : "MS Access WD8" // acDsc : description de la source ODBC, ex. : "Demo DSN ADO" // acNBd : Attribut de la source ODBC (selon pilote), ex. : "DBQ=C:tmpxmail.mdb" // Valeur de retour : // entier : 0 erreur, 1 succès PROCEDURE Create(acDrv,acNme,acDsc,acNBd) leRes est un entier SI ::leDll ALORS lcAtt est une chaîne ="DSN="+acNme+Caract(0)+"DESCRIPTION="+acDsc+Caract(0)+acNBd+Caract(0) leRes=AppelDLL32("ODBCCP32.dll","SQLConfigDataSource",Null,1,acDrv,lcAtt) // 1 <=> ODBC_ADD_DSN FIN RENVOYER leRes Méthode Remove : // Syntaxe : //[ <Résultat> = ] Remove (<acDrv>, <acNme>) // // Paramètres : // acDrv : pilote ODBC, ex. : "Microsoft Access Driver (*.mdb)" // acNme : nom de la source ODBC à créer, ex. : "MS Access WD8" // Valeur de retour : // entier : 0 erreur, 1 succès PROCEDURE Remove(acDrv,acNme) leRes est un entier SI ::leDll ALORS lcAtt est une chaîne ="DSN="+acNme+Caract(0) leRes=AppelDLL32("ODBCCP32.dll","SQLConfigDataSource",Null,3,acDrv,lcAtt) // 3 <=> ODBC_REMOVE_DSN FIN RENVOYER leRes Méthode Modify : // Syntaxe : //[ <Résultat> = ] Modify (<acDrv>, <acNme>) // // Paramètres : // acDrv : pilote ODBC, ex. : "Microsoft Access Driver (*.mdb)" // acNme : nom de la source ODBC à créer, ex. : "MS Access WD8" // Valeur de retour : // entier : selon bouton de sortie utilisé : 0 cancel, 1 ok PROCEDURE Modify(acDrv,acNme) leRes est un entier SI ::leDll ALORS lcAtt est une chaîne ="DSN="+acNme+Caract(0) leRes=AppelDLL32("ODBCCP32.dll","SQLConfigDataSource",Handle(),2,acDrv,lcAtt) // 2 <=> ODBC_CONFIG_DSN FIN RENVOYER leRes
// - - - -
Exemple (création à la volée d'une source ODBC pour une conversion automatique vers HF7 avec WDConver.exe) : loDSN est un caODBC_DSN SI loDSN:Create("Microsoft Paradox Driver (*.db )","APIEND_XMAIL","APIEND_XMAIL","C:"+Caract(0)+"Fil=Paradox 5.X;"+Caract(0)+"DefaultDir=c:xtrd2xatl2;"+Caract(0)+"Dbq=c:xtrd2xatl2"+Caract(0)+"CollatingSequence=ASCII") ALORS LanceAppli(lcPTH+"WDConver.exe -error/SCRIPT="+lcPTH+"XMAIL.wdv", exeActif, Vrai) loDSN:Remove("Microsoft Paradox Driver (*.db )","APIEND_XMAIL") FIN
-- APIEND informatique [R&D] Site : http://www.apiend.com
> J'aimerai pouvoir créer une source de données ODBC directement en ligne de
commande...
Cadeau... :')
Amicalement, Jean-Marc QUERE
// - - - Classe caODBC_DSN
Déclaration de caODBC_DSN :
caODBC_DSN est une classe
hérite de caObjet
GLOBALE PRIVÉE
leDll est un booléen
FIN
Terminaison de caODBC_DSN :
SI ::leDll ALORS
DéchargeDLL(::leDll)
FIN
Constructeur :
// Syntaxe :
//caODBC_DSN ()
//
// Paramètres :
// Aucun
// Valeur de retour :
// Aucune
PROCEDURE Constructeur()
SI PAS ::leDll ALORS
::leDLL=ChargeDLL("ODBCCP32.dll")
FIN
Destructeur :
// Syntaxe :
//caODBC_DSN ()
//
// Paramètres :
// Aucun
// Valeur de retour :
// Aucune
PROCEDURE Destructeur()
Méthode Create :
// Syntaxe :
//[ <Résultat> = ] Create (<acDrv>, <acNme>, <acDsc>, <acNBd>)
//
// Paramètres :
// acDrv : pilote ODBC, ex. : "Microsoft Access Driver (*.mdb)"
// acNme : nom de la source ODBC à créer, ex. : "MS Access WD8"
// acDsc : description de la source ODBC, ex. : "Demo DSN ADO"
// acNBd : Attribut de la source ODBC (selon pilote), ex. :
"DBQ=C:tmpxmail.mdb"
// Valeur de retour :
// entier : 0 erreur, 1 succès
PROCEDURE Create(acDrv,acNme,acDsc,acNBd)
leRes est un entier
SI ::leDll ALORS
lcAtt est une chaîne
="DSN="+acNme+Caract(0)+"DESCRIPTION="+acDsc+Caract(0)+acNBd+Caract(0)
leRes=AppelDLL32("ODBCCP32.dll","SQLConfigDataSource",Null,1,acDrv,lcAtt)
// 1 <=> ODBC_ADD_DSN
FIN
RENVOYER leRes
Méthode Remove :
// Syntaxe :
//[ <Résultat> = ] Remove (<acDrv>, <acNme>)
//
// Paramètres :
// acDrv : pilote ODBC, ex. : "Microsoft Access Driver (*.mdb)"
// acNme : nom de la source ODBC à créer, ex. : "MS Access WD8"
// Valeur de retour :
// entier : 0 erreur, 1 succès
PROCEDURE Remove(acDrv,acNme)
leRes est un entier
SI ::leDll ALORS
lcAtt est une chaîne ="DSN="+acNme+Caract(0)
leRes=AppelDLL32("ODBCCP32.dll","SQLConfigDataSource",Null,3,acDrv,lcAtt)
// 3 <=> ODBC_REMOVE_DSN
FIN
RENVOYER leRes
Méthode Modify :
// Syntaxe :
//[ <Résultat> = ] Modify (<acDrv>, <acNme>)
//
// Paramètres :
// acDrv : pilote ODBC, ex. : "Microsoft Access Driver (*.mdb)"
// acNme : nom de la source ODBC à créer, ex. : "MS Access WD8"
// Valeur de retour :
// entier : selon bouton de sortie utilisé : 0 cancel, 1 ok
PROCEDURE Modify(acDrv,acNme)
leRes est un entier
SI ::leDll ALORS
lcAtt est une chaîne ="DSN="+acNme+Caract(0)
leRes=AppelDLL32("ODBCCP32.dll","SQLConfigDataSource",Handle(),2,acDrv,lcAtt)
// 2 <=> ODBC_CONFIG_DSN
FIN
RENVOYER leRes
// - - - -
Exemple (création à la volée d'une source ODBC pour une conversion
automatique vers HF7 avec WDConver.exe) :
loDSN est un caODBC_DSN
SI loDSN:Create("Microsoft Paradox Driver (*.db
)","APIEND_XMAIL","APIEND_XMAIL","C:"+Caract(0)+"Fil=Paradox
5.X;"+Caract(0)+"DefaultDir=c:xtrd2xatl2;"+Caract(0)+"Dbq=c:xtrd2xatl2"+Caract(0)+"CollatingSequence=ASCII")
ALORS
LanceAppli(lcPTH+"WDConver.exe -error/SCRIPT="+lcPTH+"XMAIL.wdv",
exeActif, Vrai)
loDSN:Remove("Microsoft Paradox Driver (*.db )","APIEND_XMAIL")
FIN
--
APIEND informatique [R&D]
Site : http://www.apiend.com
> J'aimerai pouvoir créer une source de données ODBC directement en ligne de commande...
Cadeau... :') Amicalement, Jean-Marc QUERE
// - - - Classe caODBC_DSN
Déclaration de caODBC_DSN : caODBC_DSN est une classe hérite de caObjet GLOBALE PRIVÉE leDll est un booléen FIN Terminaison de caODBC_DSN : SI ::leDll ALORS DéchargeDLL(::leDll) FIN Constructeur : // Syntaxe : //caODBC_DSN () // // Paramètres : // Aucun // Valeur de retour : // Aucune PROCEDURE Constructeur() SI PAS ::leDll ALORS ::leDLL=ChargeDLL("ODBCCP32.dll") FIN Destructeur : // Syntaxe : //caODBC_DSN () // // Paramètres : // Aucun // Valeur de retour : // Aucune PROCEDURE Destructeur()
Méthode Create : // Syntaxe : //[ <Résultat> = ] Create (<acDrv>, <acNme>, <acDsc>, <acNBd>) // // Paramètres : // acDrv : pilote ODBC, ex. : "Microsoft Access Driver (*.mdb)" // acNme : nom de la source ODBC à créer, ex. : "MS Access WD8" // acDsc : description de la source ODBC, ex. : "Demo DSN ADO" // acNBd : Attribut de la source ODBC (selon pilote), ex. : "DBQ=C:tmpxmail.mdb" // Valeur de retour : // entier : 0 erreur, 1 succès PROCEDURE Create(acDrv,acNme,acDsc,acNBd) leRes est un entier SI ::leDll ALORS lcAtt est une chaîne ="DSN="+acNme+Caract(0)+"DESCRIPTION="+acDsc+Caract(0)+acNBd+Caract(0) leRes=AppelDLL32("ODBCCP32.dll","SQLConfigDataSource",Null,1,acDrv,lcAtt) // 1 <=> ODBC_ADD_DSN FIN RENVOYER leRes Méthode Remove : // Syntaxe : //[ <Résultat> = ] Remove (<acDrv>, <acNme>) // // Paramètres : // acDrv : pilote ODBC, ex. : "Microsoft Access Driver (*.mdb)" // acNme : nom de la source ODBC à créer, ex. : "MS Access WD8" // Valeur de retour : // entier : 0 erreur, 1 succès PROCEDURE Remove(acDrv,acNme) leRes est un entier SI ::leDll ALORS lcAtt est une chaîne ="DSN="+acNme+Caract(0) leRes=AppelDLL32("ODBCCP32.dll","SQLConfigDataSource",Null,3,acDrv,lcAtt) // 3 <=> ODBC_REMOVE_DSN FIN RENVOYER leRes Méthode Modify : // Syntaxe : //[ <Résultat> = ] Modify (<acDrv>, <acNme>) // // Paramètres : // acDrv : pilote ODBC, ex. : "Microsoft Access Driver (*.mdb)" // acNme : nom de la source ODBC à créer, ex. : "MS Access WD8" // Valeur de retour : // entier : selon bouton de sortie utilisé : 0 cancel, 1 ok PROCEDURE Modify(acDrv,acNme) leRes est un entier SI ::leDll ALORS lcAtt est une chaîne ="DSN="+acNme+Caract(0) leRes=AppelDLL32("ODBCCP32.dll","SQLConfigDataSource",Handle(),2,acDrv,lcAtt) // 2 <=> ODBC_CONFIG_DSN FIN RENVOYER leRes
// - - - -
Exemple (création à la volée d'une source ODBC pour une conversion automatique vers HF7 avec WDConver.exe) : loDSN est un caODBC_DSN SI loDSN:Create("Microsoft Paradox Driver (*.db )","APIEND_XMAIL","APIEND_XMAIL","C:"+Caract(0)+"Fil=Paradox 5.X;"+Caract(0)+"DefaultDir=c:xtrd2xatl2;"+Caract(0)+"Dbq=c:xtrd2xatl2"+Caract(0)+"CollatingSequence=ASCII") ALORS LanceAppli(lcPTH+"WDConver.exe -error/SCRIPT="+lcPTH+"XMAIL.wdv", exeActif, Vrai) loDSN:Remove("Microsoft Paradox Driver (*.db )","APIEND_XMAIL") FIN
-- APIEND informatique [R&D] Site : http://www.apiend.com
Jean-Marc QUERE
Euh... dans la déclaration retirer "hérite de caObjet" (sauf si vous avez le livre lol)
Déclaration de caODBC_DSN : caODBC_DSN est une classe hérite de caObjet GLOBALE PRIVÉE leDll est un booléen FIN
-- APIEND informatique [R&D] Site : http://www.apiend.com
Euh... dans la déclaration retirer "hérite de caObjet" (sauf si vous
avez le livre lol)
Déclaration de caODBC_DSN :
caODBC_DSN est une classe
hérite de caObjet
GLOBALE PRIVÉE
leDll est un booléen
FIN
--
APIEND informatique [R&D]
Site : http://www.apiend.com