访问 dBase 文件






1.79/5 (23投票s)
2003年5月3日
2分钟阅读

104476

2495
如何访问 dBase 文件。
引言
这个演示项目向您展示了如何使用 ODBC 轻松访问 dBase 文件。
如何创建数据库 DSN
开始 -> 管理工具 -> 数据源 (ODBC) -> 用户 DSN -> 添加
我使用的是 dBase 5.0 的 ODBC 驱动程序。在 microsoft.com 上您可以下载 ODBC-Jet 驱动程序。您需要使用 Microsoft dBase Driver (*.dbf) 驱动程序创建一个 DSN,命名为 test_dbase
,并设置正确的指向文件的路径。如果没有创建 DSN,应用程序将无法找到 dBase 文件!
使用代码
这段代码是项目中最有趣的部分!
#include "stdafx.h"
#include "afxdb.h"
CRecordset rec;
CDatabase db;
char sz_statement [2048] = "";
char sz_connect [250] = "";
CString s_name;
CString s_age;
sprintf(sz_connect,"ODBC;DSN=test_dbase;");
//Normally -> ODBC;DSN=DB_Name;UID=UserID;
//PWD=Password;DBALIAS=DB_Alias;
try
{
db.Open(sz_connect);
}
catch(CDBException *e)
{
e->Delete ();
}
rec.m_pDatabase = &db;
printf(" Name | Age\n");
printf("------------------\n");
strcpy(sz_statement,"SELECT * FROM name_list");
try
{
rec.Open(CRecordset::forwardOnly, sz_statement);
while(!rec.IsEOF())
{
rec.GetFieldValue("NAME", s_name);
printf("%-10s | ",s_name);
rec.GetFieldValue("AGE", s_age);
printf("%-5s\n",s_age);
rec.MoveNext();
}
rec.Close();
}
catch (CDBException *e)
{
e->Delete ();
}
db.Close();
字符串:"ODBC;DSN=test_dbase;"
是数据库的连接字符串。
db.Open(sz_connect);
调用此成员函数来初始化新创建的 CDatabase
对象。在使用它来构造 recordset
对象之前,必须初始化您的数据库对象。
rec.m_pDatabase = &db;
包含一个指向 CDatabase
对象的指针,通过该对象 recordset
连接到数据源。
rec.Open(CRecordset::forwardOnly, sz_statement);
您必须调用此成员函数来运行 recordset
定义的查询。在调用 Open
之前,您必须构造 recordset
对象。
rec.GetFieldValue("NAME", s_name);
调用此成员函数来检索当前记录中的字段数据。您可以按名称或索引查找字段。您可以将字段值存储在 CString
对象中。
rec.MoveNext();
调用此成员函数将下一个 rowset
中的第一条记录设为当前记录。如果您没有实现批量行获取,则您的记录集行集大小为 1,因此 MoveNext
只是移动到下一条记录。
rec.Close();
调用此成员函数来关闭 recordset
。
db.Close();
调用此成员函数以断开与数据的连接
历史
- 2003年1月24日 - 第一个版本完成...
- 2003年5月15日 - 第二版本 => 修改了一些文本并修改了代码
- 2003年7月2日 - 大幅重写