我用
CDatabase database;
database.Openex("DSN=A;UID=SA;PWD=;",CDatabase::noOdbcDialog)
CRecordset recordset(&database);
recordset.Open(CRecordset::forwardOnly, _T("select * from authors"));当我用recordset.GetRecordCount()时,返回总为1,换别的数据库也不行,表中已有很多记录,不知怎么???还有当连接MS SQL Server2000时,当有字段为nvarchar型时,
用
CDBVariant dbVariant;
recordset.GetFieldValue((short)0, dbVariant);
也出错,不知怎么???
CDatabase database;
database.Openex("DSN=A;UID=SA;PWD=;",CDatabase::noOdbcDialog)
CRecordset recordset(&database);
recordset.Open(CRecordset::forwardOnly, _T("select * from authors"));当我用recordset.GetRecordCount()时,返回总为1,换别的数据库也不行,表中已有很多记录,不知怎么???还有当连接MS SQL Server2000时,当有字段为nvarchar型时,
用
CDBVariant dbVariant;
recordset.GetFieldValue((short)0, dbVariant);
也出错,不知怎么???
一行一行地MoveNext()到最后一行再用GetRecordCount()就能得到正确的
值了,(很傻吧,你看一看MSDN就知道了,很多VC书上也有写的,不知为什
么会这样设计,哈,管它呢,喝酒)
在GetFieldValue(..)时,那个index只能从小到大取,你要是取了1再取0
它就出错(经验这样的,不知是不是我的VC版本没升级反正资料上没
查到过)
那就要看你报的是什么错了,错误信息对诊断是很重要的哦,呵呵望闻问切嘛!有的人不用问就能知道是哪年的酒,那都是电影里的,哈哈