欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
VC的另類(lèi)數據庫編程
VC的另類(lèi)數據庫編程 2002-10-29··盛放··yesky


  在使用VC開(kāi)發(fā)應用軟件的時(shí)候,經(jīng)常需要進(jìn)行數據庫操作,可是VC操作數據庫實(shí)在比較麻煩,而VB編制數據庫軟件卻十分方便快捷,有什么辦法可以讓VC編制數據庫軟件也這么輕松呢?
  
在工作中,本人需要從串口接收數據并保存到數據庫中,如果直接由VC調用ADO組件進(jìn)行數據庫訪(fǎng)問(wèn)、操作,比較麻煩,因此我想利用VB使用ADO組件的方便以及微軟的COM接口由VC調用VB完成任務(wù),經(jīng)過(guò)資料查找,發(fā)現大部分都是關(guān)于如何使用VC制作控件或者DLL后從VB進(jìn)行調用的,很少關(guān)于VB制作ACTIVEX DLL由VC進(jìn)行調用的文章,在此本人將結合實(shí)例說(shuō)明如何用VB制作一個(gè)操作數據庫的ACTIVEXDLL,再在VC調用該DLL,從而使得VC方便的使用ADO技術(shù)操作數據庫。

  一、 制作VB數據庫訪(fǎng)問(wèn)ACTIVEX DLL

  1、首先使用VB6.0創(chuàng )建一個(gè)心得ACTIVEX DLL工程,將工程命名為prjado、將類(lèi)命名為clsado。

  2、為工程添加ADO對象庫的引用。工程->引用:Microsoft ActiveX Data Objects2.0 Library

  3、為類(lèi)增加兩個(gè)新的變量:

Dim con As New ADODB.Connection ‘定義ADO會(huì )話(huà)連接對象
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表中

  注意:函數聲明時(shí)必須指定參數是傳值(ByVal),否則VB默認為按地址傳遞(ByRef)

  6、連接關(guān)閉函數

Public Function ado_UnInit()
 con.Close
 Set cmd = Nothing
 Set con = Nothing
End Function

  關(guān)閉連接并且釋放對象。

  保存工程,編譯prjado.dll,這就是我們的服務(wù)組件,它完成了調用ADO對象實(shí)現對數據庫操作的功能。

  二、在VC程序中調用服務(wù)組件

  1、運行VC 6.0,使用MFC程序向導創(chuàng )建一個(gè)新的基于對話(huà)框的MFC應用程序。

  2、使用#import導入服務(wù)組件,拷貝PRJADO.DLL到VC工程目錄,打開(kāi)STDAFX.H文件增加如下代碼:

# import "prjado.dll"
using namespace prjado;
這段代碼應該放置在
file://{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately 之后和#endif 之前。

  在stdafx.h文件導入dll能夠讓編譯器在運行時(shí)連接dll的類(lèi)型庫,#import它能夠自動(dòng)產(chǎn)生一個(gè)對GUIDs的定義,同時(shí)自動(dòng)生成對clsado對象的封裝。同時(shí)能夠列舉它在類(lèi)中所能找到的類(lèi)型, VC++會(huì )在編譯的時(shí)候自動(dòng)生成兩個(gè)文件:

  一個(gè)頭文件(.tlh),它包含了列舉的類(lèi)型和對類(lèi)型庫中對象的定義;

  一個(gè)實(shí)現文件(.tli)對類(lèi)型庫對象模型中的方法產(chǎn)生封裝。

  Namespace(名字空間)用來(lái)定義一個(gè)名字空間,使用unsing就可以將當前的類(lèi)型上下文轉換名字空間所定地,讓我們可以訪(fǎng)問(wèn)服務(wù)組件的方法。

  如果我們修改了服務(wù)組件程序,建議刪除這兩個(gè)文件后重新完整編譯工程,以便讓編譯器重新列舉類(lèi)的屬性以及函數。

  3、在對話(huà)框中新添加一按鈕,標題設為"測試"。雙擊"測試"按鈕,系統提示新建一函數OnButton1對應于該按鈕的CLICK事件。OnButton1函數的具體代碼如下

HRESULT hresult;
CLSID clsid;
CoInitialize(NULL);
file://初始化COM接口
hresult=CLSIDFromProgID(OLESTR("prjado.clsado"), &clsid);
file://得到組件的CLSID
_clsado *t;
file://這就是我們在PRJADO.DLL中定義的類(lèi)
hresult=CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(_clsado),(LPVOID *) &t);
file: //初始化CLSADO,CoCreateInstance()的第一個(gè)參數是對象的CLSID(類(lèi)代碼),這個(gè)128位的編碼唯一地標識了組件服務(wù),它 的路徑和運行參數等信息都放在系統注冊表中;第二個(gè)參數一般情況下設為NULL;第三個(gè)參數用來(lái)指明對象的運行環(huán)境,如遠程或本地,此處設為 CLSCTX_INPROC_SERVER,標明是服務(wù)組件是一個(gè)DLL;第四個(gè)參數指明用來(lái)與對象通信接口的ID,這也是一個(gè)128位的編碼;第五個(gè)參 數是用來(lái)接收對象的接口指針。

if(FAILED(hresult))
{
AfxMessageBox("初始化服務(wù)組件失敗");
return;
}
file://如果初始化失敗,彈出提示對話(huà)框后退出程序

t->ado_Init() ;
file://調用初始化函數
t->ado_add("從VC調用組件") ;
file://調用增加記錄函數
t->ado_UnInit ();
file://調用關(guān)閉連接函數

t->Release();
file://釋放接口指針
CoUninitialize();
// 關(guān)閉COM庫的聯(lián)接
AfxMessageBox("調用服務(wù)組件完成");

  保存工程后編譯運行VC 程序,點(diǎn)擊"測試"按鈕,等待完成提示后,我們打開(kāi)數據庫就可以看到剛才添加的記錄了。

  結語(yǔ):

  綜上所述,在實(shí)際的應用程序開(kāi)發(fā)中,利用組件技術(shù),我們可以進(jìn)行VC和VB混合編程,充分地發(fā)揮開(kāi)發(fā)工具的優(yōu)勢,可以很好地加快軟件的開(kāi)發(fā)進(jìn)度,并且極大的改善程序的可維護性和可用性。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
通用權限管理工具,支所有ADO(包括ODBC)支持的數據庫,不管用什么編程都行,VC/BCB/VB/PB/Delphi
VB調用VC6.0寫(xiě)的dll
還是VB的錯誤430問(wèn)題
Visual Basic 6.0簡(jiǎn)明教程
如何用VC編寫(xiě)DLL動(dòng)態(tài)鏈接庫文件
VB程序大揭秘(出處:Yesky 作者:不詳)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久