What happens after double-click a table node

asked 2015-03-20 19:49:09 +0200

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

From libreoffice base, after connection and listing all tables, I clicked one table node, The called sequence is:

  • Finished SQLTables query, j1
    • SQLNumResultCols - SQL_SUCCESS
    • SQLNumResultCols - SQLNumResultCols return: - 5
    • StmtSQLFetch - move to next
    • StmtGetSQLColAttribute - StmtGetSQLColAtribute : 4, 2, SQL_DESC_CONCISE_TYPE
    • StmtGetData - StmtGetDate : 4, 1, SQL_C_CHAR
    • StmtGetData - SQLGetData find data table column : - 4
    • StmtGetSQLColAttribute - StmtGetSQLColAtribute : 5, 2, SQL_DESC_CONCISE_TYPE
    • StmtGetData - StmtGetDate : 5, 1, SQL_C_CHAR
    • StmtGetData - SQLGetData find data table column : - 5
    • SQLFreeStmt - SQLFreeStmt, Option : 3, SQL_RESET_PARAMS
    • SQLFreeStmt - SQLFreeStmt, Option : 2, SQL_UNBIND
    • SQLFreeStmt - SQLFreeStmt, Option : 0, SQL_CLOSE
    • SQLAllocHandle - Alloc handle for - 3
    • CreateStmt - SonarSQLconn created stmt handle: : 0x1c92210
    • SQLGetStmtAttr - SQLGetStmtAttr : 10010, SQL_ATTR_APP_ROW_DESC
    • SQLGetStmtAttr - SQLGetStmtAttr : 10011, SQL_ATTR_APP_PARAM_DESC
    • SQLGetStmtAttr - SQLGetStmtAttr : 10012, SQL_ATTR_IMP_ROW_DESC
    • SQLGetStmtAttr - SQLGetStmtAttr : 10013, SQL_ATTR_IMP_PARAM_DESC
    • StmtGetSQLColumns - SQL_SUCCESS
    • StmtGetSQLColumns - Querying Columns for , j1
    • StmtGetCollectionRows - Get documents for: : j1 - 3
    • SQLNumResultCols - SQL_SUCCESS
    • SQLNumResultCols - SQLNumResultCols return: - 3
    • StmtSQLFetch - move to next
    • StmtSQLFetch - move to next
    • StmtSQLFetch - move to next
    • StmtSQLFetch - move to next
    • StmtSQLFetch - SQL_ERROR No more set.
    • SQLFreeStmt - SQLFreeStmt, Option : 3, SQL_RESET_PARAMS
    • SQLFreeStmt - SQLFreeStmt, Option : 2, SQL_UNBIND
    • SQLFreeStmt - SQLFreeStmt, Option : 0, SQL_CLOSE
    • ConnSQLGetInfo - ConnSQLGetInfo : 86, SQL_ALTER_TABLE
    • ConnSQLGetInfo - ConnSQLGetInfo not supported: : 86, SQL_ALTER_TABLE -0x1c92210 recorednum: 1
    • ConnSQLGetDiagRec - ConnSQLGetDiagRec: nRecordNumber: - 1
    • ConnSQLGetDiagRec - SQL_SUCCESS -0x1c92210 recorednum: 2
    • ConnSQLGetDiagRec - ConnSQLGetDiagRec: nRecordNumber: - 2
    • ConnSQLGetDiagRec - nRecordNumber out of range -0x1c92210 recorednum: 1
    • ConnSQLGetDiagRec - ConnSQLGetDiagRec: nRecordNumber: - 1
    • ConnSQLGetDiagRec - SQL_SUCCESS -0x1c92210 recorednum: 2
    • ConnSQLGetDiagRec - ConnSQLGetDiagRec: nRecordNumber: - 2
    • ConnSQLGetDiagRec - nRecordNumber out of range -0x1c92210 recorednum: 1
    • ConnSQLGetDiagRec - ConnSQLGetDiagRec: nRecordNumber: - 1
    • ConnSQLGetDiagRec - SQL_SUCCESS

This is a pretty simple table. The questin comes from: StmtGetSQLColumns - SQL_SUCCESS StmtGetSQLColumns - Querying Columns for , j1 StmtGetSQLColumns - pg_sonar_name_map - 3 StmtGetCollectionRows - Get documents for: : j1 - 3 SQLNumResultCols - SQL_SUCCESS SQLNumResultCols - SQLNumResultCols return: - 3 StmtSQLFetch - move to next StmtSQLFetch - move to next StmtSQLFetch - move to next StmtSQLFetch - move to next StmtSQLFetch - SQL_ERROR No more set.

Why after querying SQLNumResultCols, and SQLFetch, it doesn't call SQLGetData. It calls SQLFetch till there is no data there. Then free statement handle.

edit retag flag offensive close merge delete

Comments

1

Is this a functional question about some i/o malfunction in Base, or are you just curious how the developers decided to structure the program?

doug gravatar imagedoug ( 2015-03-20 20:21:22 +0200 )edit