谁有ACCESS示例代码。 不要用到MFC,查询 插入 删除 和打开 连接 即可,怎么操作 有的发下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.roboticfan.com/blog/user_2005/9638/archives/2007/20079222151.shtml 我用的是Xproer.OleDb这个类库,以.Net风格封装的,写起代码来像堆积木一样简单。下面是使用Xproer.OleDb对数据库进行操作的示例:#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;} 不用三角函数求点到线段距离的算法 200分求教:有没有办法在等待20秒时间之内,直到缓冲区满24个字节为止才调用ReadFile一次?或者将缓冲区的数据读完后仍然保存在缓冲区里面呢? 怎么用jrtplib 检测丢包问题,如何控制服务器重发包 向大虾请教 tab control 多幅bmp图片,想生成gif格式的动画,哪里有类似的源码可以看 OnConnect()消息的问题! 小弟有一个川串问题不解,请大虾帮忙 typedef CGAL::Cartesian< double > R; 请问VC里显示问题! 如何杀掉一个别的程序的拖盘图标(并不是关闭那个程序?? 纸牌游戏的问题 字符串对比问题
下面是使用Xproer.OleDb对数据库进行操作的示例:#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;
}