Firebird 2.5 C ++ Client: Error with DATE Data Type

Environment: Firebird 2.5.4-64bit, on Windows 8.1.

I am trying to write a C ++ client using the C API (using VS2013). I get this error when preparing a SELECT statement in a table containing a DATE column (error when calling the isc_dsql_prepare function)

Dynamic SQL error -SQL error code = -804 -Data type unknown -Client SQL dialect 1 does not support datatype reference DATE

From the isql tool, I confirm that the database uses SQL dialect 3: SQL> show sql dialect; In the dialect of the SQL client, the value is set: 3, and the dialogs of the SQL database: 3

On the client side, I install the SQL dialect as 3 (at least I don't have a connection error):

uint32_t sqlDialect = 3;
    const char* charset = "UTF8";
    char dpbBuffer[256], *dpb, *p;

    dpb = dpbBuffer;
    *dpb++ = isc_dpb_version1;
    *dpb++ = isc_dpb_user_name;
    *dpb++ = user.size();
    strcpy(dpb, user.c_str());
    dpb += user.size();
    *dpb++ = isc_dpb_password;
    *dpb++ = pwd.size();
    strcpy(dpb, pwd.c_str());
    dpb += pwd.size();
    *dpb++ = isc_dpb_lc_ctype;
    *dpb++ = 4;
    strcpy(dpb, charset);
    dpb += 4;
    *dpb++ = isc_dpb_sql_dialect;
    memcpy(dpb, &sqlDialect, 4);
    dpb += 4;

    short dpbLength = dpb - dpbBuffer;

    if (isc_attach_database(status, 0, url.c_str(), &_db, dpbLength, dpbBuffer))
    {
        isc_print_status(status);
    }

TIMESTAMP, DATE TIMESTAMP, , - .

: , .

-, , :

std::string sql = "SELECT * FROM truc";
out_sqlda = (XSQLDA *)malloc(XSQLDA_LENGTH(NbColumn));
out_sqlda->version = SQLDA_VERSION1;
out_sqlda->sqln = NbColumn;
isc_stmt_handle stmt;
isc_dsql_allocate_statement(status, &_db, &stmt);
isc_dsql_prepare(status, &(TransactHandle), &stmt, 0, sql.c_str(), 1, out_sqlda);

API- Interbase, :

isc_dsql_prepare(
status_vector,
&trans, /* Set by previous isc_start_transaction() call. */
&stmt, /* Statement handle set by this function call. */
0, /* Specifies statement string is null-terminated. */
str, /* Statement string. */
SQLDA_VERSION1, /* XSQLDA version number. */
out_sqlda /* XSQLDA for storing column data. */
);

6- SQLDA, SQL!!! 3 . .Net, .

+4
1

, API SQL (isc_dsql_prepare, isc_dsql_execute_immediate isc_dsql_exec_immed2). 1 3, 1.

, API Interbase 6 ( 122) , SQLDA. , Interbase ( 6) SQLDA (., , isc_describe, da_version XSQLDA ), , . , da_version , ( sqlda XSQLDA).

+2

All Articles