VC的特殊数据库编程C言语教程-C / C++-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝33
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:307回复:0

  VC的特殊数据库编程C言语教程

楼主#
更多 发布于:2016-05-30 22:08

一、 制造VB数据库拜访ACTIVEX DLL

1、首要运用VB6.0创立一个心得ACTIVEX

DLL工程,将工程命名为prjado、将类命名为clsado。

2、为工程增加ADO目标库的引证。工程->引证:Microsoft ActiveX Data

Objects2.0 Library

3、为类增加两个新的变量:

Dim con As New ADODB.Connection 界说ADO会话衔接目标

Dim cmd As New ADODB.Command 界说ADO指令目标

4、增加初始化函数

Public Function ado_Init()

con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist

Security Info=True;Data Source=sms.mdb"

cmd.ActiveConnection = con

End Function

树立到数据源的物理衔接

指定Command目标当时所属的 Connection 目标。

5、数据库操作函数

Public Function ado_add(ByVal strdata As

String)

cmd.CommandText = "insert into comdata (timm,datt)

values (" + (Format(Date, "YYYY-MM-DD ")) + Str((Time)) + "," + (strdata) +

")"

cmd.Execute

End Function

将参数保留到SMS.MDB的COMDATA表中

留意:函数声明时必须指定参数是传值(ByVal),不然VB默以为按地址传递(ByRef)

6、衔接封闭函数

Public Function ado_UnInit()

con.Close

Set cmd = Nothing

Set con = Nothing

End Function

封闭衔接而且开释目标。

保留工程,编译prjado.dll,这即是咱们的效劳组件,它完结了调用ADO目标完结对数据库操作的功用。

二、在VC程序中调用效劳组件

1、运转VC 6.0,运用MFC程序导游创立一个新的根据对话框的MFC应用程序。

2、运用#import导入效劳组件,复制PRJADO.DLL到VC工程目录,打开STDAFX.H文件增加如下代码:

# import "prjado.dll"

using namespace prjado;

这段代码应当放置在

file://pw_AFX_INSERT_LOCATION

// Microsoft Visual C++ will insert additional

declarations immediately 之后和#endif 之前。

在stdafx.h文件导入dll能够让编译器在运转时衔接dll的类型库,#import它能够主动发生一个对GUIDs的界说,一起主动生成对clsado目标的封装。一起能够罗列它在类中所能找到的类型,

VC++会在编译的时分主动生成两个文件:

一个头文件(.tlh),它包含了罗列的类型和对类型库中目标的界说;

一个完结文件(.tli)对类型库目标模型中的办法发生封装。

Namespace(姓名空间)用来界说一个姓名空间,运用unsing就能够将当时的类型上下文变换姓名空间所定地,让咱们能够拜访效劳组件的办法。

假如咱们修改了效劳组件程序,主张删去这两个文件后从头完整编译工程,以便让编译器从头罗列类的特点以及函数。

3、在对话框中新增加一按钮,标题设为"测验"。双击"测验"按钮,体系提示新建一函数OnButton1对应于该按钮的CLICK事情。OnButton1函数的详细代码如下

HRESULT hresult;

CLSID clsid;

CoInitialize(NULL);

file://初始化COM接口

hresult=CLSIDFromProgID(OLESTR("prjado.clsado"),

&clsid);

file://得到组件的CLSID

_clsado *t;

file://这即是咱们在PRJADO.DLL中界说的类

hresult=CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(_clsado),(LPVOID

*) &t);

file://初始化CLSADO,CoCreateInstance()的第一个参数是目标的CLSID(类代码),这个128位的编码仅有地标识了组件效劳,它的途径和运转参数等信息都放在体系注册表中;第二个参数通常情况下设为NULL;第三个参数用来指明目标的运转环境,如长途或本地,此处设为CLSCTX_INPROC_SERVER,标明是效劳组件是一个DLL;第四个参数指明用来与目标通讯接口的ID,这也是一个128位的编码;第五个参数是用来接纳目标的接口指针。

if(FAILED(hresult))

{

AfxMessageBox("初始化效劳组件失利");

return;

}

file://假如初始化失利,弹出提示对话框后退出程序

t->ado_Init() ;

file://调用初始化函数

t->ado_add("从VC调用组件") ;

file://调用增加记载函数

t->ado_UnInit ();

file://调用封闭衔接函数

t->Release();

file://开释接口指针

CoUninitialize();

// 封闭COM库的联接

AfxMessageBox("调用效劳组件完结");

保留工程后编译运转VC

程序,点击"测验"按钮,等候完结提示后,咱们打开数据库就能够看到方才增加的记载了。

结语:

综上所述,在实践的应用程序开发中,使用组件技术,咱们能够进行VC和VB混合编程,充分地表现开发工具的优势,能够极好地加速软件的开发进度,而且极大的改进程序的可维护性和可用性。

优质IT资源分享社区为你提供此文。

本站有大量优质C、C++教程视频,资料等资源,包含C,C++基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看。

C、C++教程视频

优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客