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

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

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

Article lu   fois.

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

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.

 
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.
58.
59.
`----- 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 -----

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.