Powerbuilder pour les completement Geeks !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 23-04-2009 10:09:06

BRWA  
Membre Power Geek
Lieu: Beuzet (Belgique)
Date d'inscription: 18-12-2008
Messages: 151
Pépites: 24,612
Banque: 0

[RESOLU] Winform - Base de registre

Bonjour,

Quelqu'un saurait-il comment, via une application windowform lors de son installation, installer les dll et driver odbc et sql anywhere dans la base de registre à la bonne place ?

Merci

Dernière modification par BRWA (24-04-2009 13:21:06)


Wagener Bruno

Hors ligne

 

#2 23-04-2009 12:16:08

BRWA  
Membre Power Geek
Lieu: Beuzet (Belgique)
Date d'inscription: 18-12-2008
Messages: 151
Pépites: 24,612
Banque: 0

Re: [RESOLU] Winform - Base de registre

Question posée autrement :

J'ai une application publiée sur le web. Cette application dépend d'une base de données SQL Anywhere 10.0. Que dois-je faire pour que mon(mes) client(s) puissent disposer de cette application et de sa base de données si SQL Anywhere n'est pas installé sur leur machine ?


Wagener Bruno

Hors ligne

 

#3 23-04-2009 13:17:04

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: [RESOLU] Winform - Base de registre

Bonjour,

Je travaille en PB 11.2, mais je n'ai pas encore mis à jour la base de données (Contrat SYBASE OEM oblige). Je travaille encore en ASA 8.0. Pour une installation monoposte je déploie :

dbcon8.dll
dbctrs8.dll
dbctrs8.ini
dbeng8.exe
dblgen8.dll
dblgfr8.dll
dbodbc8.dll
dbserv8.dll

Pour la version 10, il suffit de prendre les fichiers équivalents avec le 8 remplacé par 10.

Tu trouveras ci-dessous un extrait du code du setup réalisé par NSIS concernant les inscriptions dans la base de registre (je pense qu'il est suffisamment explicite même si tu ne connais pas NSIS) :

Code:

WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\dbeng8.exe" "" "$INSTDIR\Commun\dbeng8.exe"  
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\dbeng8.exe" "PATH" "$INSTDIR\Commun"  

#Registry - ODBC Drivers
WriteRegStr HKLM "SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers" "Adaptive Server Anywhere 8.0" "Installed"
WriteRegStr HKLM "SOFTWARE\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0" "Driver" "$INSTDIR\Commun\dbodbc8.dll"
WriteRegStr HKLM "SOFTWARE\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0" "Setup" "$INSTDIR\Commun\dbodbc8.dll"

Il te restera juste la configuration d'un lien ODBC pour la connection à la base de données

Hors ligne

 

#4 23-04-2009 13:31:11

BRWA  
Membre Power Geek
Lieu: Beuzet (Belgique)
Date d'inscription: 18-12-2008
Messages: 151
Pépites: 24,612
Banque: 0

Re: [RESOLU] Winform - Base de registre

N'y a-t-il pas moyen de l'ajouter en package dans "Sybase\PowerBuilder 11.0\DotNET\pbiu\BootStrapper\Packages" ?

L'aide fournie par sybase déclare qu'il y a moyen de la faire pour qu'ils apparaissent dans :

http://img258.imageshack.us/img258/3932/prerequisites.th.png


Wagener Bruno

Hors ligne

 

#5 23-04-2009 14:39:21

BRWA  
Membre Power Geek
Lieu: Beuzet (Belgique)
Date d'inscription: 18-12-2008
Messages: 151
Pépites: 24,612
Banque: 0

Re: [RESOLU] Winform - Base de registre

Croyez-vous que ceci fonctionnerait :

Code: pb

INTEGER li_ret, li_i
string ls_subkeylist[]
boolean lb_found

li_ret = RegistryKeys("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\SQL Anywhere 10", ls_subkeylist)
IF li_ret = 1 AND UpperBound(ls_subkeylist) = 0 THEN
  li_ret = RUN("Registre\SQL Anywhere.reg")
  IF li_ret = 1 THEN
    li_ret = RUN("Registre\Comport.reg") // l'étiquette ODBC de la base de données qu'utilise l'application
  END IF
ELSE
  li_ret = RUN("Registre\Comport.reg")
END IF
              
RETURN li_ret


RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers",&
 "SQL Aywhere 10", RegExpandString!, "Installed")

Wagener Bruno

Hors ligne

 

#6 23-04-2009 16:11:09

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: [RESOLU] Winform - Base de registre

Je laisse les spécialistes winform te répondre plus précisément. Je sais qu'il est théoriquement possible d'intégrer des composants externes à un programme winform lors du déploiement.

En important un fichier reg par une commande externe, il ne faut pas oublier que tu n'as aucun contrôle sur la réalité de l'inscription réelle des clés dans la base de registre. Je préfère utiliser les fonctions natives de Powerbuilder. Pour ma part, j'ai en fait développé une fenêtre permettant de configurer la connexion ODBC (Monoposte ou serveur).

La configuration SQL Anywhere est réalisé par le programme d'installation pour des raisons entre autre de compatibilité avec VISTA (UAC, exige une élévation des droits pour écrire dans la HKLM, en mode standard une application n'a pas le droit d'écrire dans la HKLM).

Sinon, il n'y a pas de raisons que ça ne fonctionne pas (Attention éventuellement avec Vista).

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22