# Environnements de dveloppement > Autres EDI > Powerbuilder >  [PowerBuilder] Utilisation TimeStamp

## Thig

Bonjour,

Sous PowerBuilder 8.0.4 et Sybase ASE 12.5. J'ai une table ayant une colonne de type timeStamp. Je rcupre cette colonne dans une datawindow et je dois l'utiliser pour modifier les valeurs de chaque ligne de ma table.

Comment manipuler ce type de donnes avec PowerBuilder ?
- depuis le contrle datawindow quelle fonction doit-on utiliser pour rcuprer cette donne ( getItem??? )
- Quel est le type de donne correspondant en PowerScript ?
- Comment passer cette valeur dans une procdure stocke ?

Merci, A+

----------


## Brizzio

1) utiliser la fonction GetItemDatetime()
2) il y a un type Timestamp me semble-t-il
3) a dpend de ce que ta procdure stocke attends comme type d'arguments ...

----------


## Thig

Bonjour,

Le type timestamp ne semble pas exister sous PowerBuilder (uniquement dans le dataWindow). 
L'utilisation de la fonction getItemDateTime du controle dataWindow provoque une erreur, seule la fonction getItemString semble fonctionne, mais il faut alors faire une grosse bidouille :-( au niveau de la procdure stock pour transformer la chane en timestamp...

Y'a pas plus simple ?

A+ Thieg

----------


## patrice.domange

Le type TimeStamp n'est pas support par PB, mais son quivalent est DateTime. Pour pouvoir accder un champ DB de type TimeStamp, Il faut dfinir le format de conversion d'un timestamp en DateTime en utilisant la proprit DBParm de l'objet de transaction utilis (en gnrale SQLCA), qui videmment dpend de la base de donne utilise.

Par exemple, en PowerScript avec JDBC, ODBC, OLE DB :


```
SQLCA.dbParm = "DateTime = ' \''m/d/yy h:mm am/pm\'' '"
```

ou encore Oracle:


```
SQLCA.dbParm="DateTime = ' ''''m/d/yy h:mm am/pm'''' '"
```

Sinon, on peut dfinir ce format dans le dialog ad-hoc Database Profile, dans l'onglet syntax.
 :8-):

----------


## Thig

Bonjour et merci pour ta rponse. 

Dans mon appli, j'utilise le driver natif ASE (SYC Sybase ASE) et il ne semble pas exister d'quivalent  : 



```
SQLCA.dbParm="DateTime = ' ''''m/d/yy h:mm am/pm'''' '"
```

Quelqu'un connatrait-il un quivalent ?

A+ Thig

----------


## tutu10

Bonjour,

Le type "timestamp" de Sybase sert pour les mises  jour de type "optimiste" (non blocage de la ligne pendant la lecture), au moment de mise  jour si la valeur du champ a chang par rapport  celle mmorise en lecture alors on abandonne la mise  jour.

Il est en binaire, on l'exploite sous forme de char(18) !

1- Crez la procdure (systeme de prfrence) suivante:


```

```

2- Si vous basez une DW sur une procdure stocke comportant ce champ, il faut changer le type de la colonne en char(18).

3-  On fournit ce champ dans la procdure stocke de mise  jour comme char(18). Dans la proc de mj, on le reconvertit en timestamp comme suit :


```

```

Bon courage

----------


## Thig

Merci, pour cette rponse, elle resoud mon problme.

A+ Thig

----------

