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

正文內容

某學院倉庫管理系統(tǒng)設計-預覽頁

2025-05-03 00:58 上一頁面

下一頁面
 

【正文】 de VARCHAR2(10) NOT NULL,department VARCHAR2(10) NOT NULL,need_number NUMBER(6) NULL,begin_date DATE NULL,end_date DATE NULL,)TABLESPACE ”USER_DATA”。四、系統(tǒng)實現(xiàn)創(chuàng)建應用程序此倉庫系統(tǒng)應用程序的創(chuàng)建步驟如下:⑴、選擇菜單“File|New”中的“新建項目”選項卡中“MFC AppWizard(exe)”,設置合適的目錄和項目名,比如“E:\Projects”目錄下的“DMS”項目。至此一個基于對話框的應用程序框架就搭建好了。define DATEFMT CString(39。注意第3行,這里定義了一個inline函數(shù)TESTHER,它的作用是測試COM函數(shù)的返回值,在這個返回值包含一個錯誤的時候,拋出一個__error型的異常。第4行定義了一個宏。這是一個在開發(fā)的時候需要注意的細節(jié),后面還會具體提到。ADO的底層是OLE DB,他本身則是對OLE DB的一個COM包裝。 IADORecordBinding *picRs = NULL。 pRst = m_DBCntExecute(strSQL, NULL, adCmdText)。rs))。 (i, 2, )。 (i, 6, )。 pRstClose()。 return。它一個帶有字符計數(shù)值的字符串。它保存的在字符是所謂的“寬字符”(Wide character)。Bstr=SysAllocString(str_)釋放一個SBSTR指針時,則調用SysFreeString函數(shù)。IADORecordBingding *picRs=NULL。ULONG AddRef()。如上例中,pRst時某一個COM對象提供的一個接口指針,程序員從某本書上(比如MSDN)知道了這個對象一定擁有一個IADORecordBinding型的接口,于是調用上面那行代碼,得到了這個IADORecordBinding接口的指針。得到了一個接口指針,開始使用一個COM對象,就要調用它的AddRef方法增加它內部的一個引用計數(shù);使用完之后則調用Release方法減少這個計數(shù)。如果忽略了這一句,就會造成一個COM對象及他所掌握的資源不能被正確釋放。這就用到了“智能指針這個工具。這一句創(chuàng)建了一個Recordset型的COM對象,并對智能指針賦值。它通過重載運算符,使得它在使用時,和普通的接口指針毫無二致。先定義一個名為Clogmngr的類:// //定義一個Log管理器class CLogMngr {public: CLogMngr()。 user) { m_DBCnt = nt。}。下面是CLogMngr::AddLog內部實現(xiàn)的詳細過程。%s39。%d%d%d %d:%d:%d39。 } catch(__erroramp。 } return true。②、讀日志模塊在項目資源中加入一個對話框,它包含了一個列表框控件,幾個編輯框和兩個按鈕。但是主意最好不要用那個“Delete * FROM HOWDO”這樣的語句,而是使用下面的“TRUNCATE TABLE”語句,它的速度比Delete快。 e) { AfxMessageBox(())。最后整個船體的外表如圖16所示。它的目的是彈出圖17所示的登錄界面,并從中獲取一個有效的用戶名。 CString sql_。 _bstr_t sql=sql_。 } catch(__erroramp。// //void CDMSDlg::OnDestroy() { CDialog::OnDestroy()。注意到按鈕的排布時按照所處的模塊分類的。m_logMngr)。}從上面的代碼看出,當單擊“設備代碼”按鈕時,程序構造一個CDlgDevcode型對話框實例,通過它的Setup函數(shù)賦給它一個數(shù)據(jù)庫連接指針和一個日志管理對象實例的指針,然后主對話框隱藏,直到子對話框事物處理結束。圖19 設備代碼管理窗口這里用一個列表框控件顯示讀取的數(shù)據(jù)記錄。 (1,設備名)。 int wid = 。 RefreshData()。 m_code = (i,0)。}其余程序清單// // : implementation fileinclude include include ifdef _DEBUGdefine new DEBUG_NEWundef THIS_FILEstatic char THIS_FILE[] = __FILE__。 m_log = NULL。 DDX_Text(pDX, IDC_EDIT_DCNAME, m_name)。 _RecordsetPtr MySet。 _variant_t Holder。 if(!=VT_NULL) (i, 1, (char*)(_bstr_t)Holder)。 (TRUE)。 (0,設備號)。rect)。 (LVS_EX_FULLROWSELECT)。 m_code = (i,0)。}void CDlgDevcode::OnBtnDcadd() { UpdateData()。,39。 try { m_DBCntExecute(sql,NULL,adCmdText)。 } m_logAddLog(添加設備記錄。 CString sql_。 _bstr_t sql = sql_。 return。 }void CDlgDevcode::OnBtnDcupd() { UpdateData()。 WHERE CODE=39。 try { m_DBCntExecute(sql,NULL,adCmdText)。 } m_logAddLog(更新設備記錄。VARIANT類型是COM技術中很重要的一種數(shù)據(jù)類型,經常用于在組件之間傳遞類型不定的參數(shù)。 Unsigned short wReserved3。 //VT_I4 …… …… Unsigned long FAR* pulVal。使用的時候可以用強制類型將VARIANT型變量轉換成多種類型,如上面列出的Byte\Short\Long\Unsigned int FAR 等。庫存管理窗口的創(chuàng)建這部分用于Device表的管理。若操作有誤,如選擇了一個表中已經存在的設備,代碼會拋出異常,程序捕獲異常后,向用戶提示。 (1,現(xiàn)存數(shù)量)。 RECT rect。 (0,wid/5)。 (4,wid/5)。 //Interface Pointer declared.(VC++ Extensions) CDevCodeRs rs。 TESTHR(pRstQueryInterface(__uuidof(IADORecordBinding),(LPVOID*)amp。 int i = 0。 pRstClose()。 return TRUE。同時在資源設計時將這個組合框的屬性設置為“Drop List”,這樣就能保證用戶輸入的設備編號一定是有效合法的。前者起到了管理后者的作用。 CString sql_。 IADORecordBinding *picRs = NULL。 TESTHR(pRstQueryInterface(__uuidof(IADORecordBinding),(LPVOID*)amp。 strcpy(,m_code)。 = m_number。rs))。 e) { AfxMessageBox(())。 RefreshData()。 _bstr_t sql = sql_。 return。}針對刪除操作的特點,使用SQL語句完成這項功能比較簡潔。綁定device_in表大代碼如下:class CDevInRs : public CADORecordBinding{BEGIN_ADO_BINDING(CDevInRs) //Column empid is the 1st field in the recordset ADO_VARIABLE_LENGTH_ENTRY2(1, adVarChar, m_sz_code, sizeof(m_sz_code), m_sts_code, TRUE) ADO_VARIABLE_LENGTH_ENTRY2(2, adVarChar, m_sz_date, sizeof(m_sz_date), m_sts_date, TRUE) ADO_VARIABLE_LENGTH_ENTRY2(3, adVarChar, m_sz_provider, sizeof(m_sz_provider), m_sts_provider, TRUE) ADO_VARIABLE_LENGTH_ENTRY2(4, adVarChar, m_sz_tel, sizeof(m_sz_tel), m_sts_tel, TRUE) ADO_VARIABLE_LENGTH_ENTRY2(5, adSingle, m_f_number, sizeof(m_f_number), m_sts_number, TRUE) ADO_VARIABLE_LENGTH_ENTRY2(6, adSingle, m_f_price, sizeof(m_f_price), m_sts_price, TRUE) ADO_VARIABLE_LENGTH_ENTRY2(7, adVarChar, m_sz_buyer, sizeof(m_sz_buyer), m_sts_buyer, TRUE)END_ADO_BINDING()public: CHAR m_sz_code[10]。 float m_f_number。 ULONG m_sts_date。 ULONG m_sts_price。 values)。FillFidldArray函數(shù)為這種使用方式提供了方便。在用戶填寫玩這個入庫表格之后單擊“確定”按鈕,就將向數(shù)據(jù)庫內的device_in表加入一條設備入庫信息,同時還要修改現(xiàn)有庫存 表device中的相關數(shù)據(jù)。 } if (!UpdateData()) return。 pRstOpen(device_in,_variant_t((IDispatch *) m_DBCnt, true),adOpenKeyset,adLockOptimistic,adCmdTable)。 strcpy(, m_tel)。 COleSafeArray vaFieldlist, vaValuelist。 pRstClose()。, )。 strcpy(, )。 = 1。 } else { CDevRs rsDev。 TESTHR(picRsBindToRecordset(amp。 = + 。 } pRstClose()。 m_DBCntRollbackTrans()。 EndDialog(0)。于是我們在第一個操作開始之前調用了Connection對象的BeginTrans方法開始一個事物:m_DBCntBegin Trans()。m_DBCntRollbackTrans()。此時程序自動顯示這種設備的名稱、總庫存、最大庫存、現(xiàn)有庫存等信息,報表時間自動設為系統(tǒng)當前時間,待用戶輸入完其他數(shù)據(jù)之后,將生成一個設備采購計劃報表,存入數(shù)據(jù)庫中。// //顯示所選中設備的信息void CDlgReport::OnCloseupComboRpdevs() { char buf[64]。 IADORecordBinding *picRs = NULL。 try { CString sql。 strSQL = sql。picRs))。 picRsRelease()。 } try { CString sql。 strSQL = sql。 m_cur = 0。 TESTHR(picRsBindToRecordset(amp。 m_total = 。 e) { AfxMessageBox(())。庫存報警功能使用戶可以方便的找出庫中當前庫中當前庫存少于最小庫存或當前庫存大于最大庫存的設備。“全面搜索”則對兩種情況都做了查詢。 try { _bstr_t strSQL(SELECT * FROM DEVICE WHERE now_numberhigh_number)。picRs))。 char buf[64]。 sprintf(buf,%f,)。 sprintf(buf,%f,)。 pRstClose()。 } }void CDlgDevAlert::SearchBelow(){ _
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1