怎么通过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中,update语句不能有子查询的,如不允许如下语句出现:
UPDATE tblA SET lngID=
(SELECT lngID from tblB WHERE strName='nihao')
这样就需要另想办法解决问题。
解决方案:
A。
可以用update另外的语法解决:
UPDATE Tab1 a,(Select ID,Name from Tab2) b
SET a.Name = ......
DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库)
以下代码在WIN2K,D6,MDAC2.6下测试通过,
编译好的程序在WIN98第二版无ACCESS环境下运行成功.
//声明连接字符串
Const
SConnectionString
= 'Provider=M ......
asp.net的错误--Failed to access IIS metabase 收藏
Server Error in '/sdxx' Application.
--------------------------------------------------------------------------------
Failed to access IIS metabase.
Description: An unhandled exception occurred during the execution of the current web ......
原因:IIS没有注册,我是原有系统的IIS删了,造成运行IIS中的应用程序出现这种错误!
解决办法:
在CMD中进入目录C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727,运行aspnet_regiis
1、aspnet_regiis -ga administrator(administrator为当前用户)
2、aspnet_regiis -i (注册IIS)
3、iisreset /noforce (重启IIS)
......