旧事重提:请大家看看问题在哪里,打开数据表时出错!(20分)解决之后就加分!

时间:2022-10-08 20:24:47
CDatabase database;


database.Open(NULL,false,false,_T(ODBC;DRIVER={SQL Server};Server=Abc;DATABASE=zcg;UID=sa;PWD=),true);
//确定以上连接数据库可以成功

CRecordset recordset(&database);
try
{
CString a,b;
a=recordset.GetDefaultSQL();
b=recordset.GetDefaultConnect();
recordset.Open(AFX_DB_USE_DEFAULT_TYPE,"select khh from dbo.gddmb",CRecordset::readOnly);
}
catch(CDBException* e)
{
e->Delete();
CString a1,b1;
a1=recordset.GetDefaultSQL();
b1=recordset.GetDefaultConnect();
}

错误提示如下:
a="",   b={"ODBC;"}
e.m_strError={"在调用 SQLFetchScroll/SQLExtendedFetch之前没绑定数据列"}
e.m_strStateNativeOrigin={"State:SL009,Native:0,Origin:[Micosoft]光标库]"}
a1="",  b1={"ODBC;"}

请问该怎么办?

7 个解决方案

#1


:( 帮帮忙吧!

#2


CDatabase *kk=new CDatabase();
CRecordset *dd=new CRecordset(kk);
kk->OpenEx("DSN=test",0);
dd->Open(AFX_DB_USE_DEFAULT_TYPE,"select * from allmembers");
dd->Close();
kk->Close();

#3


open函数的最后一个参数是什么意思?

#4


go up!

#5


可以是一个表名,也可以是一条SQL语句,也可以是一个事务

#6


to panch:
请问这样建立以后,如何将数据库字段名与变量绑定啊?
如果用CRecordset派生出一个类的话那样可以,但是如果直接用CRecordset呢?
怎么办啊?
帮忙看看
http://www.csdn.net/expert/topic/480/480107.shtm

#7


对不起我是指openex即数据库打开语句的最后一个参数!

#1


:( 帮帮忙吧!

#2


CDatabase *kk=new CDatabase();
CRecordset *dd=new CRecordset(kk);
kk->OpenEx("DSN=test",0);
dd->Open(AFX_DB_USE_DEFAULT_TYPE,"select * from allmembers");
dd->Close();
kk->Close();

#3


open函数的最后一个参数是什么意思?

#4


go up!

#5


可以是一个表名,也可以是一条SQL语句,也可以是一个事务

#6


to panch:
请问这样建立以后,如何将数据库字段名与变量绑定啊?
如果用CRecordset派生出一个类的话那样可以,但是如果直接用CRecordset呢?
怎么办啊?
帮忙看看
http://www.csdn.net/expert/topic/480/480107.shtm

#7


对不起我是指openex即数据库打开语句的最后一个参数!