freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于vc的人事管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(doc畢業(yè)設(shè)計(jì)論文)(編輯修改稿)

2024-07-20 18:43 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 表的類(lèi)用來(lái)管理用戶(hù)信息的數(shù)據(jù)庫(kù)操作。定義用戶(hù)信息的基本項(xiàng):用戶(hù)名,密碼。構(gòu)造和析構(gòu)用戶(hù)信息表。讀取和設(shè)置成員變量。數(shù)據(jù)庫(kù)操作:判斷指定用戶(hù)名是否存在;獲取用戶(hù)名,更新密碼。 5 系統(tǒng)實(shí)現(xiàn): 1. 生成應(yīng)用程序框架并初始化OLE/COM庫(kù)環(huán)境 創(chuàng)建一個(gè)標(biāo)準(zhǔn)的MFC AppWizard(exe)應(yīng)用程序,然后在使用ADO數(shù)據(jù)庫(kù)的InitInstance函數(shù)中初始化OLE/COM庫(kù)(因?yàn)锳DO庫(kù)是一個(gè)COM DLL庫(kù))。本例為:  BOOL CAdotestDlg::OnInitDialog() { ::CoInitialize(NULL)。 //初始化OLE/COM庫(kù)環(huán)境 }   程序最后要調(diào)用 ::CoUninitialize();//釋放程序占用的COM 資源。  另外:m_pRecordsetClose()。 注意?。。〔灰啻侮P(guān)閉?。。。。。。。。。。。_pConnectionClose()。m_pRecordset = NULL。m_pConnection = NULL。   2. 引入ADO庫(kù)文件  ?。mport引入ADO庫(kù)文件,以使編譯器能正確編譯。代碼如下:import C:\Program Files\mon files\system\ado\ no_namespace rename(EOF,adoEOF)  ADO類(lèi)的定義是作為一種資源存儲(chǔ)在ADO DLL()中,在其內(nèi)部稱(chēng)為類(lèi)型庫(kù)。類(lèi)型庫(kù)描述了自治接口,以及C++使用的COM vtable接口。當(dāng)使用#import指令時(shí),在運(yùn)行時(shí)Visual C++需要從ADO DLL中讀取這個(gè)類(lèi)型庫(kù),并以此創(chuàng)建一組C++頭文件。 ,讀者可以在項(xiàng)目的目錄下找到這兩個(gè)文件。在C++程序代碼中調(diào)用的ADO類(lèi)要在這些文件中定義。   程序的第三行指示ADO對(duì)象不使用名稱(chēng)空間。在有些應(yīng)用程序中,由于應(yīng)用程序中的對(duì)象與ADO中的對(duì)象之間可能會(huì)出現(xiàn)命名沖突,所以有必要使用名稱(chēng)空間。如果要使用名稱(chēng)空間,則可把第三行程序修改為: rename_namespace(AdoNS)。第四行代碼將ADO中的EOF(文件結(jié)束)更名為adoEOF,以避免與定義了自己的EOF的其他庫(kù)沖突。   3.利用智能指針進(jìn)行數(shù)據(jù)庫(kù)操作   在CaboutDlg頭文件中定義兩個(gè)ADO智能指針類(lèi)實(shí)例,并在對(duì)話框中加入一個(gè)ListCtrl。class CAdotestDlg : public CDialog{ _ConnectionPtr m_pConnection。 _RecordsetPtr m_pRecordset?! ?ClistCtrl m_List。 ......}   ADO庫(kù)包含三個(gè)智能指針:_ConnectionPtr、_CommandPtr和_RecordsetPtr。  _ConnectionPtr通常被用來(lái)創(chuàng)建一個(gè)數(shù)據(jù)連接或執(zhí)行一條不返回任何結(jié)果的SQL語(yǔ)句,如一個(gè)存儲(chǔ)過(guò)程?! CommandPtr返回一個(gè)記錄集。它提供了一種簡(jiǎn)單的方法來(lái)執(zhí)行返回記錄集的存儲(chǔ)過(guò)程和SQL語(yǔ)句。在使用_CommandPtr接口時(shí),可以利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用連接串?! RecordsetPtr是一個(gè)記錄集對(duì)象。與以上兩種對(duì)象相比,它對(duì)記錄集提供了更多的控制功能,如記錄鎖定、游標(biāo)控制等。   在使用ADO程序的事件響應(yīng)中OnButton1加入以下代碼: void CAdotestDlg::OnButton1() {()。(_uuidof(Connection))。 //初始化Connection指針(_uuidof(Recordset))。//初始化Recordset指針try{ m_pConnectionOpen(DSN=ADOTest,0)。 //連接叫作ADOTest的ODBC數(shù)據(jù)源 //注意:這是連接不需要用戶(hù)ID或密碼的open 函數(shù) // 否則形式為 Open(DSN=test。uid=sa。pwd=123。,0)。 // 執(zhí)行SQL語(yǔ)句得到一個(gè)記錄集把其指針賦值給m_pRecordset CString strSql=select * from middle。 BSTR bstrSQL = ()。 m_pRecordsetOpen(bstrSQL,(IDispatch*)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText)。 //adOpenDynamic:動(dòng)態(tài) adLockOptimistic樂(lè)觀封鎖法 adCmdText:文本查詢(xún)語(yǔ)句 while(!m_pRecordsetadoEOF)//遍歷所有記錄 { //取紀(jì)錄字段值方式之一 _variant_t TheValue。 //VARIANT數(shù)據(jù)類(lèi)型 TheValue = m_pRecordsetGetCollect(BIG_NAME)。//得到字段BIG_NAME的值 if(!=VT_NULL) ((char*)_bstr_t(TheValue))。 //將該值加入到列表控件中 //取紀(jì)錄字段值方式之二 // _bstr_t TheValue1=m_pRecordsetFieldsGetItem(BIG_NAME)Value。 // CString temp=()。 // (temp)。 //數(shù)據(jù)類(lèi)型轉(zhuǎn)換 _variant_t vUsername,vBirthday,vID,vOld。 TRACE(id:%d,姓名:%s,年齡:%d,生日:%s\r\n, ,(LPCTSTR)(_bstr_t)vUsername,(LPCTSTR)(_bstr_t)vBirthday)。 m_pRecordsetMoveNext()。//轉(zhuǎn)到下一條紀(jì)錄 } m_pRecordsetClose()。 m_pConnectionClose()。}catch (__error e)//異常處理{ AfxMessageBox(())。}m_pRecordsetClose()。 //注意?。。〔灰啻侮P(guān)閉?。。?!否則會(huì)出錯(cuò)m_pConnectionClose()。m_pRecordset = NULL。m_pConnection = NULL。 }   程序中通過(guò)_variant_t和_bstr_t轉(zhuǎn)換COM對(duì)象和C++類(lèi)型的數(shù)據(jù), _variant_t類(lèi)封裝了OLE自治VARIANT數(shù)據(jù)類(lèi)型。在C++中使用_variant_t類(lèi)要比直接使用VARIANT數(shù)據(jù)類(lèi)型容易得多。   好,編譯后該程序就能運(yùn)行了,但記住運(yùn)行前要?jiǎng)?chuàng)建一個(gè)叫ADOTest的ODBC數(shù)據(jù)源。該程序?qū)驯韒iddle中的BIG_NAME字段值顯示在列表控件中。 4.執(zhí)行SQL命令并取得結(jié)果記錄集   為了取得結(jié)果記錄集,我們定義一個(gè)指向Recordset對(duì)象的指針:_RecordsetPtr m_pRecordset。并為其創(chuàng)建Recordset對(duì)象的實(shí)例: ()。SQL命令的執(zhí)行可以采用多種形式,下面我們一進(jìn)行闡述?! ?1)利用Connection對(duì)象的Execute方法執(zhí)行SQL命令  Execute方法的原型如下所示: _RecordsetPtr Connection15::Execute ( _bstr_t CommandText, VARIANT * RecordsAffected, long Options ) 其中CommandText是命令字串,通常是SQL命令。參數(shù)RecordsAffected是操作完成后所影響的行數(shù), 參數(shù)Options表示CommandText中內(nèi)容的類(lèi)型,Options可以取如下值之一:adCmdText:表明CommandText是文本命令adCmdTable:表明CommandText是一個(gè)表名adCmdProc:表明CommandText是一個(gè)存儲(chǔ)過(guò)程adCmdUnknown:未知 Execute執(zhí)行完后返回一個(gè)指向記錄集的指針,下面我們給出具體代碼并作說(shuō)明。 _variant_t RecordsAffected。 ///執(zhí)行SQL命令:CREATE TABLE創(chuàng)建表格users,users包含四個(gè)字段:整形ID,字符串username,整形old,日期型birthday m_pConnectionExecute(CREATE TABLE users(ID INTEGER,username TEXT,old INTEGER,birthday DATETIME), amp。RecordsAffected, adCmdText)。 ///往表格里面添加記錄 m_pConnectionExecute(INSERT INTO users(ID,username,old,birthday) VALUES(1,39。39。39。39。Washington39。39。39。39。,25,39。39。39。39。1970/1/139。39。39。39。),amp。RecordsAffected,adCmdText)。 ///將所有記錄old字段的值加一 m_pConnectionExecute(UPDATE users SET old = old+1,amp。RecordsAffected,adCmdText)。///執(zhí)行SQL統(tǒng)計(jì)命令得到包含記錄條數(shù)的記錄集 m_pRecordset = m_pConnectionExecute(SELECT COUNT(*) FROM users,amp。RecordsAffected,adCmdText)。 _variant_t vIndex = (long)0。 _variant_t vCount = m_pRecordsetGetCollect(vIndex)。///取得第一個(gè)字段的值放入vCount變量 上兩句可以寫(xiě)成_variant_t vCount = m_pRecordsetGetCollect((_variant_t)((long)0))。 m_pRecordsetClose()。///關(guān)閉記錄集 CString message。 (共有%d條記錄,)。 AfxMessageBox(message)。///顯示當(dāng)前記錄條數(shù)(2)利用Command對(duì)象來(lái)執(zhí)行SQL命令 _CommandPtr m_pCommand。()。_variant_t vNULL。 = VT_ERROR。 = DISP_E_PARAMNOTFOUND。///定義為無(wú)參數(shù)m_pCommandActiveConnection = m_pConnection。///非常關(guān)鍵的一句,將建立的連接賦值給它m_pCommandCommandText = SELECT * FROM users。///命令字串m_pRecordset = m_pCommandExecute(amp。vNULL,amp。vNULL,adCmdText)。///執(zhí)行命令,取得記錄集  在這段代碼中我們只是用Command對(duì)象來(lái)執(zhí)行了SELECT查詢(xún)語(yǔ)句,Command對(duì)象在進(jìn)行存儲(chǔ)過(guò)程的調(diào)用中能真正體現(xiàn)它的作用。下次我們將詳細(xì)介紹。   (3)直接用Recordset對(duì)象進(jìn)行查詢(xún)?nèi)〉糜涗浖 ?shí)例—— void CGmsaDlg::OnDBSelect() { // TODO: Add your control notification handler code here _RecordsetPtr Rs1。 //定義Recordset對(duì)象 _bstr_t Connect(DSN=GMS。UID=sa。PWD=。)。//定義連接字符串 _bstr_t Source (SELECT count(*) FROM )。 //要執(zhí)行的SQL語(yǔ)句 ::CoInitialize(NULL)。 //初始化Rs1對(duì)象 HRESUL hr = ( __uuidof( Recordset ) )。 //省略對(duì)返回值hr的判斷 Rs1Open( Source, Connect, adOpenForwardOnly,160
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1