Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD8] Comment créer une source de données odbc en ligne de commande ?

3 réponses
Avatar
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.

3 réponses

Avatar
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
Avatar
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
Avatar
Guillaume
Merçi bcp pour cette information.