注册

为什么返回结果集为0

赵亮 2023/10/30 619 1

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:win10
【CPU】:
【问题描述】*:为什么返回结果集为0
创建了一个数据库STUDENT,列名为STUNO,STUNAME,TEANO,CLASSID.
row_num = 10;
sdint4 m_STUNO = 0;
sdbyte m_STUNAME[64];
sdint4 m_TEANO = 0;
sdint4 m_CLASSID = 0;

slength m_STUNO_param_ind = 0;
slength m_STUNO_ind = 0; //缓冲区
slength m_STUNAME_ind = 0;
slength m_TEANO_ind = 0;
slength m_CLASSID_ind = 0;
m_STUNO = 3170;
rt = dpi_prepare(hstmt, (sdbyte*)"select STUNO,STUNAME,TEANO,CLASSID from STUDENT where STUNO = ?");
DPIRETURN_CHECK(rt, DSQL_HANDLE_STMT, hstmt);
//绑定参数
rt = dpi_bind_param(hstmt, 1, DSQL_PARAM_INPUT, DSQL_C_STINYINT,
DSQL_INT, sizeof(m_STUNO), 0, &m_STUNO, sizeof(m_STUNO), &m_STUNO_param_ind);
DPIRETURN_CHECK(rt, DSQL_HANDLE_STMT, hstmt);
// 执行 sql
DPIRETURN_CHECK(dpi_exec(hstmt), DSQL_HANDLE_STMT, hstmt);
// 绑定输出列
DPIRETURN_CHECK(dpi_bind_col(hstmt, 1, DSQL_C_SLONG, &m_STUNO, sizeof(m_STUNO), &m_STUNO_ind),
DSQL_HANDLE_STMT, hstmt);
DPIRETURN_CHECK(dpi_bind_col(hstmt, 2, DSQL_C_NCHAR, &m_STUNAME, sizeof(m_STUNAME), &m_STUNAME_ind),
DSQL_HANDLE_STMT, hstmt);
DPIRETURN_CHECK(dpi_bind_col(hstmt, 3, DSQL_C_SLONG, &m_TEANO, sizeof(m_TEANO), &m_TEANO_ind),
DSQL_HANDLE_STMT, hstmt);
DPIRETURN_CHECK(dpi_bind_col(hstmt, 4, DSQL_C_SLONG, &m_CLASSID, sizeof(m_CLASSID), &m_CLASSID_ind),
DSQL_HANDLE_STMT, hstmt);

rt = dpi_fetch(hstmt, &row_num); ///为何此处返回100;
刚开始接触,还没有太入门。
rt = dpi_exec_direct(hstmt, (sdbyte*)"select STUNO,STUNAME,TEANO,CLASSID from STUDENT");
DPIRETURN_CHECK(rt, DSQL_HANDLE_STMT, hstmt);
不加条件可以返回有结果

回答 0
暂无回答
扫一扫
联系客服