Ecrire dans une colonne LONG RAW

Stéphanie Tirtiat

Code exemple pour écrire dans une colonne Oracle de type LONG RAW avec 4D for OCI ♪

- Titre : Ecrire dans une colonne LONG RAW

- Auteur : Stéphanie Tirtiat

- Parution : 22 décembre 2005

- Licence : Copyright ® 2005 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 OCI 2004.3  ·  Plateforme : Mac & Win

Avec 4D for OCI 2004.3, vous pouvez envoyer du contenu dans une colonne LONG RAW d'une base Oracle.

Code exemple :

1. C_ENTIER LONG(envhp;errhp;svchp)

2. C_ENTIER LONG(Define;stmthp;stmtSelecthp)

3. C_ENTIER(RealLength)

4. C_BLOB(ZeBlob)

5. FIXER TAILLE BLOB(ZeBlob;0)

6. C_ENTIER LONG(vp_Null1)

7. C_POINTEUR(vp_Null3)

9. C_HEURE($DocRef)

10. C_TEXTE($Path)

11. $DocRef:=Ouvrir document("";"";Lire chemin accès )

12. Si (OK=1)

13. $Path:=document

14. FERMER DOCUMENT($DocRef)

15. Fin de si

16. DOCUMENT VERS BLOB($Path;ZeBlob)

17. WriteLength:=Taille BLOB(ZeBlob)

19. C_TEXTE($UserName;$Password;$DbService;$SQLStatement)

20. $UserName:="xxx"

21. $Password:="xxx"

22. $DbService:="xxx"

24. $Status:=OCIEnvCreate (envhp;OCI_OBJECT )

25. $Status:=OCIHandleAlloc (envhp;errhp;OCI_HTYPE_ERROR )

26. $Status:=OCILogon (envhp;errhp;svchp;$UserName;$Password;$DbService)

27. $Status:=OCIHandleAlloc (envhp;stmthp;OCI_HTYPE_STMT )

29. $SQLStatement:="INSERT INTO test_LGRAW (key, lgraw) "

30. $SQLStatement:=$SQLStatement+"VALUES (3, EMPTY_BLOB())"

32. $Status:=OCIStmtPrepare (stmthp;errhp;$SQLStatement;OCI_DEFAULT )

33. $Status:=OCIStmtExecute (svchp;stmthp;errhp;1;0;0;0;OCI_DEFAULT )

35. $SQLStatement:="UPDATE test_LGRAW SET lgraw=:1 WHERE key=3"

37. $Status:=OCIHandleAlloc (envhp;stmtSelecthp;OCI_HTYPE_STMT )

38. $Status:=OCIStmtPrepare (stmtSelecthp;errhp;$SQLStatement;OCI_DEFAULT )

40. vp_Null1:=1

41. WriteLength:=Taille BLOB(ZeBlob)

42. $Status:=OCIBindByPos (stmtSelecthp;Define;errhp;1;->ZeBlob;SQLT_LBI ;->vp_Null1;

43. ->WriteLength;->vp_Null3;OCI_DATA_AT_EXEC )

44. $status:=OCIErrorGet (errhp;1;$errornum;$errorexplain)

45. Si ($errornum#0)

46. ALERTE(Chaine($errornum)+Caractere(13)+$errorexplain)

47. Fin de si

49. $Status:=OCIStmtExecute (svchp;stmtSelecthp;errhp;1;0;0;0;OCI_DEFAULT )

50. $Status:=OCIHandleFree (stmtSelecthp)

51. $status:=OCIErrorGet (errhp;1;$errornum;$errorexplain)

52. Si ($errornum#0)

53. ALERTE(Chaine($errornum)+Caractere(13)+$errorexplain)

54. Fin de si

56. $Status:=OCIHandleFree (stmthp)

57. $Status:=OCILogoff (svchp;errhp)

58. $Status:=OCIHandleFree (errhp)

59. $Status:=OCICleanUp (envhp)