Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

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 27-02-2012 08:31:43

infopower  
Membre Power Geek
Lieu: paris
Date d'inscription: 13-04-2011
Messages: 213
Pépites: 1,060
Banque: 0

[RESOLU] Tracer les transactions

Bonjour,

J’ai une petite question : J’ai une application dans la quelle je manipule plusieurs datastores et datawindows, ce que j’ai voulu savoir est ce que je peux tracer tout les requêtes (càd explorer) envoyer à la base suite à un commit ou une update des datawindows 

Cordialement,

Dernière modification par infopower (23-03-2012 10:02:47)


la vie est une course et il faut avoir un bon depart

Hors ligne

 

#2 27-02-2012 08:56:01

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Tracer les transactions

Dans le cas des connexions ODBC, on peut tracer toutes les requêtes (voir dans "Database profile setup", onglet "connection", case à cocher "Generate trace").

Pour les autres connexions, je ne sais pas (mais ça doit certainement exister).


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#3 27-02-2012 10:32:00

infopower  
Membre Power Geek
Lieu: paris
Date d'inscription: 13-04-2011
Messages: 213
Pépites: 1,060
Banque: 0

Re: [RESOLU] Tracer les transactions

Bonjour
Un grand merci pour la réponse, mais comment le système va générer le traçage dans un fichier ? Si oui c’est comment que je puisse paramétrer le chemin et où il le génère par défaut.


la vie est une course et il faut avoir un bon depart

Hors ligne

 

#4 27-02-2012 11:02:20

Geo  
Membre completement Geek
Lieu: Binche
Date d'inscription: 15-12-2008
Messages: 119
Pépites: 378
Banque: 0

Re: [RESOLU] Tracer les transactions

Bonjour,

tu peux aussi mettre TRACE devant le paramètre DBMS et laisser PB faire...

DBMS =TRACE O10 Oracle10g (10.1.0) par exemple


Rien ne sert de courir, il faut partir à point .

Hors ligne

 

#5 27-02-2012 11:03:30

infopower  
Membre Power Geek
Lieu: paris
Date d'inscription: 13-04-2011
Messages: 213
Pépites: 1,060
Banque: 0

Re: [RESOLU] Tracer les transactions

Je faisais le traçage le système à généré un fichier PBP (perl builder) avez vous une idée comment je peux le lire je cherchais mais pas je ai pas trouvé une solution


la vie est une course et il faut avoir un bon depart

Hors ligne

 

#6 27-02-2012 12:10:51

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

Re: [RESOLU] Tracer les transactions


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

Hors ligne

 

#7 27-02-2012 16:30:44

infopower  
Membre Power Geek
Lieu: paris
Date d'inscription: 13-04-2011
Messages: 213
Pépites: 1,060
Banque: 0

Re: [RESOLU] Tracer les transactions

J’ai voulu traçer le requêtes SGL (genre select,insert,update….)

J’ai utilisé le script suivant

Code:

TraceOpen("d:\trace.log",TimerNone!)
//TraceEnableActivity(ActRoutine!)
TraceEnableActivity(ActESQL!)
Traceclose()

Après le traçage, j’avais un fichier incompréhensible (illisible)
Avez-vous un exemple des script de traçage


la vie est une course et il faut avoir un bon depart

Hors ligne

 

#8 28-02-2012 07:51:09

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: [RESOLU] Tracer les transactions

Comme dans l'article qui est rappelé

erasorz a écrit:

http://pbadonf.fr/forum/viewtopic.php?id=502

Ton fichier pbp doit s'ouvrir avec File > New > onglet Tool > Profiling Trace View.
Il faut sélectionner le target (*.pbt) puis le fameux pbp.
Par contre, tu n'y trouvera pas le détail des SQL, mais le type des requêtes (DB Commit, DB Select, DB Prepare, DB Describe, DB Open ...).

De plus ce fichier permet de "profiler" le code, non pas logger les sql exécutes.

Tu peux éventuellement utiliser sur l'objet transaction l'event sqlpreview(sqlfunc, sqlsyntax ); pour cela, il te faut PB>=115 il me semble.
Et bien-sur avoir définit un objet hérité de transaction sur le quel tu pourras tracer. Dans le cas le plus courrant de SQLCA, il faut le paramétrer dans l'objet application > onglet général des propriétés > bouton Additional Properties > Onglet Variable Types > champ SQLCA. Là on met par exemple n_cst_tr un userobject hérité de transaction.


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#9 28-02-2012 07:57:21

infopower  
Membre Power Geek
Lieu: paris
Date d'inscription: 13-04-2011
Messages: 213
Pépites: 1,060
Banque: 0

Re: [RESOLU] Tracer les transactions

Bonjour
Merci pour ta réponse ce qui est demandé, c’est de trouver un script qui permet de suivre toutes les transactions vers la base de données. Ensuite un autre script doit analyser le fichier généré et afficher les résultats dans un rapport. Mais si j’ai bien compris on peut pas lire le fichier pbp en mode exe car le système doit générer le fichier et analyser le fichier après chaque traitement et affiche le rapport tout ça va se faire au niveau code


la vie est une course et il faut avoir un bon depart

Hors ligne

 

#10 28-02-2012 08:17:06

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

Re: [RESOLU] Tracer les transactions

Une autre piste est de regarder au niveau du SGBDR. Par exemple sous Oracle :

Code: sql

SELECT * FROM v$sqlarea

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

Hors ligne

 

#11 28-02-2012 08:49:23

Geo  
Membre completement Geek
Lieu: Binche
Date d'inscription: 15-12-2008
Messages: 119
Pépites: 378
Banque: 0

Re: [RESOLU] Tracer les transactions

As-tu essayé le TRACE ?
On retrouve pas mal d'infos dans le fichier LOG généré par PB, et entre autre les requêtes. C'est tracé dans un fichier texte, directement lisible avec notepad...

Ex:

/*---------------------------------------------------*/
/*                 27/02/2012  16:57                 */
/*---------------------------------------------------*/
(4670c10): LOGIN: (134.436 MS / 134.436 MS)
(4670c10): CONNECT TO TRACE O10 ORACLE10G (10.1.0):
(4670c10): USERID=****
(4670c10): DATABASE=****
(4670c10): LOGID=****
(4670c10): SERVER=****
(4670c10): DBPARM=Disablebind=1, DelimitIdentifier = 'yes', DisableUnicode=1 (0.000 MS / 134.436 MS)
(4670c10): PREPARE: (0.000 MS / 134.436 MS)
(4670c10): BEGIN TRANSACTION: (0.000 MS / 134.436 MS)
(4670c10): PREPARE:
(4670c10): SELECT upper(ALL_SYNONYMS.SYNONYM_NAME), upper(column_name) FROM ALL_SYNONYMS, ALL_CONSTRAINTS, ALL_CONS_COLUMNS where constraint_type = 'P' and ALL_CONSTRAINTS.table_name = ALL_SYNONYMS.TABLE_NAME and ALL_CONSTRAINTS.constraint_name = ALL_CONS_COLUMNS.CONSTRAINT_NAME (0.036 MS / 134.472 MS)
(4670c10): DESCRIBE: (1.260 MS / 135.732 MS)
(4670c10): name=upper(all_synonyms.synonym_name),len=31,type=VCHAR,pbt=2,dbt=1,ct=1,prec=0,scale=0
(4670c10): name=upper(column_name),len=4001,type=VCHAR,pbt=2,dbt=1,ct=1,prec=0,scale=0
(4670c10): GET EXTENDED ATTRIBUTES: TABLE=ALL_SYNONYMS OWNER=****
(4670c10): SELECT OWNER, TABLE_NAME, TABLE_TYPE FROM SYS.ALL_CATALOG WHERE TABLE_TYPE IN ('TABLE','VIEW')AND OWNER = '****' AND TABLE_NAME = 'ALL_SYNONYMS' (0.000 MS / 135.732 MS)
(4670c10): SELECT OWNER, SYNONYM_NAME FROM SYS.ALL_SYNONYMS WHERE OWNER = '****' AND SYNONYM_NAME = 'ALL_SYNONYMS' (0.000 MS / 135.732 MS)
(4670c10): SELECT OWNER, SYNONYM_NAME FROM SYS.ALL_SYNONYMS WHERE OWNER = 'PUBLIC' AND SYNONYM_NAME = 'ALL_SYNONYMS' (0.000 MS / 135.732 MS)
(4670c10): SELECT PBD_FHGT,PBD_FWGT,PBD_FITL,PBD_FUNL,PBD_FCHR,PBD_FPTC,PBD_FFCE,PBH_FHGT,PBH_FWGT,PBH_FITL,PBH_FUNL,PBH_FCHR,PBH_FPTC,PBH_FFCE,PBL_FHGT,PBL_FWGT,PBL_FITL,PBL_FUNL,PBL_FCHR,PBL_FPTC,PBL_FFCE,PBT_CMNT  FROM SYSTEM.PBCATTBL   WHERE PBT_OWNR = 'PUBLIC' AND PBT_TNAM = 'ALL_SYNONYMS' (0.000 MS / 135.732 MS) (78.641 MS / 214.373 MS)
(4670c10): GET EXTENDED ATTRIBUTES: TABLE=ALL_CONSTRAINTS OWNER=****
(4670c10): SELECT OWNER, TABLE_NAME, TABLE_TYPE FROM SYS.ALL_CATALOG WHERE TABLE_TYPE IN ('TABLE','VIEW')AND OWNER = '****' AND TABLE_NAME = 'ALL_CONSTRAINTS' (0.000 MS / 214.373 MS)
(4670c10): SELECT OWNER, SYNONYM_NAME FROM SYS.ALL_SYNONYMS WHERE OWNER = '****' AND SYNONYM_NAME = 'ALL_CONSTRAINTS' (0.000 MS / 214.373 MS)
(4670c10): SELECT OWNER, SYNONYM_NAME FROM SYS.ALL_SYNONYMS WHERE OWNER = 'PUBLIC' AND SYNONYM_NAME = 'ALL_CONSTRAINTS' (0.000 MS / 214.373 MS)
(4670c10): SELECT PBD_FHGT,PBD_FWGT,PBD_FITL,PBD_FUNL,PBD_FCHR,PBD_FPTC,PBD_FFCE,PBH_FHGT,PBH_FWGT,PBH_FITL,PBH_FUNL,PBH_FCHR,PBH_FPTC,PBH_FFCE,PBL_FHGT,PBL_FWGT,PBL_FITL,PBL_FUNL,PBL_FCHR,PBL_FPTC,PBL_FFCE,PBT_CMNT  FROM SYSTEM.PBCATTBL   WHERE PBT_OWNR = 'PUBLIC' AND PBT_TNAM = 'ALL_CONSTRAINTS' (0.000 MS / 214.373 MS) (63.298 MS / 277.671 MS)
(4670c10): GET EXTENDED ATTRIBUTES: TABLE=ALL_CONS_COLUMNS OWNER=****
(4670c10): SELECT OWNER, TABLE_NAME, TABLE_TYPE FROM SYS.ALL_CATALOG WHERE TABLE_TYPE IN ('TABLE','VIEW')AND OWNER = '****' AND TABLE_NAME = 'ALL_CONS_COLUMNS' (0.000 MS / 277.671 MS)
(4670c10): SELECT OWNER, SYNONYM_NAME FROM SYS.ALL_SYNONYMS WHERE OWNER = '****' AND SYNONYM_NAME = 'ALL_CONS_COLUMNS' (0.000 MS / 277.671 MS)
(4670c10): SELECT OWNER, SYNONYM_NAME FROM SYS.ALL_SYNONYMS WHERE OWNER = 'PUBLIC' AND SYNONYM_NAME = 'ALL_CONS_COLUMNS' (0.000 MS / 277.671 MS)
(4670c10): SELECT PBD_FHGT,PBD_FWGT,PBD_FITL,PBD_FUNL,PBD_FCHR,PBD_FPTC,PBD_FFCE,PBH_FHGT,PBH_FWGT,PBH_FITL,PBH_FUNL,PBH_FCHR,PBH_FPTC,PBH_FFCE,PBL_FHGT,PBL_FWGT,PBL_FITL,PBL_FUNL,PBL_FCHR,PBL_FPTC,PBL_FFCE,PBT_CMNT  FROM SYSTEM.PBCATTBL   WHERE PBT_OWNR = 'PUBLIC' AND PBT_TNAM = 'ALL_CONS_COLUMNS' (0.000 MS / 277.671 MS) (63.671 MS / 341.342 MS)
(4670c10): SELECT PBV_NAME,PBV_VALD,PBV_TYPE,PBV_CNTR,PBV_MSG FROM SYSTEM.PBCATVLD (0.000 MS / 341.342 MS)
(4670c10): SELECT PBF_NAME,PBF_FRMT,PBF_TYPE,PBF_CNTR FROM SYSTEM.PBCATFMT (0.000 MS / 341.342 MS)
(4670c10): SELECT PBE_NAME,PBE_EDIT,PBE_TYPE,PBE_CNTR,PBE_WORK,PBE_SEQN,PBE_FLAG FROM SYSTEM.PBCATEDT ORDER BY PBE_NAME,PBE_SEQN (0.000 MS / 341.342 MS)
(4670c10): SELECT PBC_CNAM,PBC_TNAM,PBC_OWNR,PBC_LABL,PBC_LPOS,PBC_HDR,PBC_HPOS,PBC_JTFY,PBC_MASK,PBC_CASE,PBC_HGHT,PBC_WDTH,PBC_PTRN,PBC_BMAP,PBC_INIT,PBC_EDIT,PBC_CMNT FROM SYSTEM.PBCATCOL WHERE  (PBC_TNAM  = 'ALL_SYNONYMS' AND PBC_OWNR = '****') OR  (PBC_TNAM  = 'ALL_CONSTRAINTS' AND PBC_OWNR = '****') OR  (PBC_TNAM  = 'ALL_CONS_COLUMNS' AND PBC_OWNR = '****') (0.000 MS / 341.342 MS)
(1225c10): PREPARE:
(1225c10): SELECT upper(ALL_SYNONYMS.SYNONYM_NAME), upper(column_name) FROM ALL_SYNONYMS, ALL_CONSTRAINTS, ALL_CONS_COLUMNS where constraint_type = 'P' and ALL_CONSTRAINTS.table_name = ALL_SYNONYMS.TABLE_NAME and ALL_CONSTRAINTS.constraint_name = ALL_CONS_COLUMNS.CONSTRAINT_NAME (0.055 MS / 130.475 MS)
(1225c10): BIND SELECT OUTPUT BUFFER (DataWindow): (0.138 MS / 130.613 MS)
(1225c10): ,len=31,type=CHAR,pbt=1,dbt=0,ct=0,prec=0,scale=0
(1225c10): ,len=4001,type=CHAR,pbt=1,dbt=0,ct=0,prec=0,scale=0
(1225c10): EXECUTE: (693.668 MS / 824.281 MS)
(1225c10): FETCH NEXT: (436.787 MS / 1261.068 MS)
(1225c10):     COLUMN=STATS$BG_EVENT_SUMMARY    COLUM
...


Rien ne sert de courir, il faut partir à point .

Hors ligne

 

#12 28-02-2012 09:32:09

infopower  
Membre Power Geek
Lieu: paris
Date d'inscription: 13-04-2011
Messages: 213
Pépites: 1,060
Banque: 0

Re: [RESOLU] Tracer les transactions

Bonjour
Merci pour les réponses
Je vais essayer d’effectuer le traçage en utilisant  sqlpreview  (avez-vous des exemples des script avec la quelle je peux commencer)
Cordialement


la vie est une course et il faut avoir un bon depart

Hors ligne

 

#13 28-02-2012 10:01:02

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: [RESOLU] Tracer les transactions

Code: pb

string ls_sqlfunction
choose case sqlfunc
  case sqldbdelete! ; ls_sqlfunction = "sqldbdelete!"
  case sqldbinsert! ; ls_sqlfunction = "sqldbinsert!"
  case sqldbothers! ; ls_sqlfunction = "sqldbothers!"
  case sqldbprocedure! ; ls_sqlfunction = "sqldbprocedure!"
  case sqldbrpc! ; ls_sqlfunction = "sqldbrpc!"
  case sqldbselect! ; ls_sqlfunction = "sqldbselect!"
  case sqldbupdate! ; ls_sqlfunction = "sqldbupdate!"
  case else ; ls_sqlfunction = "Unknow !!!!"    
end choose
OutputDebugString( "SqlPreview: "+ls_sqlfunction + " => " + sqlsyntax)
//external function
// SUBROUTINE OutputDebugString (String lpszOutputString)  LIBRARY "kernel32.dll" ALIAS FOR "OutputDebugStringW;Unicode";


Ensuite, il suffit d'ouvrir DebugView par exemple


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#14 28-02-2012 10:30:25

infopower  
Membre Power Geek
Lieu: paris
Date d'inscription: 13-04-2011
Messages: 213
Pépites: 1,060
Banque: 0

Re: [RESOLU] Tracer les transactions

merci
J'ai un user objet trasaction uo_tr ,c'est dans ce dernier que doive mettre ce code pour pouvoir traçer tout les transaction


la vie est une course et il faut avoir un bon depart

Hors ligne

 

#15 28-02-2012 10:50:34

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: [RESOLU] Tracer les transactions

juste pour vérifier mais t'es en quelle version de PB sur ce projet ?


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#16 28-02-2012 13:03:40

infopower  
Membre Power Geek
Lieu: paris
Date d'inscription: 13-04-2011
Messages: 213
Pépites: 1,060
Banque: 0

Re: [RESOLU] Tracer les transactions

PB11.5


la vie est une course et il faut avoir un bon depart

Hors ligne

 

#17 28-02-2012 13:38:10

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: [RESOLU] Tracer les transactions

donc tu peux y arriver avec slqpreview, j'avoue n'avoir jamais tenté le truc du DBMS = "trace ...", à voir celui qui sera le plus pratique dans ton cas.


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#18 23-03-2012 10:02:26

infopower  
Membre Power Geek
Lieu: paris
Date d'inscription: 13-04-2011
Messages: 213
Pépites: 1,060
Banque: 0

Re: [RESOLU] Tracer les transactions

Merci pour vos réponses


la vie est une course et il faut avoir un bon depart

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22