Skip to content

SQLRowCount set affected row numbers is incorrect when use SQLBindParameter and SQLSetStmtAttr for SQL_ATTR_PARAMSET_SIZE #34

Open
@Oliver0624

Description

@Oliver0624

Hi,

I'm tring to insert and update a lot of records using SQLBindParameter and SQLSetStmtAttr, but SQLRowsCount returned record number affected by ONLY the LAST SINGLE SQL STATEMENT.

Here is my code sequence.

status = SQLBindParameter(cda,
parm_pos,
param_type,
ftype,
mapped_sqltype,
temp_column_size,
sqltype == SQL_TYPE_TIMESTAMP ? odbc_date_scale : 0,
v.p_v,
buflen,
v.p_len);

status = SQLSetStmtAttr(cda,
SQL_ATTR_PARAMSET_SIZE,
temp_iters,
SQL_NTS);

status = SQLExecute(cda);

SQLRowCount(cda, affected_num);

I inserted 1000 records into the table, but affected_num set by SQLRowCount is 1

I searched the source code for this issue, and found in CC_send_query_append (connection.c:2062)

image

My question is :
Is this line (connection.cpp : 2062) has a bug? I think it may use '+=' rather than '='.
lack of libpg.dll and headers, I cannot compile the source code and check my idea.


July 23,2024
OK. I've found how to fix this bug, and have checked it on my computer. ( It's not so easy to fix this bug )
Can I send a pull request ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions