4D for OCI et APPLIQUER A SELECTION

Stephanie Tirtiat

Comment utiliser la commande APPLIQUER A SELECTION avec 4D for OCI ?

- Titre : 4D for OCI et APPLIQUER A SELECTION

- Auteur : Stephanie Tirtiat

- Parution : 17 janvier 2006

- Licence : Copyright ® 2006 4D s.a.. Aucune reproduction, même partielle, ne peut être faite de ce site et 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.

Sommaire

Produit : 4D for OCI 2004.x  ·  Plateforme : Mac et Win ♪

La syntaxe correcte est :

1. APPLIQUER A SELECTION ([MaTable];$status:=OCIStmtExecute ($Svchp;$Stmhp;$Errhp1;1;0;0;0;OCI_DEFAULT))

Et le code exemple 4D :

1. C_TEXTE(<>Username;<>Password;<>Datasource)

2. <>Username:="xxx"

3. <>Password:="xxx"

4. <>Datasource:="xxx"

6. $status:=OCIEnvCreate (envhp;OCI_DEFAULT )

7. $status:=OCIHandleAlloc (envhp;$errhp;OCI_HTYPE_ERROR )

8. $status:=OCIHandleAlloc (envhp;svchp;OCI_HTYPE_SVCCTX )

9. $status:=OCIHandleAlloc (envhp;authp;OCI_HTYPE_SESSION )

10. $status:=OCIHandleAlloc (envhp;srvhp;OCI_HTYPE_SERVER )

11. $status:=OCIServerAttach (srvhp;$errhp;<>Datasource)

12. $status:=OCIAttrSetVal (svchp;srvhp;OCI_ATTR_SERVER ;$errhp)

13. $status:=OCIAttrSetText (authp;<>username;OCI_ATTR_USERNAME ;$errhp)

14. $status:=OCIAttrSetText (authp;<>Password;OCI_ATTR_PASSWORD ;$errhp)

15. $status:=OCISessionBegin (svchp;$errhp;authp;OCI_CRED_RDBMS ;OCI_DEFAULT )

16. $status:=OCIAttrSetVal (svchp;authp;OCI_ATTR_SESSION ;$errhp)

18. $status:=OCIHandleAlloc (envhp;$stmthp;OCI_HTYPE_STMT )

19. $status:=OCIHandleAlloc (envhp;$errhp;OCI_HTYPE_ERROR )

21. C_TEXTE($query)

22. C_ENTIER LONG($max_emp)

24. `script SQL+

25. `create table test_table (ID number, Name varchar2(40));

27. $query:="INSERT INTO test_table (ID, Name) values (:P1,:P2)"

29. $status:=OCIStmtPrepare ($stmthp;$errhp;$query;OCI_DEFAULT )

31. C_POINTEUR(null_ind1;null_ind2;null_ind3)

32. $define:=0

34. $status:=OCIBindByPos

35. ($stmthp;$define;$errhp;1;->[MaTable]ID;SQLT_INT ;null_ind1;null_ind2;null_ind3;OCI_DEFAULT ;BIND_IN )

37. $status:=OCIBindByPos

38. ($stmthp;$define;$errhp;2;->[MaTable]Name;SQLT_STR ;null_ind1;null_ind2;null_ind3;OCI_DEFAULT ;BIND_IN )

40. Si ($status#0)  `Si erreur, retourne l'erreur Oracle

41. $errornum:=1

42. status:=OCIErrorGet ($errhp;$errornum;$errorcode;$contents)

43. ALERTE($contents)

44. Fin de si

46. TOUT SELECTIONNER([MaTable])

47. DEBUT SELECTION([MaTable])

49. APPLIQUER A SELECTION([MaTable];$status:=OCIStmtExecute (svchp;$stmthp;$errhp;1;0;0;0;OCI_DEFAULT ))

51. $status:=OCIHandleFree ($stmthp)

52. $status:=OCISessionEnd (svchp;$errhp;authp)

53. $status:=OCIServerDetach (srvhp;$errhp)

54. $status:=OCICleanup (envhp)