Après windows pour les nuls, voici PB pour les bons (ou presque).

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 25-01-2007 08:55:42

ConanKanem  
Membre Geek
Date d'inscription: 30-08-2006
Messages: 41
Pépites: 419
Banque: 0
Site web

[RESOLU] Comment créer mon fichier ini

Bonjour,
J'ai fini une application en pb 6.5
Je voudrais savoir comment pourrai-je créer mon fichier .ini pour le déploiment de mon application.
Quelles sont les fonctions de ce fichier dont j'en ai entendu parler?
Après je vais créer un exécutable (ça je peux le faire). Quelle corrélation existe-t-il entre ce fichier(.ini) et l'exécutable.
Merci de me guider en espérant que ma question cadre avec la rubrique base de données.

Dernière modification par ConanKanem (25-01-2007 09:35:15)


Humility is nothing to be pride about. (Randal P.)

Hors ligne

 

#2 25-01-2007 09:08:17

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Comment créer mon fichier ini

Salut,

je connais pas PB6.5 (j'ai commencé à la 7), mais je pense que tu fais allusion au fichier qui contient les informations de connexion à la base de données ?
Dans le wizard de création d'une application, PB crée un objet connectservice à la BDD avec 3 possibilités de récupération des infos de connexion : script, base de registre et fichier .ini
Selon ton choix le fichier INI n'est pas forcément nécessaire.


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 25-01-2007 09:08:24

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Comment créer mon fichier ini

Bonjour,
J'ai pas trop compris ta question.
Tu peux utiliser un fichier .ini mais tu n'est pas obligé. Certains utilisent la base de registres.

Bon tu utilise un fichier ini ou pas ?

Et Quel installateur utilise tu ? Inno Setup ? NSIS ? InstallShield ?

en espérant que ma question cadre avec la rubrique base de données

pas vraiment, on déplacera ta question quand on l'aura comprise

Dernière modification par shahin (25-01-2007 09:31:56)


never let people work on more than one thing at once.

Hors ligne

 

#4 25-01-2007 09:42:48

ConanKanem  
Membre Geek
Date d'inscription: 30-08-2006
Messages: 41
Pépites: 419
Banque: 0
Site web

Re: [RESOLU] Comment créer mon fichier ini

Oui, c'est de cela qu'il s'agit, le fichier qui utilise les informations de connexion à la base. J'utilise un fichier .ini
De quel installeur parlez-vous? Celui de l'installation de l'application conçue ou de pb6.5?
Excusez mes maladresses, svp.
Merci.

Dernière modification par ConanKanem (25-01-2007 09:43:22)


Humility is nothing to be pride about. (Randal P.)

Hors ligne

 

#5 25-01-2007 09:49:17

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Comment créer mon fichier ini

Si c'est une appli qui n'est pas déployée sur plusieurs sites ou plutôt sur plusieurs bases de données différentes, je te conseillerais de mettre les infos de connexion en dur dans le script = meilleure confidentialité.


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#6 25-01-2007 09:52:27

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Comment créer mon fichier ini

le fichier Ini
contient en general

pour ta connexion

Code: pb

// Profile Gescom Test
SQLCA.DBMS = "SYC Adaptive Server Enterprise"
SQLCA.Database = "miam a donf"
SQLCA.LogPass = <******>
SQLCA.ServerName = "BAH"
SQLCA.LogId = "toto"
SQLCA.AutoCommit = False
SQLCA.DBParm = "Release='11.5'"

et d'autres parametres de configurations en plus...
Genre, le nom de la derniere fenetre ouverte,
la palette de couleur pour ton appli,
la derniere date de connexion , ect...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#7 25-01-2007 09:58:22

ConanKanem  
Membre Geek
Date d'inscription: 30-08-2006
Messages: 41
Pépites: 419
Banque: 0
Site web

Re: [RESOLU] Comment créer mon fichier ini

L'application sera installée sur 6 postes: chacun avec ses interfaces (fonctionnalités) différentes. Mais elle attaquera une seule base. Je voudrais utiliser le fichier ini. J'utilise SQL Anywhere 5, si le detail est necésaire.
Merci à tous. Mais Pick, pour l'avoir, je procède comment?

Dernière modification par ConanKanem (25-01-2007 10:10:35)


Humility is nothing to be pride about. (Randal P.)

Hors ligne

 

#8 25-01-2007 10:08:03

cdtit  
Membre completement Geek
Lieu: Saint chéron
Date d'inscription: 19-12-2006
Messages: 124
Pépites: 678
Banque: 0

Re: [RESOLU] Comment créer mon fichier ini

En fait le fichier pb.ini auquel tu fais certainement référence sert entre autre
à initialiser l'objet SQLCA (connexion BDD).
Il peut être utile lors du premier deployement de ton applis, mais il est plus rationnel
d'ecrire dans la base de registre les infos contenues dans ton fichier .ini lors de la première
lecture. Par la suite il peut te permettre de modifier la valeur de ces clés.
La procédure est très bien expliquée dans le "OnLine Book" (Maj F1 sur un mot clé et OnLIne Books)

Désolé Pick, trop long à poster, en doublon avec ta réponse.

Sinon pour trouver les info de connexion, une astuce est de copier les paramètres
ODBC du panneau de config dans le fichier ini.

Ex:

Code: ini

[Database]
DBMS=ODBC
Database= XXX
UserId= XXX
DatabasePassword=XXX
LogPassword=XXX
ServerName= DB2     
LogId=XXX
Lock=
DbParm=ConnectString='DSN= XXX;UID=XXX;PWD=XXX;DBALIAS=XXX;',CursorLib='ODBC_Cur_Lib',CursorLock='ReadOnly',CursorScroll='Dynamic',DelimitIdentifier='Yes',IdentifierQuoteChar='"',FormatArgsAsExp='No',DateTime=' \''yyyy-mm-dd-hh.mm.ss\'' '
Prompt=0
;Infos Client
PasDeVap=False
Debug=No
CurrPath=C:\
Type_client=XXX
TropdArticles=30000
ServeurWeb=http://LocalHost
Prefixe=XXX
InstallPath=C:\Program Files\XXX
CentreWindow=O

Dernière modification par cdtit (25-01-2007 10:15:54)


Les cons ça ose tout. C'est même à ça qu'on les reconnaît.

Hors ligne

 

#9 25-01-2007 10:26:58

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Comment créer mon fichier ini

il faut juste que tu utilises ces commandes...
SetProfileString
et ProfileString

Regardes le detail dans l'aide en ligne... 


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#10 25-01-2007 12:27:14

ConanKanem  
Membre Geek
Date d'inscription: 30-08-2006
Messages: 41
Pépites: 419
Banque: 0
Site web

Re: [RESOLU] Comment créer mon fichier ini

Merci. Je voudrais que tu me passes l'url de l'aide en ligne. Je développe sur une autre machine qui n'est pas connectée au net. Et les liens que j'ai vu sur l'aide de celle-ci ne m'ont pas permis de trouver ce que je cherche sur la machine connectée.


Humility is nothing to be pride about. (Randal P.)

Hors ligne

 

#11 25-01-2007 12:36:08

cdtit  
Membre completement Geek
Lieu: Saint chéron
Date d'inscription: 19-12-2006
Messages: 124
Pépites: 678
Banque: 0

Re: [RESOLU] Comment créer mon fichier ini

Je pense que Pick voulait parler des l'aide PB, soit F1 et OnLigne Books
dans ton environnement  de dev.

Pour un exemple de fichier ini et de son utilisation regardes l'exemple de la fonction
SetTransObject() =>

"This example has two parts. The first script, for the application's Open event, reads database parameters from an initialization file called MYAPP.INI and stores the values in the default transaction object (SQLCA). The Database section of MYAPP.INI has the same keywords as PowerBuilder's own PB.INI file. The parameters shown are for a SQL Server or Oracle database. The second script, for the window's Open event, establishes a connection and retrieves data from the database.

The application's Open event script populates SQLCA:

Code: pb

SQLCA.DBMS = ProfileString("myapp.ini", &

        "database", "DBMS", " ")

SQLCA.Database = ProfileString("myapp.ini", &

        "database", "Database", " ")

SQLCA.LogId = ProfileString("myapp.ini", &

        "database", "LogId", " ")

SQLCA.LogPass = ProfileString("myapp.ini", &

        "database", "LogPassword", " ")

SQLCA.ServerName = ProfileString("myapp.ini", &

        "database", "ServerName", " ")

SQLCA.UserId = ProfileString("myapp.ini", &

        "database", "UserId", " ")

SQLCA.DBPass = ProfileString("myapp.ini", &

        "database", "DatabasePassword", " ")

SQLCA.lock = ProfileString("myapp.ini", &

        "database", "lock", " ")


The Open event script for the window that contains the DataWindow control connects to the database, assigns the transaction object to the DataWindow, and retrieves data:

Code: pb

long RowsRetrieved

string LastName

// Connect to the database.

CONNECT USING SQLCA;

// Test whether the connect succeeded.

IF SQLCA.SQLCode <> 0 THEN

        MessageBox("Connect Failed", &

            "Cannot connect to database " &

            + SQLCA.SQLErrText)

        RETURN

END IF

Dernière modification par cdtit (25-01-2007 14:09:33)


Les cons ça ose tout. C'est même à ça qu'on les reconnaît.

Hors ligne

 

#12 25-01-2007 14:31:24

Doctor Z  
Moderador
Award: PanchoeNacho
Lieu: Vale Figueira (Lisbonne)
Date d'inscription: 30-05-2006
Messages: 756
Pépites: 1,003,082
Banque: 877,135,234,297,804

Re: [RESOLU] Comment créer mon fichier ini

Salut,

Au fait pour obtenir certains paramètres que tu utiliseras dans ton fichier ini, tu peux aller
au Database Profile Setup et dans l'onglet Preview copié la Database Connection String
qui contient la connectstring a ta base de donnée.

Bon courage.


http://www.userbars.com/i/543606.gif
Olivença, l'oubliée
Si tu es alentejane, que Dieu te bénisses, si tu ne l'es pas, que Dieu te pardonnes.

Hors ligne

 

#13 29-01-2007 11:52:51

ConanKanem  
Membre Geek
Date d'inscription: 30-08-2006
Messages: 41
Pépites: 419
Banque: 0
Site web

Re: [RESOLU] Comment créer mon fichier ini

Voici comment j'ai procedé:
Les informations de la connecting string étant :

Code: pb

// Profile impots
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=impots;UID=dba;PWD=sql'"

J'ai créé ensuite une wf rattachée à ma window de connexion  dont le code est :

Code: pb

 string ls_userid, ls_password,ls_database,ls_dbms
ls_userid=trim(userid)
ls_password=trim(password)
sqlca.DBMS =     ProfileString &
             ("impots.ini","Database","DBMS"," ")
ls_database=ProfileString &
             ("impots.ini","Database","Database"," ")
             
sqlca.UserId =    ls_userid
sqlca.DBPass =   ls_password
sqlca.LogID =    ls_userid
sqlca.LogPass =   ls_password
sqlca.ServerName = ProfileString &
             ("impots.ini","Database","ServerName"," ")
       
sqlca.dbparm=" ConnectString='DSN=impots; "+ "UID=" + ls_userid +&
  ";PWD=" + ls_password + "'"
  connect using sqlca;
return sqlca.sqlcode

Sur le click event du bouton ok de la window de connexion:

Code: pb

 string L_userid, L_pass, L_base, L_dbms
integer li_resultat
L_userid=Sle_userid.Text
L_pass=Sle_password.Text

If ((L_userid='') and (L_pass='')) THEN
  messagebox("Connexion", 'Veuillez entrer votre compte et votre mot de passe')
else

sqlca.DBMS =     ProfileString &
           ("impots.ini","Database","DBMS"," ") 
sqlca.Database =   ProfileString &
             ("impots.ini","Database","Database"," ")
sqlca.UserId =  L_userid
sqlca.DBPass = L_pass
sqlca.LogID =   L_userid
sqlca.LogPass =   L_pass
sqlca.ServerName = ProfileString &
           ("impots.ini","Database","ServerName"," ")
sqlca.dbParm =     ProfileString &
           ("impots.ini","Database","DBParm"," ") 
SetPointer(hourglass!)
st_message.text = "CONNECTION..."
li_resultat = wf_connect(sle_userid.text, sle_password.text) 
if li_resultat <> -1 THEN

  close(Parent)
  open(w_demarre)
  
else
  close(Parent)
end if

end if

Voici mon fichier ini:

Code: ini

[database]
DBMS=ODBC
Database=impots
UserId=dba
DatabasePassword=sql
LogPassword=
ServerName=monserver
LogId=
Lock=
DbParm=ConnectString='DSN=impots;UID=dba;PWD=;'
Prompt=0
AutoCommit=0

Est-ce que mon fichier ini est effectif, bien que ça marche?

Merci en m'excusant de la longueur des codes.

Dernière modification par ConanKanem (29-01-2007 13:48:17)


Humility is nothing to be pride about. (Randal P.)

Hors ligne

 

#14 29-01-2007 13:53:52

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Comment créer mon fichier ini

ca m'a l'air sympatique tout ca 


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22