ODBC访问数据库

来源:互联网 发布:国内数据外泄防护厂家 编辑:程序博客网 时间:2024/06/05 07:47

在使用微软提供的CDatabase和CRecordset访问数据库时遇到了2个问题

1、总是弹出数据库登陆界面,如下图,好难受

2、查询数据库是出现无效的游标,如图:


第一个问题是因为使用Open(“数据源名称”)连接数据库,所以才弹出数据库登录界面。代码如下:

CDatabase l_dbConnect;if ( FALSE==l_dbConnect.Open("TEST") ){MessageBox("连接数据库失败!");}

可以使用提供账号、密码的方式登录。代码如下:

l_dbConnect.Open(NULL, FALSE, FALSE, "ODBC;DSN=TEST;UID=sa;PWD=123456789")

第二个问题是因为执行完select语句之后,没有判断游标的位置就使用GetFieldValue()取值。

CRecordset提供了2个成员函数IsBOF,IsEOF(其中B是before的缩写,E是end的缩写),IsBOF用法如下:

/* BOOL CRecordset::IsBOF( ) const;   Returns nonzero if the recordset has been positioned before the first record,There is no current record   游标处于第一条记录之前(就是没有取到数据)*/  if(rsCustSet.IsBOF())  {return;     // The recordset is empty   }
IsEOF就是最后一条记录之后,如果游标在这个位置,就到底了,也不要取数据了。

推荐一遍关于CDatabase和CRecordset使用的详细文章http://blog.csdn.net/elcoteq983/article/details/7000755


0 0
原创粉丝点击