怎么通过ODBC使用wxWidgets连接Access数据库
怎么通过ODBC使用wxWidgets连接Access数据库
1、wxWidgets库中ODBC的编译
默认编译时,ODBC库中的没有导出,致使调用wxDbConnectInf,wxDbTable等类函数是时出现链接错误的问题,故首先要编译ODBC库为导出 类库,这需要在"Include"目录下的"Setup.h"中对#define wxUSE_ODBC 0设置为1,重新编译即可.
2、数据库的链接与数据的读取
//启动和配置数据库环境
wxDbConnectInf *ConnectConfig = new wxDbConnectInf(NULL, wxT("DB1"), wxT(""), wxT("")); //(DB1就是ODBC数据源) //链接数据库
wxDb *theConnect = wxDbGetConnection(ConnectConfig);
//表的打开
wxDbTable *tbl = new wxDbTable(theConnect,wxT("S1"),2,wxT(""), !wxDB_QUERY_ONLY, wxT("")); //(S1就是DB1中的表名)
//数据和变量绑定(ID,theName是表中的字段, theID,theName就是捆绑数据)
tbl->SetColDefs(0, wxT("ID"), DB_DATA_TYPE_INTEGER, &theID, SQL_C_LONG, sizeof(theID), false, true);
tbl->SetColDefs(1, wxT("theName"), DB_DATA_TYPE_VARCHAR, theName, SQL_C_WXCHAR, sizeof(theName), false, true);
//判断是否正确打开表
if (!tbl->Open()) {
//判断是否正确打开表
wxMessageBox("error1");
return;
}
//判断是否正确获取表数据
if (!tbl->GetDb())
{
//判断是否正确获取表数据
wxMessageBox("error2");
return;
}
//查询数据
tbl ->Query();
wxString wxx;
while (tbl ->GetNext())
{
strcat(theName,"\n");
wxx += theName;
}
3、后续处理(略)
相关文档:
连接Access
首先看一个例子代码片断:
程序代码:
--------------------------------------------------------------------------------
using System.Data;
using System.Data.OleDb;
......
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+=@"Data Source=C:\BegASPNET\Northwind.mdb" ......
Access 项目管理团队的 Clint 在此向 Office 工程博客的读者表示问候。通过与第 9 频道合作,Access 团队即将推出一个名为 Access 展示的新展示。其主要人物包括 Ryan McMinn、我本人以及团队的其他人员。我们将深入探讨 Access 2010 和 Access Services 中的新增功能,并分享来自社区的反馈。
此外,最近在 SharePoint D ......
1.错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。
这个错误一般只有在使用ACCESS数据库时才会出现。因为ACCESS在打开时会生成一个临时文件.ldb,这时文件夹如果没有写入权限时,则会发生错误。
解决方法如下:
1 ......
Option Explicit
Private Sub Form_Load()
'工程->引用->选中Microsoft ActiveX Data Objects 2.8 Library
Dim shujukulianjie As New ADODB.Connection
Dim jiluji As New ADODB.Recordset
'连接数据库的代码段
shujukulianjie.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Sour ......
用Cdbl()试试
CDbl(str) --> 双精度
CInt(str) --> 整型
CLng(str) --> 长整型
CSng(str) --> 单精度
CDate(str) --> 日期型 ......