PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Source de données ODBC
Source de données ODBC
Started by MikeFilth, Mar., 23 2006 5:20 PM - 3 replies
Posted on March, 23 2006 - 5:20 PM
Salut à tous.

Quelqu'un connait t'il le moyen de parametrer une source ODBC par un bout de code windev.

Mon problème vient du fait que j'ai une application multi societe, avec une base par société. J'utilise un accès natif PROGRESS. Lors de l'ajout d'une société il me faut ajouter une base sous linux. jusque la pas de problème mais je ne veux pas faire créer la source de donnée au client donc je voudrait la creer par code.

Merci d'avance pour votre aide.

MikeFilth
Posted on March, 23 2006 - 5:50 PM
je suis egalement très interessé

Mais surtout surpris qu'il n'y ait pas de composant qui le gère.
Ou de ressources mise à dispo.
Posted on March, 23 2006 - 5:51 PM
Re salut

Pour ce que ca interesse voici deja un bout de code permettant de recuperer les sources de donnes systeme du PC:

b est un entier
char est une chaîne

char=RegistreListeValeur("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources")

BOUCLE
b++
SI ExtraitChaîne(char,b,RC)=EOT ALORS SORTIR
SI ExtraitChaîne(char,b,RC)<>"GlobalCar" ET ExtraitChaîne(char,b,RC)<>"" ALORS
trace(ExtraitChaîne(char,b,RC)+gLien(ExtraitChaîne(char,b,RC)))
FIN
FIN

bon dev @ tous et @ +
Posted on March, 23 2006 - 6:41 PM
Salut.

voici le code utilisé pour creer une source ODBC. Pour info, je cherche a créer une source de données ODBC sur une base PROGRESS. le nom de cette source sera : ProjetV10LinuxSoc et le code de la société ex : ProjetV10LinuxSoc5. La base de données s'appelle db, l'utilisateur est sysprogress.

/***********************************************************/
Récupèle la liste des connections dans un champ liste
/***********************************************************/
b est un entier
char est une chaîne

char=RegistreListeValeur("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources")

BOUCLE
b++
SI ExtraitChaîne(char,b,RC)=EOT ALORS SORTIR
SI ExtraitChaîne(char,b,RC)<>"GlobalCar" ET ExtraitChaîne(char,b,RC)<>"" ALORS
ListeAjoute(Source_ODBC,ExtraitChaîne(char,b,RC)+gLien(ExtraitChaîne(char,b,RC)))
FIN
FIN

/***********************************************************/
Teste l'existance de la source et la crée si elle n'existe pas et s'y connecte
/***********************************************************/
SI ListeCherche(Source_ODBC,"ProjetV10LinuxSoc"+CodeSoc,Vrai) = -1 ALORS
Libelle_test..Couleur = iRougeFoncé
Libelle_test = "Source de donnée inexistante ! Création en cours ..."
SI PAS RegistreExiste("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ProjetV10LinuxSoc"+CodeSoc) ALORS
RegistreCréeClé"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ProjetV10LinuxSoc"+CodeSoc)
FIN
RegistreEcrit("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ProjetV10LinuxSoc"+CodeSoc,"Driver","C:\Progress\OpenEdge\bin\PGPRO1019.DLL")
RegistreEcrit("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ProjetV10LinuxSoc"+CodeSoc,"HostName","192.168.55.21")
RegistreEcrit("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ProjetV10LinuxSoc"+CodeSoc,"PortNumber","6500")
RegistreEcrit("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ProjetV10LinuxSoc"+CodeSoc,"DatabaseName","db")
RegistreEcrit("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ProjetV10LinuxSoc"+CodeSoc,"LogonID","sysprogress")
RegistreEcrit("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ProjetV10LinuxSoc"+CodeSoc,"StaticCursorLongColBuffLen","4096")
RegistreEcrit("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ProjetV10LinuxSoc"+CodeSoc,"EnableTimestampWithTimeZone","1")
RegistreEcrit("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ProjetV10LinuxSoc"+CodeSoc,"DefaultIsolationLevel","SQL_TXN_REPEATABLE_READ")
RegistreEcrit("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ProjetV10LinuxSoc"+CodeSoc,"ArraySize","50")
RegistreEcrit("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ProjetV10LinuxSoc"+CodeSoc,"DefaultLongDataBuffLen","2048")
RegistreEcrit("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources","ProjetV10LinuxSoc"+CodeSoc,"DataDirect 4.20 32-BIT OpenEdge SQL v10.0B")
FIN

Libelle_test..Couleur = iNoir
Libelle_test = "Connexion à "+"ProjetV10LinuxSoc"+CodeSoc+" en cours ..."

HDécritConnexion("MaConnexion","sysprogress","Windev","ProjetV10LinuxSoc"+CodeSoc,"gescom",hAccèsNatifProgress)
SI HChangeConnexion("*","MaConnexion") ALORS
Libelle_test..Couleur = iBleuFoncé
Libelle_test = "Connexion à "+"ProjetV10LinuxSoc"+CodeSoc+" réussi"
SINON
Libelle_test..Couleur = iRougeFoncé
Libelle_test = "Echec de la connexion à "+"ProjetV10LinuxSoc"+CodeSoc
FIN