Bonjour.
Pour un logiciel sur lequel je travaille, je dois créer une connection ODBC Informix directement à partir de mon programme.
Après quelques recherches (avec, pour une fois , l'aide de msdn), j'ai trouvé la fonction qui permet de réaliser cela : SQLConfigDataSource.
En voici le prototype :
Donc, jusque là, tout va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part BOOL SQLConfigDataSource(HWND hwndParent,UINT fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes);
Je teste cette fonction en créant une connection ODBC ms-access. Pas de problème, ca marche super bien et tout et tout
Et là, c'est le drame !!!
Je tente de créer une connection ODBC Informix par le biais du code suivante :
Pour les connaisseurs, c'est du Delphi donc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 DSNbd := // je peux pas donner cette info, c'est le nom d'un client ^^ DSNDriver := 'INFORMIX 3.32 32 BIT'; DSNName := 'CR_'+DSNbd; DSNAttributes := 'DSN=' + DSNName + #0 ; DSNAttributes := DSNAttributes + 'DATABASE=' + DSNbd + #0 ; DSNAttributes := DSNAttributes + 'SERVER='+ DSNServer + #0 ; DSNAttributes := DSNAttributes + 'DESCRIPTION=' + DSNDescription + #0 +#0 ; intRet :=SQLConfigDataSource(vbAPINull, ODBC_ADD_DSN, DSNDriver, DSNAttributes);
- := c'est l'affectation
+ la concanénation
#0 la marque de fin null
Après maintes recherches, il semblerait que le paramètre lpszAttributes change en fonction des bases de données. Il est composé des attributs que l'on peut retrouver dans la base de registre (source : msdn : http://msdn.microsoft.com/library/fr...ata_source.asp).
Ni une, ni deux, je créé un DSN ODBC Informix par l'utilitaire windows "Source de données (ODBC)", je regarde dans le registre les valeurs enregistrées, je les concatène (sauf le password puisqu'il est cripté) ... et ça ne change rien, toujours impossible de créer un DSN.
D'où ma question (vi, c'est long pour en arriver là ^^) : quelqu'un aurait il déjà réussit à créer un DSN ODBC Informix par code ou connaitrait il un moyen de le faire ??? (ou bien encore, si quelqu'un connait les paramètres à fournir à la fonction SQLConfigDataSource, c'est encore mieux )
Merci d'avance
Partager