Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
je reprends du code PB en version 7 sous oracle.
J'ai une datawindow et je voudrais changer les procédures qui lui sont associées aujourd"hui dans le menu stored procedure update.
Seulement voilà, je ne vois pas mes packages oracle donc encore moins mes nouvelles procédures PL/sql.
Je ne sais pas à quoi cela est du ? ( pb d'installation de pb ou droits sur la base oracle etc ....)
je précise de suite , je suis debutant en PB et oracle....
Si vous avez un indice à me donner cela serait bien, merci.
je précise que la datawindow actuelle fonctionne avec les procédures qui se trouvent déja dans un package oracle.
Dernière modification par Lesageelu (15-10-2008 10:58:17)
Hors ligne
As tu crée tes Synonyms sur tes packages et tes procédures sous Oracle?
Et as tu donné les droits d'execution de tes procédures?
Hors ligne
oui synonyme et droit d'execution sont présents.
je donne plus de détails:
En fait , je ne vois aucun package et procédure même ceux deja utilisée et qui fonctionne déjà!!
je voudrais mettre la même procédure qui est definie aujourd'hui....je ne peux même pas !!
Hors ligne
Tu as essayé de renseigner le nom du package et de ta procédure (avec ses arguments) directement dans le stored procedure update?
Normalement, ça marche même si tu ne les vois pas dans le listing.
Hors ligne
oui j'ai essayé mais je ne peux rien saisir.je n'ai pas la possibilité de saisir un le nom du package et la procédure directement...je suis obligé de passer par la liste qui n'affiche pas ce que je veux!!
Hors ligne
La case "system procedures" est bien décochée au niveau de la liste?
Hors ligne
Au fait, tu es en accès natif à Oracle, ou tu passes par ODBC ou OLE-DB ?
Dans l'aide PB, il y a ceci pour les accès base via ODBC ou OLE-DB:
Aide PB a écrit:
DataWindow updates Updates are not allowed for stored procedures in a DataWindow object. Only retrieval is allowed.
Hors ligne
tout d'abord merci
case system procedure cochée ou décochée ne change rien.
je passe par cela "Database Profile Setup - ORACLE 8.0.4 dialog box".ce n'est pas de l'odbc par contre je ne sais pas si c'est "natif" ou ole-db ( à vrai dire ,je ne sais pas ce qu'est ole-db ou natif )....oui je sais...
je suis en train de regarder un peu de ce côté justement ou d'un parametrage powerbuilder ....
Hors ligne
Quand tu regardes la syntaxe de ta connection, tu as la ligne:
SQLCA.DBMS = "O84 Oracle8/8i (8.0.4)"
d'affichée?
Hors ligne
j'ai cela
// Profile CIIGAZ04DEVDNew SQLCA.DBMS = "O84 ORACLE 8.0.4" SQLCA.LogPass = <***********> SQLCA.ServerName = "CIIGAZ04DEVDNew" SQLCA.LogId = "CIIPROD" SQLCA.AutoCommit = False SQLCA.DBParm = "PBCatalogOwner='CIIPROD',PBDBMS=1"
avec ou sans PBDBMS=1 , j'ai la même chose
Hors ligne
J'ai trouvé ça dans l'aide PB:
Aide PB a écrit:
Description
Specifies that the stored procedures and functions encapsulated in an Oracle database package should be appended to the lists of Oracle standalone stored procedures and functions displayed in the DataWindow and Database painters.
When to specify PackageProcs You must specify the PackageProcs parameter before connecting to the database.
Applies to
O84 Oracle 8.x and Oracle8i
O90 Oracle9i
O10 Oracle 10g
Syntax
PackageProcs = value
Parameter Description
value Specifies that package-stored procedures and functions should be appended to the lists of stored procedures and functions. Values are:· 0 (Default) Do not append package-stored procedures and functions.· 1 Append package-stored procedures and functions.
Default
PackageProcs = 0
Usage
A package is an encapsulated collection of related program objects (such as procedures, functions, variables, and cursors) stored together in an Oracle database. Listing the objects contained in a package might impose a performance penalty on your Oracle database connection. When displayed in the DataWindow painter, only those objects that contain a REF CURSOR or SELECT statement parameter are listed. When displayed in the Database painter, all objects are listed. The text source displayed is that of the entire package.
Il semblerait qu'il faut ajouter le paramètre:
"PackageProcs=1"
dans la chaîne SQLCA.DBParm
Hors ligne
ok , je vais essayer.
le souci c'est que je ne sais pas comment modifier le sqlca.dbparm.
j'ai essaye de modifier le fichier pb.ini mais il est ecrasé semble t-il à chaque arrêt/relance de pb.
je suis en train de cherche comment modifier sqlca.dbparm
Hors ligne
Au niveau du paramétrage de ta connection, dans l'onglet "System", coche la case "List Package Subprograms".
Hors ligne
Bonjour,
Tu peux également modifier le dbparm en ajoutant manuellement la syntaxe dans la zone Driver-specific parameters (PackageProcs=1) dans l'onglet connection.
Je pense que cette option était disponible sous PB 7.0, mais ça fait maintenant quelques années que je n'ai pas touché à PB 7.0 (je ne suis pas sur à 100%).
Hors ligne
non cette option n'est pas disponible en pb7.
J'ai l'impression en cherchant de plus en plus que PackageProcs=1 n'est pas pour la version pb7 en fait.Mais je me trompe peut être.
Merci pour votre aide.
j'ai creé rapidement sous toad une procédure qui n'appartiens pas à un package et je la vois bien dans PB7.
C'est vraiment une procédure dans un package qui ne je vois pas.....toutes les procédures dérriere un package....
Dernière modification par Lesageelu (13-10-2008 16:19:29)
Hors ligne
bon alors finalement j'ai pas encore testé à l'execution mais cela change bien ce que je veux.
il faut creer une procédure en dehors de package car là je vois bien.
affecter cette procedure à ma datawindow et tout renseignement les champs avec input/output.
faire un export de la datawindow.
modifier le fichier srd en mettant mon nom de package en plus.
detruire la datawindow et faire l'import du fichier srd que je viens de modifier.
Voilà la bidouille à faire en pb7......si cela rappelle quelque chose à quelqu'un !!
merci aux personnes qui m'ont répondues
Dernière modification par Lesageelu (15-10-2008 10:13:37)
Hors ligne