Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372

    c++ Odbc FetchScroll con colonne dinamiche

    Se utilizzo un array di strutture non tutti i valori delle righe sono ritornate nel buffer, es. righe da fetch 5, in buffer solo 3 con dati, così ritornate:

    riga colonna 1 colonna 2
    1° valore riga1 valore riga1
    2° valore riga3 valore riga3
    3° valore riga5 valore riga5



    la riga 2 ha il valore della 3°, la 3° i valori della 5°, la 4° e la 5° vuote, mentre tutte le righe hanno valori

    uso sybase come db e odbc 3, escludo che il problema sia con il db ma con la struttura dato che con array[][] in column-wise funziona tutto perfettamente
    il codice nella parti salienti è il seguente:


    SQLSMALLINT nrCr;


    struct DataBinding {
    SQLWCHAR data[10][100];
    } *columnData;



    SQLNumResultCols(stmt, &nrCr);


    SQLSetStmtAttr(...)
    SQLSetStmtAttr(...)
    SQLSetStmtAttr(...)


    //allocazione array di strutture per i dati della colonna
    columnData = (struct DataBinding*)malloc(nrCr * sizeof(struct DataBinding));

    //binding
    for(int i=0; i<nrCr; i++) {
    SQLBindCol(stmtR, i+1, SQL_C_WCHAR, &columnData[i].data, 100, SQL_NULL_HANDLE);
    }


    //ritorno dei dati
    while((rc=SQLFetchScroll(stmtR,SQL_FETCH_NEXT,0))! = SQL_NO_DATA) {
    for(unsigned int r=0; r<nrRowsFetched; r++) {
    for(int c=0; c<nrCr; c++) {
    MessageBox(0,columnData[c].data[r],L"test",MB_OK);
    }
    }
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372
    ... nessuna idea

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372
    ????

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.