读书人

哪位高手有ACCESS示例代码

发布时间: 2012-05-28 17:59:33 作者: rapoo

谁有ACCESS示例代码。
不要用到MFC,查询 插入 删除 和打开 连接 即可,怎么操作 有的发下

[解决办法]
http://www.roboticfan.com/blog/user_2005/9638/archives/2007/20079222151.shtml
[解决办法]
我用的是Xproer.OleDb这个类库,以.Net风格封装的,写起代码来像堆积木一样简单。
下面是使用Xproer.OleDb对数据库进行操作的示例:

C/C++ code
#include "stdafx.h"#include "XproerDataDef.h"#include "OleDb/OleDbCommand.h"#include "OleDb/OleDbConnection.h"#include "OleDb/OleDbDataReader.h"#include "OleDb/DataTable.h"#include "OleDb/DataRow.h"#include "OleDb/DataValue.h"using namespace Xproer::OleDb;//获取DataTable的示例void ADODataTable(OleDbCommand& cmd){    int count = 0;    cmd.ExecuteScalar(L"select count(*) from xdb_news",count);    auto_ptr<DataTable> table;    table.reset(cmd.ExecuteDataTable(L"select top 10 IsTop from xdb_news"));    size_t rowCount = table->GetRowsCount();    for (int i = 0 ; i < rowCount ; ++i)    {        DataRow* row = table->GetRow(i);        DataValue* val = row->GetCel(0);                printf("时间:%d \r\n", val->ToBoolean() );    }}//使用OleDbDataReader快速读取数据的示例void ADORead(OleDbCommand& cmd){    OleDbDataReader* r = cmd.ExecuteReader(L"select ProductPrice from xdb_news");    USES_CONVERSION;    wstring title;    while(r->Read())    {        //r->GetString(0,title);                //printf("标题:%s \r\n",W2A(title.c_str()));        printf("ID:%f \r\n", r->GetFloat(0) );    }    r->Close();}//通过变量向数据库安全添加数据的示例void ADOAdd(OleDbCommand& cmd){    cmd.SetCommandText(L"insert into xdb_about(VDouble) values(@VDouble)");    cmd.AddDoubleParam(L"@VDouble",125022.3180);    cmd.ExecuteNonQuery();}//高性能向数据库插入数据的示例void ADOParam(OleDbCommand& cmd){    cmd.SetCommandText(L"delete from xdb_news where ID=@ID;");    cmd.AddInt32Param(L"@ID",886);    cmd.SetPrepared(true);    _variant_t index = (short)0;    _ParameterPtr param = cmd.GetCommand()->Parameters->GetItem(index);    param->Value = 887;    cmd.ExecuteNonQuery();    param->Value = 888;    cmd.ExecuteNonQuery();    param->Value = 889;    cmd.ExecuteNonQuery();    param->Value = 890;    cmd.ExecuteNonQuery();    param->Value = 891;    cmd.ExecuteNonQuery();}//向数据库添加实数的示例void NumericScaleX(OleDbCommand& cmd){    OleDbDataReader* r = cmd.ExecuteReader(L"select ProductPrice from xdb_news");    _RecordsetPtr& rs = r->GetRecordsetPtr();    rs->MoveFirst();    _variant_t vi = (short)0;    FieldPtr fd = rs->Fields->GetItem(vi);    unsigned char numeri = fd->GetNumericScale();    unsigned char precision = fd->GetPrecision();    printf("GetNumericScale:%d\r\n", fd->GetNumericScale() );    printf("GetPrecision:%d\r\n", fd->GetPrecision() );    printf("Value:%f\r\n", (float)fd->Value );    r->Close();}int _tmain(int argc, _TCHAR* argv[]){    ::CoInitialize(NULL);    OleDbConnection con;    con.SetAccessConStr(L"F:\\vc9\\adoDemo\\Debug\\db.mdb");    con.Open();    OleDbCommand cmd(&con);    ADORead(cmd);        con.Close();    ::CoUninitialize();    //printf("总数:%d",count);    system("pause");    return 0;} 

读书人网 >VC/MFC

热点推荐