IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

4D for OCI et les colonnes de type date

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Produit : 4D OCI 2004 · Plateforme : Mac & Win

Si vous avez des difficultés à retourner les valeurs des colonnes Oracle de type date avec 4D for OCI, utilisez SQLT_ODT au lieu de SQLT_DATE :

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
` ---------- exemple ----------

TABLEAU DATE(results;3)
TABLEAU ENTIER LONG($tNull;1)
TABLEAU ENTIER LONG($tTailles;1)
TABLEAU ENTIER LONG($tCodes;1)

$tTailles{1}:=255

$UserName:="xxx"
$Password:="xxx"
$OraServ:="xxx"

$sql:="SELECT date_fact FROM factures"

$Status:=OCIEnvCreate ($DescrEnv;OCI_DEFAULT)
$Status:=OCIHandleAlloc ($DescrEnv;$DescrErr;OCI_HTYPE_ERROR)
$Status:=OCIHandleAlloc ($DescrEnv;$DescrService;OCI_HTYPE_SVCCTX)
$Status:=OCIHandleAlloc ($DescrEnv;$DescrAuth;OCI_HTYPE_SESSION)
$Status:=OCIHandleAlloc ($DescrEnv;$DescrServer;OCI_HTYPE_SERVER)

$Status:=OCIServerAttach ($DescrServer;$DescrErr;$OraServ)
$Status:=OCIAttrSetVal ($DescrService;$DescrServer;OCI_ATTR_SERVER;$DescrErr)
$Status:=OCIAttrSetText ($DescrAuth;$UserName;OCI_ATTR_USERNAME;$DescrErr)
$Status:=OCIAttrSetText ($DescrAuth;$Password;OCI_ATTR_PASSWORD;$DescrErr)
$Status:=OCISessionBegin ($DescrService;$DescrErr;$DescrAuth;OCI_CRED_RDBMS;OCI_DEFAULT)
$Status:=OCIAttrSetVal ($DescrService;$DescrAuth;OCI_ATTR_SESSION;$DescrErr)

$Status:=OCIHandleAlloc ($DescrEnv;$DescrStmt;OCI_HTYPE_STMT)
$Status:=OCIStmtPrepare ($DescrStmt;$DescrErr;$sql;Length($sql))

`$sqlt:=SQLT_DATE
$sqlt:=SQLT_ODT
$Status:=OCIDefineByPos ($DescrStmt;$DescrDefine;$DescrErr;1;->results;$sqlt;
    ->$tNull;->$tTailles;->$tCodes;OCI_DEFAULT)

$Status:=OCIStmtExecute ($DescrService;$DescrStmt;$DescrErr;0;0;0;0;OCI_DEFAULT)

$Status:=OCIStmtFetch ($DescrStmt;$DescrErr;10)

$text:=Chaine(results{1})+Caractere(13)
Boucle ($i;2;Taille tableau(results))
    $text:=$text+Chaine(results{$i})+Caractere(13)
Fin de boucle

ALERTE("TABLEAU DATE :"+Caractere(13)+$text)

$Status:=OCISessionEnd ($DescrService;$DescrErr;$DescrAuth)
$Status:=OCIServerDetach ($DescrServer;$DescrErr)
$Status:=OCIHandleFree ($DescrService)
$Status:=OCIHandleFree ($DescrServer)
$Status:=OCIHandleFree ($DescrErr)
$Status:=OCIHandleFree ($DescrEnv)

TABLEAU DATE(results;0)

` ---------- fin exemple ----------

En complément, petit script SQL pour créer la table factures :

 
Sélectionnez
drop table factures;
create table factures (ID_fact varchar(3), date_fact date);
insert into factures (ID_fact,date_fact) values ('F01','10/05/2005');
insert into factures (ID_fact,date_fact) values ('F02','11/05/2005');
insert into factures (ID_fact,date_fact) values ('F03','12/05/2005');
select * from factures;
commit;

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright © 2005 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.