vs2008数据库编程笔记

一、vs6.0和vs2003中正常访问数据库的代码在vs2005或vs2008中编译报错如:

 

 

1 > c:/users/elva/desktop/serialnumberwriter/trunk/debug/oledb32.tlh( 251 ) : error C2011: “IBindResource”: “ struct ”类型重定义
1 >         d:/program files/microsoft visual studio  8 /vc/platformsdk/include/oledb.h( 13883 ) : 参见“IBindResource”的声明
1 > c:/users/elva/desktop/serialnumberwriter/trunk/debug/oledb32.tli( 101 ) : error C3861: “raw_RemoteBind”: 找不到标识符
1 > c:/users/elva/desktop/serialnumberwriter/trunk/debug/oledb32.tli( 102 ) : error C2673: “RemoteBind”: 全局函数没有“ this ”指针
1 > c:/users/elva/desktop/serialnumberwriter/trunk/debug/oledb32.tli( 102 ) : error C2673: “RemoteBind”: 全局函数没有“ this ”指针
1 > c:/users/elva/desktop/serialnumberwriter/trunk/debug/oledb32.tli( 110 ) : error C2027: 使用了未定义类型“ICreateRow”
1 >         d:/program files/microsoft visual studio  8 /vc/platformsdk/include/oledb.h( 14271 ) : 参见“ICreateRow”的声明
1 > c:/users/elva/desktop/serialnumberwriter/trunk/debug/oledb32.tli( 132 ) : error C2027: 使用了未定义类型“IRegisterProvider”
1 >         d:/program files/microsoft visual studio  8 /vc/platformsdk/include/oledb.h( 14637 ) : 参见“IRegisterProvider”的声明

 



该错误由以下语句导致:

 

#define  _WIN32_DCOM 
#import 
" C://Program Files//Common Files//System//ado//msado15.dll "  no_namespace rename( " EOF " , " ADOEOF " )
#import 
" C://Program Files//Common Files//System//Ole DB//oledb32.dll "  no_namespace

 

 

 

 

解决办法是去掉no_namespace, 在用到的地方单独加   using namespace ADODB;

 

另一个不知道是什么,我只好将他改名:

#import  " C://Program Files//Common Files//System//Ole DB//oledb32.dll "  rename_namespace( " OLEDB " //  no_namespace

 

 

 

二、DataGrid的使用

 

     在vc6.0下使用DataGrid的方法很简单,只要直接添加DataGrid控件,就会自动生成相关的类,使用人只需调用类中相关的函数即可。可是在vc++2008中,单击右键添加了DataGrid控件,并没有相关的类,而添加了DataGrid变量,只能产生一个简单的类,根本无法用它操作显示数据。

    在vc2008下使用DataGrid的方法:
    1:在对话框上单击右键,选插入activex控件----------------“DataGrid”,注意它的ID(IDC_DATAGRID1)
    2:在vc2008中将在vc6.0中能正常使用的DataGrid类的相关.h和.cpp文件(如DataGrid,column,columns等)添加到vc2008的工程中。
    3:在vc2008中相关.h和.cpp中添加添加
    CDataGrid m_db;
    DDX_Control(pDX, IDC_DATAGRID1, m_db);

    好了,上述三步,你就能象在vc6.0中一样在vc2008中自由使用datagrid了,如
    m_db.GetColumns().GetItem(vIndex).SetWidth(50);
    m_db.GetColumns().GetItem(vIndex).SetCaption(_T("姓名"));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值