ADO代码:
void main(int argc,char* argv[]) //a给的是2012-9-5
{
string a;
a=argv[1];
sql1.Format(_T("select * from mana_author where input_date >to_date('%s','yyyy-mm-dd')"),CString(a.c_str()));
m_pConnection->Execute(_bstr_t(sql1),&records_affected,adCmdText);
影响行数records_affected,大于100时总是返回100,小于100的时候是正确的结果。
数据库直接执行的sql语句:select * from mana_author where input_date >to_date('2012-9-4','yyyy-mm-dd')
这是什么原因呢?哪里错了,求帮忙。。。
另外records_affected.intVal 和 records_affected.lVal 有什么区别呢? 我用的是intVal
-----------------今早一来改用结果集_RecordsetPtr-----
用GetRecordCount()获得结果集行数,结果与直接用sql在数据库运行相同,真奇怪。。。。execute到底怎么回事,,没有高手能解答一下么。。。
5 个解决方案
#1
影响行数records_affected,大于100时总是返回100,小于100的时候是正确的结果。
还有这情况? 是不是哪里设置了什么。
你在执行完查询后,直接打印记录数,看是多少
还有这情况? 是不是哪里设置了什么。
你在执行完查询后,直接打印记录数,看是多少
#2
影响行数records_affected,大于100时总是返回100,小于100的时候是正确的结果。
还有这情况? 是不是哪里设置了什么。
你在执行完查询后,直接打印记录数,看是多少
还有这情况? 是不是哪里设置了什么。
你在执行完查询后,直接打印记录数,看是多少
#3
我也不知道为什么大于100行以后就不对了。。。都显示100。。设置?就正常用ADO 没设置什么啊。。。
用结果集打印总行数就是对的,我就是执行完以后records_affected.intVal打印影响行数
#4
cout << records_affected.intVal << "," << records_affected.lVal<< endl; getchar();
}
这么打印的。。另外 我不知道intval和lval什么区别。。。但是都是100
#5
盼回复啊。。。高手们。。。。。
#1
影响行数records_affected,大于100时总是返回100,小于100的时候是正确的结果。
还有这情况? 是不是哪里设置了什么。
你在执行完查询后,直接打印记录数,看是多少
还有这情况? 是不是哪里设置了什么。
你在执行完查询后,直接打印记录数,看是多少
#2
影响行数records_affected,大于100时总是返回100,小于100的时候是正确的结果。
还有这情况? 是不是哪里设置了什么。
你在执行完查询后,直接打印记录数,看是多少
还有这情况? 是不是哪里设置了什么。
你在执行完查询后,直接打印记录数,看是多少
#3
我也不知道为什么大于100行以后就不对了。。。都显示100。。设置?就正常用ADO 没设置什么啊。。。
用结果集打印总行数就是对的,我就是执行完以后records_affected.intVal打印影响行数
#4
cout << records_affected.intVal << "," << records_affected.lVal<< endl; getchar();
}
这么打印的。。另外 我不知道intval和lval什么区别。。。但是都是100
#5
盼回复啊。。。高手们。。。。。