PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Source de données ODBC
Source de données ODBC
Iniciado por MikeFilth, 23,mar. 2006 17:20 - 3 respuestas
Publicado el 23,marzo 2006 - 17:20
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
Publicado el 23,marzo 2006 - 17:50
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.
Publicado el 23,marzo 2006 - 17:51
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 @ +
Publicado el 23,marzo 2006 - 18:41
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