wxODBC数据库编程需要几步:
(1)配置连接信息
[Access 2003]
wxString info = wxT("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=filename.mdb");
[SQL Server 2000]
wxString info = wxT("Driver={SQL Server};Server=IP;Database=filename;Uid=sa;Pwd=sa;");
看上去和asp里面差不多。
(2)连接数据库
wxDbConnectInf dbi;
dbi.SetConnectionStr(info);
dbi.AllocHenv();
wxDb* db = new wxDb(dbi.GetHenv());
if (!db->Open(&dbi))//判断是否获得连接
{
wxMessageBox(wxT("不能连接数据库!"));
}
(3)创建表对象
wxChar FirstName[50+1]; //table的数据成员,用来绑定数据库表中字段
wxChar LastName[50+1];
wxDbTable* table = new wxDbTable(db, wxT("tablename"),2,wxT(""), !wxDB_QUERY_ONLY, wxT(""));//创建表对象
table->SetColDefs(0, wxT("FIRST_NAME"), DB_DATA_TYPE_VARCHAR, FirstName,
SQL_C_WXCHAR, sizeof(FirstName), true, true);//绑定操作
table->SetColDefs(1, wxT("LAST_NAME"), DB_DATA_TYPE_VARCHAR, LastName,
SQL_C_WXCHAR, sizeof(LastName), true, true);
table->CreateTable();
这里主要是创建表对象,并且将表的字段和变量绑定。
(4)进行表操作:打开,查询,删除,插入……
打开表:
if (!table->Open())
{
wxMessageBox(wxT("TABLE OPEN ERROR: "));
}
删除表:
table->DropTable();
插入:
wxStrcpy(FirstName, wxT("JULIAN"));//FirstName所绑定的字段将添加一条"JULIAN"记录
wxStrcpy(LastName, wxT("SMART"));
if (!table->Insert())
{
wxMessageBox(wxT("Insert error!"));
}
table->GetDb()->CommitTrans();//更新数据库时必须ComitTrans()
删除:
if (!table->DeleteWhere(wxT("name='wenbin'")))//这里面其实就是SQL的查询语句,不同的数据库不一样
{
wxMessageBox(wxT("DELETION ERROR:"));
}
查询:
table->SetWhereClause(wxT("FIRST_NAME<>NULL"));//where从句
table->SetOrderByClause(wxT("LAST_NAME"));//order从句
table->SetFromClause(wxT(""));//from从句,这里是from table
if (!table->Query())//查询并判断结果
{
wxMessageBox("QUERY ERROR");
}
int n=0;
while (table->GetNext())//这是将查询结果显示在ListCtrl控件上,GetNext()每次提取一条记录
{
listctrl->InsertItem(n,FirstName);
listctrl->SetItem(n,1,LastName);
n++;
}
还有其他的操作参考其他资料了。。
下面是代码:
完整代码下载:http://ishare.iask.sina.com.cn/f/7885928.html
main.cpp
main.rc