Vous n'êtes pas identifié(e).

#1 C et C++ » ECPG & BIGINT (long long) » 20/08/2013 14:22:24

lolo64
Réponses : 0

Bonjour,

Sur Windows seven 64 bits la gestion des types BIGINT ne fonctionne pas en lecture dynamique (FETCH INTO DESCRIPTOR sqlda).
sqlca.sqlcode retourne l'erreur -200.

Ainsi dans la documentation suivante :
"/PostgreSQL/9.2/doc/postgresql/html/ecpg-descriptors.html#ECPG-SQLDA-DESCRIPTORS"

L'exemple suivant sort en erreur -200 sur le FETCH à cause du type  "long long"
"Example 33-1. Example SQLDA Program

#include <stdlib.h>
#include <string.h>
#include <stdlib.h>
.............

int
main(void)
{
    EXEC SQL BEGIN DECLARE SECTION;
    char query[1024] = "SELECT d.oid,* FROM pg_database d, pg_stat_database s WHERE d.oid=s.datid AND ( d.datname=? OR d.oid=? )";

    int intval;
    unsigned long long int longlongval;
    EXEC SQL END DECLARE SECTION;

    EXEC SQL CONNECT TO uptimedb AS con1 USER uptime;

    EXEC SQL PREPARE stmt1 FROM :query;
    EXEC SQL DECLARE cur1 CURSOR FOR stmt1;
................
    EXEC SQL OPEN cur1 USING DESCRIPTOR sqlda2;

    while (1)
    {
        sqlda_t *cur_sqlda;

        /* Assign descriptor to the cursor  */
        EXEC SQL FETCH NEXT FROM cur1 INTO DESCRIPTOR sqlda1;
...................."

Ce problème a t-il été corrigé ou existe t-il une solution de contournement ?

Je vous remercie par avance pour vos réponses.

Pied de page des forums

Propulsé par FluxBB