![畢業(yè)設(shè)計-基于Qt嵌入式網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計之歐陽史創(chuàng)編_第1頁](http://file4.renrendoc.com/view10/M03/3C/11/wKhkGWWaRr6AUU4GAADAoyXPZBM907.jpg)
![畢業(yè)設(shè)計-基于Qt嵌入式網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計之歐陽史創(chuàng)編_第2頁](http://file4.renrendoc.com/view10/M03/3C/11/wKhkGWWaRr6AUU4GAADAoyXPZBM9072.jpg)
![畢業(yè)設(shè)計-基于Qt嵌入式網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計之歐陽史創(chuàng)編_第3頁](http://file4.renrendoc.com/view10/M03/3C/11/wKhkGWWaRr6AUU4GAADAoyXPZBM9073.jpg)
![畢業(yè)設(shè)計-基于Qt嵌入式網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計之歐陽史創(chuàng)編_第4頁](http://file4.renrendoc.com/view10/M03/3C/11/wKhkGWWaRr6AUU4GAADAoyXPZBM9074.jpg)
![畢業(yè)設(shè)計-基于Qt嵌入式網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計之歐陽史創(chuàng)編_第5頁](http://file4.renrendoc.com/view10/M03/3C/11/wKhkGWWaRr6AUU4GAADAoyXPZBM9075.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
曲阜師范大學(xué)杏壇學(xué)院教務(wù)處制ABSTRACT3keyword41.2QT的發(fā)展史和前景72WINDOWSSOCKETS網(wǎng)絡(luò)編程的研究42.1TCP/IP體系結(jié)構(gòu)52.2.1TCP/IP簡介52.2.2TCP/IP的特點52.2基本套接字52.3客戶機/服務(wù)器模式72.4SOCKETS程序設(shè)計82.4.1SOCKETSAPI簡介82.4.2WINDOWSSOCKETS機制93網(wǎng)絡(luò)通信模塊分析113.1網(wǎng)絡(luò)通信程序設(shè)計過程113.2網(wǎng)絡(luò)通信程序設(shè)計核心133.2.1通信設(shè)計代碼分析133.2.2數(shù)據(jù)傳輸代碼分析174.1服務(wù)器端界面模塊分析204.2客戶端界面模塊分析214.2.1用戶登陸界面分析214.2.2用戶聊天界面分析245數(shù)據(jù)庫模塊分析275.1數(shù)據(jù)庫的選擇275.2數(shù)據(jù)庫訪問方法275.3ADO數(shù)據(jù)庫編程275.3.1ADO與ADO接口簡介275.3.2使用ADO操作SQL代碼分析286.1體會和感想33第七章、參考書目34基于Qt嵌入式網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計電子信息工程專業(yè)學(xué)生商廣浩摘要:本文主要介紹了如何用QT技術(shù)來實現(xiàn)一個局域網(wǎng)其應(yīng)用平臺,以及QT的發(fā)展前景;本論文討論了linus環(huán)境下局域網(wǎng)聊天程序的設(shè)計思路和設(shè)計方法。其中網(wǎng)絡(luò)通信部分采用流行的TCP/IP協(xié)議。程序采用典型的C/S(服務(wù)器/客戶端)構(gòu)架。用socket編程設(shè)計網(wǎng)絡(luò)通訊。界面設(shè)計部分采用QT框架。數(shù)據(jù)庫采用微軟SQLServer。本文最終設(shè)計了一個簡易版本的聊天軟件,包括登陸、退出、添加好友、消息收/發(fā)等功能。architectureQtbasedembeddednetworkchatsystemdesignEngineeringshangguanghaoTutorwangyannaABSTRACT:Thisarticlediscusseshowtodesignandenvironment.ThenetworkcommunicationpartdependsonthepopularTCP/IPprotocol.SoftwareisbasedonC/Sarchitecture.NetworkdesignedwithQTframe.DatabaseisdesignedwithSQLserver.Thearticledescribesaconcisechartsoftwareversion,withthefunctionofloggingin/out,addingfriendtolist,senmessageandsoon.Keywords:QT,TCP/IPcommunication,SocketsAPI,C/Sarchitecture引言:近年來,隨著全球信息化的不斷發(fā)展,網(wǎng)絡(luò)也隨著用戶對軟件功能的需求不斷提高,即時通訊的產(chǎn)品也不斷地更新?lián)Q代。即時通訊的發(fā)展不論是在基礎(chǔ)應(yīng)用方面還是在擴展應(yīng)用方面都有著飛躍。為了滿足用戶的需求,包括騰訊公司的聊天軟件QQ在內(nèi),許多即時性聊天的是基于局域網(wǎng)的聊天室,用VC++編寫的程序,程序?qū)崿F(xiàn)一般的文字聊天功能,可作為某局域網(wǎng)的交流工具。本系統(tǒng)采用基于Socket的方法實現(xiàn)局域網(wǎng)通信,基于Socket的局域網(wǎng)通信軟件可以為企業(yè)原有的局域網(wǎng)提供一種良好,安全,快速的通信機制。它的實現(xiàn)無需對企業(yè)原有的局域網(wǎng)硬件進行任何改動,具有實現(xiàn)成本低廉的優(yōu)點,它的使用能有效地降低局域網(wǎng)通信負荷,提高局域網(wǎng)的使用效率,可以很好地解決企業(yè)內(nèi)部局域網(wǎng)的各種通基于Socket的局域網(wǎng)聊天工具很好地詮釋了Socket都具有一定的實用價值。它具有信息收發(fā)速度快,保密性好,占用網(wǎng)絡(luò)帶寬資源低,占用服務(wù)器吞吐能力低,易于編程實現(xiàn)等優(yōu)點[3]?;赟ocket的局域網(wǎng)通信軟件應(yīng)用范圍廣闊,不但可以處理傳統(tǒng)的通信需求,而且也能擴展以適應(yīng)新型的網(wǎng)絡(luò)應(yīng)用,如網(wǎng)絡(luò)教育,數(shù)據(jù)影音傳輸?shù)?,擁有廣泛的應(yīng)用前景。如今基于局域網(wǎng)的即時通信工具一般采用UDP或者時性比較好,但是不一定提供可靠的數(shù)據(jù)傳輸,TCP可以提供可靠的數(shù)據(jù)傳輸,本課題采用TCP完成局域網(wǎng)聊天室Qt是一個1991年由奇趣科技開發(fā)的跨平臺C++圖形用戶界面應(yīng)用程序開發(fā)框架。它既可以開發(fā)GUI程式,也可用于開發(fā)非GUI程式,比如控制臺工具和服務(wù)器是面向?qū)ο笳Z言,易于擴展,并且允許組件編程。2008年,奇趣科技被諾基亞公司收購,QT也因此成為諾基亞旗下的編程語言工具。*1996OctKDE組織成立2Socket網(wǎng)絡(luò)編程的研究2.1TCP/IP體系結(jié)構(gòu)2.2.1TCP/IP簡介TCP/IP作為Internet的核心協(xié)議,通過近二十多年的發(fā)展已日漸成熟,并被廣泛應(yīng)用于局域網(wǎng)和廣域網(wǎng)中,目前已成為事實上的國際標準。TCP/IP協(xié)議集確立TCP/IP協(xié)議主要作用于OSI網(wǎng)絡(luò)參考模型中的網(wǎng)絡(luò)網(wǎng)(Ethernet)、ATM、幀中繼(FrameRelay),以及多數(shù)供應(yīng)商特定協(xié)議等。TCP/IP充分支持所有通用第2層協(xié)議。TCP/IP組中的應(yīng)用程序通常直接運行于傳輸層協(xié)2.2.2TCP/IP的特點TCP/IP協(xié)議的核心部分是傳輸層協(xié)議(TCP、UDP),網(wǎng)絡(luò)層協(xié)議(IP)和物理接口層,這三層通常是在操作系統(tǒng)兩種形式:一、是由內(nèi)核心直接提供的系統(tǒng)調(diào)用;二、使用以庫函數(shù)方式提供的各種函數(shù)。前者為核內(nèi)設(shè)計,后者為核外設(shè)計。用戶服務(wù)要通過核外的應(yīng)用程序才能設(shè)計,所以要使用套接字(socket)來設(shè)計。2.2基本套接字下面給出幾個基本的套接字,這些套接字的使用貫穿了網(wǎng)絡(luò)編程的始末,主導(dǎo)了數(shù)據(jù)通信的過程。這將在以后的篇幅中會給出更詳細的使用說明。1、創(chuàng)建套接字socket()功能:使用前創(chuàng)建一個新的套接字格式:SOCKETPASCALFARsocket(intaf,inttype,intprocotol);參數(shù):af:通信發(fā)生的區(qū)域type:要建立的套接字類型procotol:使用的特定協(xié)議2、指定本地地址bind()功能:將套接字地址與所創(chuàng)建的套接字號聯(lián)系起來。sockaddrFAR*name,intnamelen);參數(shù):s:是由socket()調(diào)用返回的并且未作連接的套接字描述符(套接字號)。其它:沒有錯誤,bind()返回0,否則SOCKET_ERROR3、建立套接字連接connect()和accept()功能:共同完成連接工作4、監(jiān)聽連接——listen()功能:用于面向連接服務(wù)器,表明它愿意接收連接。backlog);5、數(shù)據(jù)傳輸——send()與recv()功能:數(shù)據(jù)的發(fā)送與接收6、多路復(fù)用——select()功能:用來檢測一個或多個套接字狀態(tài)。7、關(guān)閉套接字——closesocket()功能:關(guān)閉套接字s2.3客戶機/服務(wù)器模式在TCP/IP網(wǎng)絡(luò)中兩個進程間的相互作用的主機模式是客戶機/服務(wù)器模式(Client/Servermodel)。該模式的建立基于以下兩點:1、非對等作用;2、通信完全是異步的??蛻魴C/服務(wù)器模式在操作過程中采取的是主動請示方式:首先服務(wù)器方要先啟動,并根據(jù)請示提供相應(yīng)服務(wù),過程如下所示:1、打開一通信通道并告知本地主機,它愿意在某一個公認地址上接收客戶請求。2、等待客戶請求到達該端口。3、接收到重復(fù)服務(wù)請求,處理該請求并發(fā)送應(yīng)答信號。4、返回第二步,等待另一客戶請求5、關(guān)閉服務(wù)器??蛻舴剑?、打開一通信通道,并連接到服務(wù)器所在主機的特定端2、向服務(wù)器發(fā)送服務(wù)請求報文,等待并接收應(yīng)答;繼續(xù)3、請求結(jié)束后關(guān)閉通信通道并終止。2.4.1VC++對網(wǎng)絡(luò)編程的支持有socket支持,WinInet支持,MAPI和ISAPI支持等。其中,SocketsAPI是TCP/IP網(wǎng)絡(luò)環(huán)境里,也是Internet上進行開發(fā)最為通用的API。最早美國加州大學(xué)Berkeley分校在UNIX下為BerkeleySocket接口(套接字)。在桌面操作系統(tǒng)進入Windows時代后,仍然繼承了Socket方法。在TCP/IP網(wǎng)絡(luò)通信環(huán)境下,Socket數(shù)據(jù)傳輸是特殊的I/O,它也相當于文件描述符,具有一個類似于打開文件的函數(shù)調(diào)用-socket()??梢赃@樣理解:Socket實際上是一個通信端點,通過它,用戶的Socket程序可以通過網(wǎng)絡(luò)和其他的Socket應(yīng)用程序通信。Socket存在于一個"通信域"(為描述一般的線程如何通過Socket進行通信而引入的抽象概念)里,并且與另一個域的Socket交換數(shù)據(jù)。Socket有三類。第是SOCK__STREAM(流式),提供面向連接的可靠的通信服務(wù),比如telnet,http。第二種是據(jù)報),提供無連接不可靠的通信,比如UDP。第三種是SOCK__RAW(原始),主要用于協(xié)議的開發(fā)和測試,支持通信底層操作,比如對IP和ICMP的直接訪問。2.4.11、異步選擇機制:選擇,當使用它登記網(wǎng)絡(luò)事件發(fā)生時,應(yīng)用程序相應(yīng)窗口函數(shù)將收到一個消息,消息中指示了發(fā)生的網(wǎng)絡(luò)事件,以及與事件相關(guān)的一些信息。WSAAsyncSelect(),用它來注冊應(yīng)用程序感興趣的網(wǎng)絡(luò)事件,當這些事件發(fā)生時,應(yīng)用程序相應(yīng)的窗口函數(shù)將收到一個消息。FD__READ期望在套接字上收到數(shù)據(jù)(即讀準備好)時接到FD__WRITE期望在套接字上可發(fā)送數(shù)據(jù)(即寫準備好)時接到通知例如:我們要在套接字讀準備好或?qū)憸蕚浜脮r接到通知,語句如下:rc=WSAAsyncSelect(s,hWnd,wMsg,FD__READ|FD__WRITE);如果我們需要注銷對套接字網(wǎng)絡(luò)事件的消息發(fā)送,只要將lEvent設(shè)置為0。2、異步請求函數(shù)在BerkeleySockets中請求服務(wù)是阻塞的,的異步請求函數(shù)(WSAAsyncGetXByY();)。3網(wǎng)絡(luò)通信模塊分析3.1網(wǎng)絡(luò)通信程序設(shè)計過程在調(diào)用了sockets的啟動函數(shù)WSACleanup()之后才WSAStartup()是為了建立與WindowsSocketsDLL的連接,因此在VC++6.0所建立工程的工程設(shè)置中的連接的庫模塊必須進行設(shè)置,在其中的link欄內(nèi)的對象/庫模塊中加入“Ws2__32.lib”,才能真正建立建立與SocketsDLL的連接。其他的Socket系統(tǒng)調(diào)用包括創(chuàng)建Socket、將創(chuàng)建的Socket與本地端口綁定、建立Socket連接服務(wù)器、監(jiān)聽是否有連接、請求數(shù)據(jù)的可控緩沖發(fā)送和可控緩沖接收,到最后關(guān)閉Socket。具體流程圖如1所示。首先在服務(wù)器方,利用socket()函數(shù)建立流式套接字,返回套接字號s,接著利用bind()函數(shù)將套接字s與本地地址綁定,緊接著利用listen(0函數(shù)通知TCP,監(jiān)聽客戶方,服務(wù)器準備接收連接,沒有連接的話,服務(wù)器方通過closesocket()關(guān)閉套接字s,服務(wù)結(jié)束。有連接的話,在客戶方,通過socket()函數(shù)建立流式套接字s,此時在服務(wù)器方,建立連接,通過accept()返回,得到新的套接字ns,客戶方通過connect()將套接字s與遠程地址連接,此時服務(wù)器方/客戶方在ns/s上讀/寫數(shù)據(jù),直到交換完成。交換完成后,服務(wù)器方/客戶方關(guān)閉套接字ns/s,最后服務(wù)器方通過closesocket()關(guān)閉最初套接字s,服務(wù)結(jié)束。具體設(shè)計過程如圖1所示,具體設(shè)計代碼將會在下面介紹:客戶方服務(wù)器方客戶方3.2.1通信設(shè)計代碼分析。WSAStartup()和終止函數(shù)WSACleanup()是必須使用啟動函數(shù)必須是第一個使用的函數(shù),而且它允許指定的一些技術(shù)細節(jié)。本結(jié)構(gòu)如下:wVersionRequested,其中wVersionRequested保證SOCKETS可正常運行的接下來就是對SOCKET的設(shè)置,本程序使用的數(shù)據(jù)傳輸模另外,發(fā)生在相應(yīng)Socket上的各種網(wǎng)絡(luò)異步事件的處理函數(shù),其中OnAccept傳進來的參數(shù)是服務(wù)器端創(chuàng)建的套接字,OnClose()、OnReceive()和OnSend()傳進來的參數(shù)均是服務(wù)器端在接受客戶端連接時新創(chuàng)建的用與此客戶端通信的Socket。定義OnAccept()函數(shù)來接受連接請求,并保存與發(fā)起連接請求的客戶端進行通信Socket,為新的socket注冊異步事件;定義OnSend()函數(shù)來給客戶端發(fā)數(shù)據(jù)時做相關(guān)預(yù)處理;定義OnReceive()函數(shù)來讀出網(wǎng)絡(luò)緩沖區(qū)中的數(shù)據(jù)包;定義OnClose()函數(shù)來結(jié)束與接下來講講客戶端方。首先初始化網(wǎng)絡(luò)部分,帶不需要將套接字設(shè)置為監(jiān)聽模FD_CONNECT事件,因此沒有OnAccept()函數(shù),但增加了OnConnect()函數(shù)。向服務(wù)器發(fā)出連接請求時,使用connect()函數(shù),連接成功后,會響應(yīng)到OnConnect()函數(shù)中。下面是OnConnect()函數(shù)的定義,傳進來的參數(shù)是客戶端Socket和服務(wù)器端發(fā)回來的連接是否成功的標另外定義OnReceive()函數(shù)來處理網(wǎng)絡(luò)數(shù)據(jù)到達事件;定義OnSend()函數(shù)來處理發(fā)送網(wǎng)絡(luò)數(shù)據(jù)事件;定義OnClose()函數(shù)來處理服務(wù)器的關(guān)閉事件。3.2.2數(shù)據(jù)傳輸代碼分析在服務(wù)器方用WSASend()函數(shù)來發(fā)送數(shù)據(jù),使用WSARecv()來接收數(shù)據(jù)。Sockets不鼓勵用戶使用阻塞方式傳輸數(shù)據(jù),因為那樣可能會阻塞整個linus環(huán)境。數(shù)返回所發(fā)送的字節(jié)數(shù)。(注意該數(shù)目可能小于len參數(shù)所指定的值)。如果連接結(jié)束,則返回0。請注意在這種情況下完成指示(啟動指定的完成例程或設(shè)置一個事件對象)將早已發(fā)生。否則的話,將返回SOCKET_ERROR錯誤,應(yīng)用程序可通過WSAGetLastError()來獲取相應(yīng)的錯誤代碼,返回-1。錯誤代碼WSA_IO_PENDING表示重疊操作成功啟動,過后將有完成指示。任何其他的錯誤表示重疊操作未能成功地啟動,以后也不會有完成指示。數(shù)返回所接收的字節(jié)數(shù)。如果連接結(jié)束,則返回0。請注意在這種情況下完成指示(啟動指定的完成例程或設(shè)置一SOCKET_ERROR錯誤,應(yīng)用程序可通過WSAGetLastError()來獲取相應(yīng)的錯誤代碼。錯誤代碼WSA_IO_PENDING表示重疊操作成功啟動,過后將有完成指示。任何其他的錯誤表示重疊操作未能成功地啟動,以后也不會有完成指示。若無錯誤發(fā)生,send()返回所發(fā)送數(shù)據(jù)的總數(shù)(請注意這個數(shù)字可能小于len中所規(guī)定的大?。?。否則的話,WSAGetLastError()獲取相應(yīng)錯誤代碼。若無錯誤發(fā)生,recv()返回讀入的字節(jié)數(shù)。如果連接已中止,返回0。否則的話,返回SOCKET_ERROR錯誤,應(yīng)用程序可通過WSAGetLastError()獲取相應(yīng)錯誤代碼。4界面模塊分析4.1服務(wù)器端界面模塊分析在服務(wù)器界面設(shè)計上設(shè)計很簡單,通過一個列表框來按鈕關(guān)閉服務(wù)器。如果服務(wù)器啟動沒有什么問題就會在列表框中顯示“創(chuàng)建服務(wù)器成功”字樣。當用戶登陸,就會在列表框中顯示如“連1001”三行字樣,如果登陸成功,在列表框中就會顯示“接受:LIST”字樣,獲取在線用戶列表。如果登陸失敗,在列表框中就會顯示如“127.0..0.1斷開”字樣。在注冊用戶的時候,如果注冊成功,在列表框中就會顯示如“ADDUSER1001SUCCESS”,如果失敗,就會在列表框中顯示“ADDUSERFAIL”當修改用戶信息的時候就會在列表框中顯示“接受:GINF1001”,如果修改成功,就會在列表框4.2客戶端界面模塊分析客戶端界面主要包括用戶登陸界面、用戶注冊界面、在線用戶列表界面、用戶聊天界面。其中客戶端界面設(shè)計思路,主要設(shè)計過程如圖3所用戶注冊用戶登陸獲得在線用戶用戶聊天用戶注冊用戶登陸獲得在線用戶用戶聊天增加好友信息圖3客戶端界面輪廓4.2.1用戶登陸界面分析用戶登陸界面如圖4所示如圖4顯示,當單擊“登陸”按鈕進行用戶的登陸:當用戶號碼未填寫時,會提示“請輸入用戶號碼”。當用戶密碼未填寫時,會提示“請輸入用戶密碼”。當服務(wù)器IP未填寫或格式不正確,會提示“請?zhí)顚懻_的服務(wù)器地址”。勾選“保護密碼”,在下次打開該登陸界面時,在輸入框里自動顯示上次登陸時輸入的三項信息。用戶信息填寫完畢后,按“登陸”按鈕,如果與服務(wù)器連接失敗,就會提示如“連接失敗:不能連接上的服務(wù)器”登陸成功就會進入在線用戶列表界面,如圖6所示.。單擊“取消”按鈕退出登陸界面。單擊“注冊向?qū)А卑粹o就可以進入用戶注冊界面,如4.2.2用戶聊天界面首先選擇你要聊天的好友。通過“發(fā)送”按鈕發(fā)送你要講的內(nèi)容,通過“聊天記錄”按鈕/“關(guān)閉記錄”按鈕來顯示/關(guān)閉聊天記錄。單擊“傳送文件”按鈕,跳出文件目錄,讓你選擇你要傳送的文件。如圖10所示。5數(shù)據(jù)庫模塊分析5.1數(shù)據(jù)庫的選擇選擇一個好的應(yīng)用程序?qū)σ粋€應(yīng)用系統(tǒng)來說是非常重要的。應(yīng)用系統(tǒng)應(yīng)該選擇哪種數(shù)據(jù)庫要根據(jù)系統(tǒng)的要求和企業(yè)的實際情況而定。目前,所有流行的幾種大型關(guān)系型數(shù)據(jù)庫有MSSQLServer、Oracle、DB2等。本系統(tǒng)使用MSSQLServer,主要有以下幾點理由:2)MSSQLServer有存儲過程、視圖等方便5.2數(shù)據(jù)庫訪問方法本程序示通過用ADO來訪問數(shù)據(jù)庫,分別用ADO訪問了數(shù)據(jù)庫的各個對象及各方法。5.3ADO數(shù)據(jù)庫編程5.3.1ADO與ADO接口簡介ADO是Microsoft為最新和最強大的數(shù)據(jù)訪問范例OLEDB而設(shè)計的,是一個便于使用的應(yīng)用程序?qū)咏涌凇DO使您能夠編寫應(yīng)用程序以通過OLE.DB提供者訪問和操作數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)。OLEDB是一組”組件對象模型”(COM)接口,是新的數(shù)據(jù)庫低層接口,它封裝了ODBC的功能,并以統(tǒng)一的方式訪問存儲在不同信息源中Access)策略的技術(shù)基礎(chǔ)。OLEDB為任何數(shù)據(jù)源提供了高性能的訪問,這些數(shù)據(jù)源包括關(guān)系和非關(guān)系數(shù)據(jù)庫、電子郵件和文件系統(tǒng)、文本和圖形、自定義業(yè)務(wù)對象等等。OLEDB應(yīng)用程序編程接口的目的是為各種應(yīng)用程序提供最佳的功能,它并不符合簡單化的要求。您需要的API應(yīng)該是一座連接應(yīng)用程序和OLEDB的橋梁,這就是ActiveXDataObjects(ADO)。ADO庫包含三個基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。_ConnectionPtr接口返回一個記錄集或一個空指針。通常使用它來創(chuàng)建一個數(shù)據(jù)連接或執(zhí)行一條不返回任_ConnectionPtr接口返回一個記錄集不是一個好的使用方法。對于要返回記錄的操作通常用_RecordserPtr來設(shè)計。而用_ConnectionPtr操作時要想得到記錄條數(shù)得遍歷所有記錄,而用_RecordserPtr時不需要。_CommandPtr接口返回一個記錄集。它提供了簡單的方法來執(zhí)行返回記錄集的存儲過程和SQL語句。在使用_CommandPtr接口時,你可以利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用連接串。如果你只執(zhí)行一次或幾次數(shù)據(jù)訪問操作,后者是比較好的選擇。但如果你要頻繁訪問數(shù)據(jù)庫,并要返回很多記錄集,那么,你應(yīng)該使用全局_ConnectionPtr接口創(chuàng)建一個數(shù)據(jù)連接,然后使用_CommandPtr接口執(zhí)行存儲過程和SQL_RecordsetPtr是一個記錄集對象。與以上兩種對象相比,它對記錄集提供了更多的控制功能,如記錄鎖定,游標控制等。同_CommandPtr接口一樣,它不一定要使用一個已經(jīng)創(chuàng)建的數(shù)據(jù)連接,可以用一個連接串代替連接指針賦給_RecordsetPtr的connection成員變量,讓它自己創(chuàng)建數(shù)據(jù)連接。如果你要使用多個記錄集,最好的方法是同Command對象一樣使用已經(jīng)創(chuàng)建了數(shù)據(jù)連接的全局_ConnectionPtr接口,然后使用_RecordsetPtr執(zhí)行存儲在下面的代碼分析中將詳細介紹ADO怎樣利用這幾個接口來對數(shù)據(jù)庫SQL進行操作。5.3.2使用ADO操作SQL代碼分析使用ADO前必須在工程的stdafx.h頭文件里用直接引入符號#import引入ADO庫文件,以使編譯器能正確編譯。這行語句聲明在工程中使用ADO,但不使用ADO的名字空間,并且為了避免常數(shù)沖突,將常數(shù)EOF改名為adoEOF?,F(xiàn)在不需添加另外的頭文件,就可以使用ADO接2、初始化OLE/COM庫環(huán)境用程序在調(diào)用ADO前,必須初始化OLE/COM庫環(huán)境。在InitInstance成員函數(shù)里初始化OL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國緊湊型真空干燥箱行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球高純渦輪分子泵行業(yè)調(diào)研及趨勢分析報告
- 自治物業(yè)管理合同
- 工廠員工勞動合同范本
- 展柜采購合同
- 農(nóng)場承包合同協(xié)議書
- 建筑工程合同的簡述
- 杭州市二手房買賣合同
- 砌體施工勞務(wù)合同
- 2025抵押擔保借款合同
- 醫(yī)院課件:《食源性疾病知識培訓(xùn)》
- 浙教版七年級數(shù)學(xué)下冊單元測試題及參考答案
- 華為人才發(fā)展與運營管理
- 卓有成效的管理者讀后感3000字
- 七年級下冊-備戰(zhàn)2024年中考歷史總復(fù)習(xí)核心考點與重難點練習(xí)(統(tǒng)部編版)
- 巖土工程勘察服務(wù)投標方案(技術(shù)方案)
- 實驗室儀器設(shè)備驗收單
- 新修訂藥品GMP中藥飲片附錄解讀課件
- 蒙特利爾認知評估量表北京版
- 領(lǐng)導(dǎo)干部個人有關(guān)事項報告表(模板)
- GB/T 7631.18-2017潤滑劑、工業(yè)用油和有關(guān)產(chǎn)品(L類)的分類第18部分:Y組(其他應(yīng)用)
評論
0/150
提交評論