Developpez.com - 4D
X

Choisissez d'abord la catégorieensuite la rubrique :


4D ODBC Pro : lire une colonne LONG RAW, code exemple

Date de publication : 05/10/05

Par Stéphanie Tirtiat (Intl Tech Support)
 

4D ODBC Pro : lire une colonne LONG RAW, code exemple


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


Ci-dessous un code exemple qui récupère les données d'une colonne Oracle de type LONG RAW avec les commandes du plugin 4D ODBC Pro 2004.

   `----- méthode -----

   `méthode qui initialise les variables
InitVariables

   `méthode initialisant les paramètres de connexions
   `‹›DataSource, ‹›UserName, ‹›Password
LoginParameters

$result:=ODBC_SQLAllocConnect ($connectionID)
$result:=ODBC_SQLConnect ($connectionID;‹›DataSource;‹›UserName;‹›Password)

Si ($result=SQL_SUCCESS ) `Connexion OK
   $result:=ODBC_SQLAllocStmt ($connectionID;$statementID)

      `la requête
      `la table test_lgraw contient une colonne NUMBER et une colonne LONG RAW contenant des fichiers images jpg
   $sql_statement:="select key, lgraw FROM test_lgraw where key='10'"

   $result:=ODBC_SQLPrepare ($statementID;$sql_statement)
   $result:=ODBC_SQLBindCol ($statementID;1;->ZeKey;->zeLength)
   $result:=ODBC_SQLExecute ($statementID)
   $result:=ODBC_SQLFetch ($statementID)

   Si ($result#0)
      C_ENTIER LONG($res)
      $res:=ODBC_SQLGetDiagRec (SQL_HANDLE_STMT;$statementID;1;SQLState;nativeError;debugMess)
   Fin de si

      `il faut définir une taille de blob à l'avance
   $size:=1024
   FIXER TAILLE BLOB(zeBlob;$size)
   FIXER TAILLE BLOB(zeBlobFinal;0)
   $offset:=0

   Repeter `on reçoit morceau par morceau (ici, 1024 bytes par itération)
      $result:=ODBC_SQLGetData ($statementID;2;->zeBlob;zeLength)
      Si (zeLength>$size)
         COPIER BLOB(zeBlob;zeBlobFinal;0;$offset;$size)
      Sinon
         COPIER BLOB(zeBlob;zeBlobFinal;0;$offset;zeLength)
      Fin de si
      $offset:=$offset+$size
   Jusque (($result=SQL_NO_DATA ) | ($result>0))

      `créer un document avec l'image reçue
   $docRef:=Creer document("lgraw_image.jpg")
   FERMER DOCUMENT($docRef)
   BLOB VERS DOCUMENT(document;zeBlobFinal)

      `libérer les connexions
   $result:=ODBC_SQLFreeStmt ($statementID;SQL_UNBIND )
   $result:=ODBC_SQLDisconnect ($connectionID)

Sinon
   ALERTE("Impossible de se connecter !")

Fin de si

   ` ----- /méthode -----



Valid XHTML 1.1!Valid CSS!

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.

Contacter le responsable de la rubrique 4D