久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

數(shù)據(jù)庫編程心得(全文5篇)

時間:2019-05-12 15:29:54下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《數(shù)據(jù)庫編程心得》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《數(shù)據(jù)庫編程心得》。

第一篇:數(shù)據(jù)庫編程心得

數(shù)據(jù)庫編程,這個是作為一個次第員根本功,絕大多數(shù)軟件開辟公司數(shù)據(jù)庫編程都是由次第員自己完成,由于他義務(wù)量不是很大,也不是很冗雜,但是一些大點軟件公司是協(xié)作清楚,數(shù)據(jù)庫編程職員和開辟職員是兼并,只管對數(shù)據(jù)庫支配那部分,當(dāng)然他們之間少不溝通。作為一個剖析次第員,進(jìn)修數(shù)據(jù)庫編程,無非就是數(shù)據(jù)庫四大支配,增刪改查,還有觸發(fā)、存儲進(jìn)程等使用,這些都是基礎(chǔ)基礎(chǔ)。很多學(xué)員以為數(shù)據(jù)庫很冗雜,進(jìn)修時分吊兒郎當(dāng),還不會連接查詢,要避免這種情況發(fā)作就必須打好基礎(chǔ),堅固掌握每個學(xué)問點。

大概你會問,數(shù)據(jù)庫很多種,我該進(jìn)修那種?我以為,SQL Server數(shù)據(jù)庫是最基礎(chǔ)一個,他使用面積相比普遍,再說,任何一個數(shù)據(jù)庫核心都是一樣,SQL掌握堅固,換成冗雜MySQL、Access根本不成標(biāo)題,即使要用Oracle,也只需求和SQL相比稍微進(jìn)修一下就足以!在中止對比進(jìn)修時分,要先從基礎(chǔ)末尾,比如數(shù)據(jù)類型、運算符號、關(guān)鍵字等等,然后降落到一些內(nèi)置函數(shù)、邏輯編程、差錯處置等等。這樣一對比,對新學(xué)問掌握會又快又堅固。當(dāng)然這些條件是你SQL大概數(shù)據(jù)庫中任何一種掌握十分堅固,否則,進(jìn)修再多再廣也是云里霧里轉(zhuǎn)悠,到頭來一種也不能很好是使用。

下面說說做數(shù)據(jù)庫管理和維護(hù),數(shù)據(jù)庫管理員是特地?fù)?dān)任對管理數(shù)據(jù)庫,他不只僅限于對數(shù)據(jù)保管備份,還觸及到為使用次第提供可靠數(shù)據(jù)音訊。數(shù)據(jù)庫管理員是后臺最為次要角色,數(shù)據(jù)庫安全性、可靠性都是特地次要,只需數(shù)據(jù)安全,才干為前臺提供愈加優(yōu)秀效力。作為一名數(shù)據(jù)庫管理員,懇求標(biāo)準(zhǔn)遠(yuǎn)遠(yuǎn)高于數(shù)據(jù)庫編程職員,由于管理員要同時具有編程職員素質(zhì)和管理維護(hù)數(shù)據(jù)庫技藝,數(shù)據(jù)庫管理員手冊中專業(yè)學(xué)問很多,還觸及到一部分對數(shù)據(jù)剖析義務(wù),這個對一個企業(yè)做出決策有著很次要,所以數(shù)據(jù)庫管理員還要具有數(shù)據(jù)剖析才干和十分鋒利洞察力,同時具有經(jīng)歷總結(jié)才干,一旦數(shù)據(jù)庫發(fā)作十分和差錯,能夠依據(jù)學(xué)問和經(jīng)歷很好處置標(biāo)題。

只需你處置計算機(jī)行業(yè),就需求進(jìn)修睦數(shù)據(jù)庫基礎(chǔ)學(xué)問,不論以后選擇哪個方向,數(shù)據(jù)庫進(jìn)修都不能放松。古人云:書到用時方和少,學(xué)問學(xué)多不會成為擔(dān)負(fù),慢慢積聚,總有用到時分。給自己清楚一個手段,剩下就是向著這個手段勤勞,不論碰到什么困難,抑制它就向成功更近一步。

第二篇:數(shù)據(jù)庫編程總結(jié)(推薦)

數(shù)據(jù)庫編程總結(jié)

當(dāng)前各種主流數(shù)據(jù)庫有很多,包括Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, Interbase / Firebird, PostgreSQL, SQLite, SAP/DB, TimesTen, MS ACCESS等等。數(shù)據(jù)庫編程是對數(shù)據(jù)庫的創(chuàng)建、讀寫等一列的操作。數(shù)據(jù)庫編程分為數(shù)據(jù)庫客戶端編程與數(shù)據(jù)庫服務(wù)器端編程。數(shù)據(jù)庫客戶端編程主要使用ODBC API、ADO、ADO.NET、OCI、OTL等方法;數(shù)據(jù)庫服務(wù)端編程主要使用OLE DB等方法。數(shù)據(jù)庫編程需要掌握一些訪問數(shù)據(jù)庫技術(shù)方法,還需要注意怎么設(shè)計高效的數(shù)據(jù)庫、數(shù)據(jù)庫管理與運行的優(yōu)化、數(shù)據(jù)庫語句的優(yōu)化。

一、訪問數(shù)據(jù)庫技術(shù)方法

數(shù)據(jù)庫編程分為數(shù)據(jù)庫客戶端編程與數(shù)據(jù)庫服務(wù)器端編程。數(shù)據(jù)庫客戶端編程主要使用ODBC API、ADO、ADO.NET、OCI、OTL等方法;數(shù)據(jù)庫服務(wù)端編程主要使用OLE DB等方法。

1、幾種是數(shù)據(jù)庫訪問方法比較

ODBC

API是一種適合數(shù)據(jù)庫底層開發(fā)的編程方法,ODBC

API提供大量對數(shù)據(jù)源的操作,ODBC

API能夠靈活地操作游標(biāo),支持各種幫定選項,在所有ODBC相關(guān)編程中,API編程具有最高的執(zhí)行速度。DAO提供了很好的數(shù)據(jù)庫編程的對象模型.但是,對數(shù)據(jù)庫的所有調(diào)用以及輸出的數(shù)據(jù)都必須通過Access/Jet數(shù)據(jù)庫引擎,這對于使用數(shù)據(jù)庫應(yīng)用程序,是嚴(yán)重的瓶頸。

OLE

DB提供了COM接口,與傳統(tǒng)的數(shù)據(jù)庫接口相比,有更好的健壯性和靈活性,具有很強(qiáng)的錯誤處理能力,能夠同非關(guān)系數(shù)據(jù)源進(jìn)行通信。

ADO最主要的優(yōu)點在于易于使用、速度快、內(nèi)存支出少和磁盤遺跡小。

ADO.NET 是利用數(shù)據(jù)集的概念將數(shù)據(jù)庫數(shù)據(jù)讀入內(nèi)存中,然后在內(nèi)存中對數(shù)據(jù)進(jìn)行操作,最后將數(shù)據(jù)集數(shù)據(jù)回寫到源數(shù)據(jù)庫中。

OTL 是 Oracle, Odbc and DB2-CLI Template Library 的縮寫,是一個C++編譯中操控關(guān)系數(shù)據(jù)庫的模板庫,OTL中直接操作Oracle主要是通過Oracle提供的OCI接口進(jìn)行,進(jìn)行操作DB2數(shù)據(jù)庫則是通過CLI接口來進(jìn)行,至于MS的數(shù)據(jù)庫和其它一些數(shù)據(jù)庫,則OTL只提供了ODBC來操作的方式。當(dāng)然Oracle和DB2也可以由OTL間接使用ODBC的方式來進(jìn)行操縱。具有以下優(yōu)點:跨平臺;運行效率高,與C語言直接調(diào)用API相當(dāng);開發(fā)效率高,起碼比ADO.net使用起來更簡單,更簡潔;部署容易,不需要ADO組件,不需要.net framework 等。

2、VC數(shù)據(jù)庫編程幾種方法

VC數(shù)據(jù)庫編程幾種方法,包括ODBC連接、MFC

ODBC連接、DAO連接、OLE

DB、OLE

DB

Templates連接、ADO、Oracle專用方法(OCI(Oracle

Call

Interface)訪問、Oracle

Object

OLE

C++

Class

Library)。

<1.>通用方法

1.ODBC連接

ODBC(Open

DataBase

Connectivity)是MSOA的一部分,是一個標(biāo)準(zhǔn)數(shù)據(jù)庫接口。它提供對關(guān)系數(shù)據(jù)庫訪問的統(tǒng)一接口,實現(xiàn)對異構(gòu)數(shù)據(jù)源的一致訪問。ODBC數(shù)據(jù)訪問由以下部分組成:

<1>句柄(Handles):ODBC使用句柄來標(biāo)識ODBC環(huán)境、連接、語句和描述器.<2>緩存區(qū)(Buffers):

<3>數(shù)據(jù)類型(Data

types)

<4>一致性級別(Conformance

levels)

用ODBC設(shè)計客戶端的一般步驟:

<1>分配ODBC環(huán)境

<2>分配連接句柄

<3>連接數(shù)據(jù)源

<4>構(gòu)造和執(zhí)行SQL語句

<5>獲得查詢結(jié)果

<6>斷開數(shù)據(jù)源的連接

<7>釋放ODBC環(huán)境

ODBC

API是一種適合數(shù)據(jù)庫底層開發(fā)的編程方法,ODBC

API提供大量對數(shù)據(jù)源的操作,ODBC

API能夠靈活地操作游標(biāo),支持各種幫定選項,在所有ODBC相關(guān)編程中,API編程具有最高的執(zhí)行速度.因此,ODBC

API編程屬于底層編程。

2.MFC

ODBC連接

MFC

ODBC是MFC對ODBC進(jìn)行的封裝,以簡化對ODBC

API的 調(diào)用,從而實現(xiàn)面向?qū)ο蟮臄?shù)據(jù)庫編程接口.MFC

ODBC的封裝主要開發(fā)了CDatabase類和CRecordSet類

(1)CDatabase類

CDatabase類用于應(yīng)用程序建立同數(shù)據(jù)源的連接。CDatabase類中包含一個m_hdbc變量,它代表了數(shù)據(jù)源的連接句柄。如果要建立CDatabase類的實例,應(yīng)先調(diào)用該類的構(gòu)造函數(shù),再調(diào)用Open函數(shù),通過調(diào)用,初始化環(huán)境變量,并執(zhí)行與數(shù)據(jù)源的連接。在通過Close函數(shù)關(guān)閉數(shù)據(jù)源。

CDatabase類提供了對數(shù)據(jù)庫進(jìn)行操作的函數(shù)及事務(wù)操作。

(2)CRecordSet類

CRecordSet類定義了從數(shù)據(jù)庫接收或者發(fā)送數(shù)據(jù)到數(shù)據(jù)庫的成員變量,以實現(xiàn)對數(shù)據(jù)集的數(shù)據(jù)操作。

CRecordSet類的成員變量m_hstmt代表了定義該記錄集的SQL語句句柄,m_nFields為記錄集中字段的個數(shù),m_nParams為記錄集所使用的參數(shù)個數(shù)。

CRecordSet的記錄集通過CDatabase實例的指針實現(xiàn)同數(shù)據(jù)源的連接,即CRecordSet的成員變量m_pDatabase.MFC

ODBC編程更適合于界面型數(shù)據(jù)庫應(yīng)用程序的開發(fā),但由于CDatabase類和CRecordSet類提供的數(shù)據(jù)庫操作函數(shù)有限,支持的游標(biāo)類型也有限,限制了高效的數(shù)據(jù)庫開發(fā)。在編程層次上屬于高級編程。

應(yīng)用實例: 1.打開數(shù)據(jù)庫

CDatabase database;

database.OpenEx(_T(“DSN=zhuxue”),CDatabase::noOdbcDialog);//zhuxue為數(shù)據(jù)源名稱

2.關(guān)聯(lián)記錄集

CRecordset recset(&database);

3.查詢記錄

CString sSql1=“";

sSql1 = ”SELECT * FROM tablename“;

recset.Open(CRecordset::forwardOnly, sSql1, CRecordset::readOnly);

int ti=0;

CDBVariant var;//var可以轉(zhuǎn)換為其他類型的值

while(!recset.IsEOF())

{

//讀取Excel內(nèi)部數(shù)值

recset.GetFieldValue(”id“,var);

jiangxiang[ti].id=var.m_iVal;

recset.GetFieldValue(”name“, jiangxiang[ti].name);

ti++;

recset.MoveNext();

}

recset.Close();//關(guān)閉記錄集

4.執(zhí)行sql語句

CString sSql=”“;

sSql+=”delete * from 院系審核“;//清空表

database.ExecuteSQL(sSql);

sSql也可以為Insert ,Update等語句

5.讀取字段名

sSql = ”SELECT * FROM Sheet1“;

//讀取的文件有Sheet1表的定義,或為本程序生成的表.// 執(zhí)行查詢語句

recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);

int excelColCount=recset.GetODBCFieldCount();//列數(shù)

CString excelfield[30];

//得到記錄集的字段集合中的字段的總個數(shù)

for(i=0;i

{

CODBCFieldInfo fieldinfo;

recset.GetODBCFieldInfo(i,fieldinfo);

excelfield[i].name =fieldinfo.m_strName;//字段名

}

6.打開excel文件

CString sDriver = ”MICROSOFT EXCEL DRIVER(*.XLS)“;// Excel安裝驅(qū)動

CString sSql,sExcelFile;//sExcelFile為excel的文件路徑

TRY

{

// 創(chuàng)建進(jìn)行存取的字符串

sSql.Format(”DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=/“%s/”;DBQ=%s“,sDriver, sExcelFile, sExcelFile);

// 創(chuàng)建數(shù)據(jù)庫(既Excel表格文件)

if(database.OpenEx(sSql,CDatabase::noOdbcDialog))

{

//可以把excel作為一個數(shù)據(jù)庫操作

}

}

catch(e)

{

TRACE1(”Excel驅(qū)動沒有安裝: %s“,sDriver);

AfxMessageBox(”讀取失敗,請檢查是否定義數(shù)據(jù)區(qū)Sheet1“);

}

3.DAO連接

DAO(Data

Access

Object)是一組Microsoft

Access/Jet數(shù)據(jù)庫引擎的COM自動化接口.DAO直接與Access/Jet數(shù)據(jù)庫通信.通過Jet數(shù)據(jù)庫引擎,DAO也可以同其他數(shù)據(jù)庫進(jìn)行通信。DAO還封裝了Access數(shù)據(jù)庫的結(jié)構(gòu)單元,通過DAO可以直接修改Access數(shù)據(jù)庫的結(jié)構(gòu),而不必使用SQL的數(shù)據(jù)定義語言(DDL)。

DAO的體系結(jié)構(gòu)如下:

DAO封裝的類:

(1)CdaoWorkspace:對DAO工作區(qū)(數(shù)據(jù)庫處理事務(wù)管理器)的封裝

(2)CdaoDatabase:對DAO數(shù)據(jù)庫對象的封裝,負(fù)責(zé)數(shù)據(jù)庫連接.(3)CdaoRecordset:對DAO記錄集對象的封裝,代表所選的一組記錄.(4)CdaoTableDef:對表定義對象的封裝,代表基本表或附加表定義.(5)CdaoQueryDef:對查詢對象的封裝,包含所有查詢的定義.(6)CdaoException:DAO用于接收數(shù)據(jù)庫操作異常的類.(7)CDaoFieldExchange

DAO提供了很好的數(shù)據(jù)庫編程的對象模型.但是,對數(shù)據(jù)庫的所有調(diào)用以及輸出的數(shù)據(jù)都必須通過Access/Jet數(shù)據(jù)庫引擎,這對于使用數(shù)據(jù)庫應(yīng)用程序,是嚴(yán)重的瓶頸。

DAO相對于ODBC來說,屬于高層的數(shù)據(jù)庫接口.4.OLE

DB連接

OLE

DB對ODBC進(jìn)行了兩方面的擴(kuò)展:一是提供了數(shù)據(jù)庫編程的OLE接口即COM,二是提供了一個可用于關(guān)系型和非關(guān)系型數(shù)據(jù)源的接口。

OLE

DB提供了COM接口,與傳統(tǒng)的數(shù)據(jù)庫接口相比,有更好的健壯性和靈活性,具有很強(qiáng)的錯誤處理能力,能夠同非關(guān)系數(shù)據(jù)源進(jìn)行通信。

與ODBC

API一樣,OLE

DB也屬于底層的數(shù)據(jù)庫編程接口,OLE

DB結(jié)合了ODBC對關(guān)系數(shù)據(jù)庫的操作功能,并進(jìn)行擴(kuò)展,可以訪問非關(guān)系數(shù)據(jù)庫。

OLE

DB訪問數(shù)據(jù)庫的原理如下:

OLE

DB程序結(jié)構(gòu):

OLE

DB由客戶(Consumer)和服務(wù)器(Provider)。客戶是使用數(shù)據(jù)的應(yīng)用程序,它通過OLE

DB接口對數(shù)據(jù)提供者的數(shù)據(jù)進(jìn)行訪問和控制。OLE

DB服務(wù)器是提供OLE

DB接口的軟件組件。根據(jù)提供的內(nèi)容可以分為數(shù)據(jù)提供程序(Data

Provider)和服務(wù)提供程序(Service

Provider)。

程序結(jié)構(gòu)原理圖如下:

<1>數(shù)據(jù)提供程序

數(shù)據(jù)提供程序擁有自己的數(shù)據(jù)并把數(shù)據(jù)以表格的形式呈現(xiàn)給使用者使用.<2>服務(wù)提供程序

服務(wù)提供程序是數(shù)據(jù)提供程序和使用者的結(jié)合。它是OLE

DB體系結(jié)構(gòu)中的中間件,它是OLE

DB數(shù)據(jù)源的使用者和數(shù)據(jù)使用程序的提供者

<3>數(shù)據(jù)使用程序

數(shù)據(jù)使用程序?qū)Υ鎯υ跀?shù)據(jù)提供程序中的數(shù)據(jù)進(jìn)行使用和控制.OLE

DB開發(fā)程序的一般步驟:

<1>初始化COM環(huán)境

<2>連接數(shù)據(jù)源

<3>打開對話

<4>執(zhí)行命令

<5>處理結(jié)果

<6>清除對象

應(yīng)用實例:

使用OLEDB編寫數(shù)據(jù)庫應(yīng)用程序 1

概述

OLE DB的存在為用戶提供了一種統(tǒng)一的方法來訪問所有不同種類的數(shù)據(jù)源。OLE DB可以在不同的數(shù)據(jù)源中進(jìn)行轉(zhuǎn)換。利用OLE DB,客戶端的開發(fā)人員在進(jìn)行數(shù)據(jù)訪問時只需把精力集中在很少的一些細(xì)節(jié)上,而不必弄懂大量不同數(shù)據(jù)庫的訪問協(xié)議。OLE DB是一套通過COM接口訪問數(shù)據(jù)的ActiveX接口。這個OLE DB接口相當(dāng)通用,足以提供一種訪問數(shù)據(jù)的統(tǒng)一手段,而不管存儲數(shù)據(jù)所使用的方法如何。同時,OLE DB還允許開發(fā)人員繼續(xù)利用基礎(chǔ)數(shù)據(jù)庫技術(shù)的優(yōu)點,而不必為了利用這些優(yōu)點而把數(shù)據(jù)移出來。

使用ATL使用OLE DB數(shù)據(jù)使用程序

由于直接使用OLE DB的對象和接口設(shè)計數(shù)據(jù)庫應(yīng)用程序需要書寫大量的代碼。為了簡化程序設(shè)計,Visual C++提供了ATL模板用于設(shè)計OLE DB數(shù)據(jù)應(yīng)用程序和數(shù)據(jù)提供程序。利用ATL模板可以很容易地將OLE DB與MFC結(jié)合起來,使數(shù)據(jù)庫的參數(shù)查詢等復(fù)雜的編程得到簡化。MFC提供的數(shù)據(jù)庫類使OLE DB的編程更具有面向?qū)ο蟮奶匦浴iual C++所提供用于OLE DB的ATL模板可分為數(shù)據(jù)提供程序的模板和數(shù)據(jù)使用程序的模板。

使用ATL模板創(chuàng)建數(shù)據(jù)應(yīng)用程序一般有以下幾步驟: 1)、創(chuàng)建應(yīng)用框架

2)、加入ATL產(chǎn)生的模板類

3)、在應(yīng)用中使用產(chǎn)生的數(shù)據(jù)訪問對象3 不用ATL使用OLE DB數(shù)據(jù)使用程序

利用ATL模板產(chǎn)生數(shù)據(jù)使用程序較為簡單,但適用性不廣,不能動態(tài)適應(yīng)數(shù)據(jù)庫的變化。下面我們介紹直接使用MFC OLE DB類來生成數(shù)據(jù)使用程序。模板的使用

OLE DB數(shù)據(jù)使用者模板是由一些模板組成的,包括如下一些模板,下面對一些常用類作一些介紹。1)、會話類 CDataSource類

CDataSource類與OLE DB的數(shù)據(jù)源對象相對應(yīng)。這個類代表了OLE DB數(shù)據(jù)提供程序和數(shù)據(jù)源之間的連接。只有當(dāng)數(shù)據(jù)源的連接被建立之后,才能產(chǎn)生會話對象,可以調(diào)用Open來打開數(shù)據(jù)源的連接。CSession類

CSession所創(chuàng)建的對象代表了一個單獨的數(shù)據(jù)庫訪問的會話。一個用CDataSource類產(chǎn)生的數(shù)據(jù)源對象可以創(chuàng)建一個或者多個會話,要在數(shù)據(jù)源對象上產(chǎn)生一個會話對象,需要調(diào)用函數(shù)Open()來打開。同時,會話對象還可用于創(chuàng)建事務(wù)操作。

CEnumeratorAccessor類

CEnumeratorAccessor類是用來訪問枚舉器查詢后所產(chǎn)生的行集中可用數(shù)據(jù)提供程序的信息的訪問器,可提供當(dāng)前可用的數(shù)據(jù)提供程序和可見的訪問器。2)、訪問器類 CAcessor類

CAccessor類代表與訪問器的類型。當(dāng)用戶知道數(shù)據(jù)庫的類型和結(jié)構(gòu)時,可以使用此類。它支持對一個行集采用多個訪問器,并且,存放數(shù)據(jù)的緩沖區(qū)是由用戶分配的。CDynamicAccessor類

CDynamicAccessor類用來在程序運行時動態(tài)的創(chuàng)建訪問器。當(dāng)系統(tǒng)運行時,可以動態(tài)地從行集中獲得列的信息,可根據(jù)此信息動態(tài)地創(chuàng)建訪問器。CManualAccessor類

CManualAccessor類中以在程序運行時將列與變量綁定或者是將參數(shù)與變量捆定。3)、行集類 CRowSet類

CRowSet類封裝了行集對象和相應(yīng)的接口,并且提供了一些方法用于查詢、設(shè)置數(shù)據(jù)等。可以用Move()等函數(shù)進(jìn)行記錄移動,用GetData()函數(shù)讀取數(shù)據(jù),用Insert()、Delete()、SetData()來更新數(shù)據(jù)。CBulkRowset類

CBulkRowset類用于在一次調(diào)用中取回多個行句柄或者對多個行進(jìn)行操作。CArrayRowset類

CArrayRowset類提供用數(shù)組下標(biāo)進(jìn)行數(shù)據(jù)訪問。4)、命令類 CTable類 CTable類用于對數(shù)據(jù)庫的簡單訪問,用數(shù)據(jù)源的名稱得到行集,從而得到數(shù)據(jù)。CCommand類

CCommand類用于支持命令的數(shù)據(jù)源。可以用Open()函數(shù)來執(zhí)行SQL命令,也可以Prepare()函數(shù)先對命令進(jìn)行準(zhǔn)備,對于支持命令的數(shù)據(jù)源,可以提高程序的靈活性和健壯性。

在stdafx.h頭文件里,加入如下代碼。#include extern CComModule _Module;#include #include #include // if you are using schema templates 在stdafx.cpp文件里,加入如下代碼。#include CComModule _Module;決定使用何種類型的存取程序和行集。獲取數(shù)據(jù)

在打開數(shù)據(jù)源,會話,行集對象后就可以獲取數(shù)據(jù)了。所獲取的數(shù)據(jù)類型取決于所用的存取程序,可能需要綁定列。按以下步驟。

1、用正確的命令打開行集對象。

2、如果使用CManualAccessor,在使用之前與相應(yīng)列進(jìn)行綁定。要綁定列,可以用函數(shù)GetColumnInfo,如下所示: // Get the column information ULONG ulColumns

= 0;DBCOLUMNINFO* pColumnInfo = NULL;LPOLESTR pStrings

= NULL;if(rs.GetColumnInfo(&ulColumns, &pColumnInfo, &pStrings)!= S_OK)AfxThrowOLEDBException(rs.m_pRowset, IID_IColumnsInfo);struct MYBIND* pBind = new MYBIND[ulColumns];rs.CreateAccessor(ulColumns, &pBind[0], sizeof(MYBIND)*ulColumns);for(ULONG l=0;l

3、用while循環(huán)來取數(shù)據(jù)。在循環(huán)中,調(diào)用MoveNext來測試光標(biāo)的返回值是否為S_OK,如下所示: while(rs.MoveNext()== S_OK){

// Add code to fetch data here

// If you are not using an auto accessor, call rs.GetData()}

4、在while循環(huán)內(nèi),可以通過不同的存取程序獲取數(shù)據(jù)。1)如果使用的是CAccessor類,可以通過使用它們的數(shù)據(jù)成員進(jìn)行直接訪問。如下所示:

2)如果使用的是CDynamicAccessor 或CDynamicParameterAccessor 類,可以通過GetValue或GetColumn函數(shù)來獲取數(shù)據(jù)。可以用GetType來獲取所用數(shù)據(jù)類型。如下所示: while(rs.MoveNext()== S_OK){

// Use the dynamic accessor functions to retrieve your

// data

ULONG ulColumns = rs.GetColumnCount();

for(ULONG i=0;i

{

rs.GetValue(i);

} } 3)如果使用的是CManualAccessor,可以指定自己的數(shù)據(jù)成員,綁定它們。就可以直接存取。如下所示: while(rs.MoveNext()== S_OK){

// Use the data members you specified in the calls to

// AddBindEntry.wsprintf(”%s“, szFoo);} 決定行集的數(shù)據(jù)類型

在運行時決定數(shù)據(jù)類型,要用動態(tài)或手工的存取程序。如果用的是手工存取程序,可以用GetColumnInfo函數(shù)得到行集的列信息。從這里可以得到數(shù)據(jù)類型。4

總結(jié)

由于現(xiàn)在有多種數(shù)據(jù)源,想要對這些數(shù)據(jù)進(jìn)行訪問管理的唯一途徑就是通過一些同類機(jī)制來實現(xiàn),如OLE DB。高級OLE DB結(jié)構(gòu)分成兩部分:客戶和提供者。客戶使用由提供者生成的數(shù)據(jù)。

就像其它基于COM的多數(shù)結(jié)構(gòu)一樣,OLE DB的開發(fā)人員需要實現(xiàn)很多的接口,其中大部分是模板文件。

當(dāng)生成一個客戶對象時,可以通過ATL對象向?qū)е赶蛞粋€數(shù)據(jù)源而創(chuàng)建一個簡單的客戶。ATL對象向?qū)z查數(shù)據(jù)源并創(chuàng)建數(shù)據(jù)庫的客戶端代理。從那里,可以通過OLE DB客戶模板使用標(biāo)準(zhǔn)的瀏覽函數(shù)。

當(dāng)生成一個提供者時,向?qū)峁┝艘粋€很好的開端,它們僅僅是生成了一個簡單的提供者來列舉某一目錄下的文件。然后,提供者模板包含了OLE DB支持的完全補(bǔ)充內(nèi)容。在這種支持下,用戶可以創(chuàng)建OLE DB提供者,來實現(xiàn)行集定位策略、數(shù)據(jù)的讀寫以及建立書簽。應(yīng)用案例:

Visual C++中使用OLE DB讀寫SQL Server 在需要對數(shù)據(jù)庫進(jìn)行操作時,OLE DB總是被認(rèn)為是一種效率最高但最難的方法。但是以我最近使用OLE DB的經(jīng)驗看來,OLE DB的效率高則高矣,但卻一點都不難。說它難恐怕主要是因為可參考的中文資料太少,為了幫助以后需要接觸OLE DB的同行,我撰寫了這篇文章。本文包含如下內(nèi)容:

1.OLE DB寫數(shù)據(jù)庫; 2.OLE DB讀數(shù)據(jù)庫;

3.OLE DB對二進(jìn)制數(shù)據(jù)(text、ntext、image等)的處理。

首先來看看對SQL Server進(jìn)行寫操作的代碼,有一定VC基礎(chǔ)的讀者應(yīng)該可以很順利地看懂。OLE DB寫數(shù)據(jù)庫,就是這么簡單!

注:

1.以下代碼中使用的模板類EAutoReleasePtr與ATL中的CComPtr類似,是一個在析構(gòu)時自動調(diào)用Release的類。CComPtr的代碼在ATLBASE.H中定義。

2.以下代碼均在UNICODE環(huán)境下編譯,因為執(zhí)行的SQL語句必須是UNICODE的。設(shè)置工程為UNICODE的方法是:首先在project->settings->C/C++的屬性頁中的Preprocessor中,刪除_MBCS寫入UNICODE,_UNICODE。然后在link屬性頁中Category中選擇output,在Entry-Point symbol 中添加wWinMainCRTStartup。

EAutoReleasePtr pIDBInitialize;HRESULT hResult = ConnectDatabase(&pIDBInitialize, _T(”127.0.0.1“), _T(“sa”), _T(”password“));if(FAILED(hResult)){

//失敗,可能是因為數(shù)據(jù)庫沒有啟動、用戶名密碼錯等等

return;}EAutoReleasePtr pIOpenRowset;hResult = CreateSession(pIDBInitialize, &pIOpenRowset);if(FAILED(hResult)){

//出錯

return;}EAutoReleasePtr pICommand;EAutoReleasePtr pICommandText;hResult = CreateCommand(pIOpenRowset, &pICommand, &pICommandText);if(FAILED(hResult)){

//出錯

return;}hResult = ExecuteSQL(pICommand, pICommandText, _T(”USE PBDATA“));if(FAILED(hResult)){

//如果這里失敗,那就是SQL語句執(zhí)行失敗。在此處,就是PBDATA還未創(chuàng)建

return;}

// 創(chuàng)建表 ExecuteSQL(pICommand, pICommandText, _T(”CREATE TABLE 2005_1(Volume real NOT NULL,ID int NOT NULL IDENTITY)“));

// 添加記錄

ExecuteSQL(pICommand, pICommandText, _T(”INSERT INTO 2005_1 VALUES(100.0)“));//...其中幾個函數(shù)的代碼如下:

HRESULT ConnectDatabase(IDBInitialize** ppIDBInitialize, LPCTSTR pszDataSource, LPCTSTR pszUserID, LPCTSTR pszPassword){

ASSERT(ppIDBInitialize!= NULL && pszDataSource!= NULL && pszUserID!= NULL && pszPassword!= NULL);

UINT uTimeout = 15U;// 連接數(shù)據(jù)庫超時(秒)

TCHAR szInitStr[1024];

VERIFY(1023 >= wsprintf(szInitStr, _T(”Provider=SQLOLEDB;Data Source=%s;Initial Catalog=master;User Id=%s;Password=%s;Connect Timeout=%u“), pszDataSource, pszUserID, pszPassword, uTimeout));

//Initial Catalog=master指明連接成功后,”USE master“。

EAutoReleasePtr pIDataInitialize;

HRESULT hResult = ::CoCreateInstance(CLSID_MSDAINITIALIZE, NULL, CLSCTX_INPROC_SERVER,IID_IDataInitialize,(void**)&pIDataInitialize);

if(FAILED(hResult))

{

return hResult;

}

EAutoReleasePtr pIDBInitialize;

hResult = pIDataInitialize->GetDataSource(NULL, CLSCTX_INPROC_SERVER,(LPCOLESTR)szInitStr,IID_IDBInitialize,(IUnknown**)&pIDBInitialize);

if(FAILED(hResult))

{

return hResult;

}

hResult = pIDBInitialize->Initialize();

if(FAILED(hResult))

{

return hResult;

}

* ppIDBInitialize = pIDBInitialize.Detach();

return S_OK;}

HRESULT CreateSession(IDBInitialize* pIDBInitialize, IOpenRowset** ppIOpenRowset){

ASSERT(pIDBInitialize!= NULL && ppIOpenRowset!= NULL);

EAutoReleasePtr pSession;

HRESULT hResult = pIDBInitialize->QueryInterface(IID_IDBCreateSession,(void**)&pSession);

if(FAILED(hResult))

{

return hResult;

}

EAutoReleasePtr pIOpenRowset;

hResult = pSession->CreateSession(NULL, IID_IOpenRowset,(IUnknown**)&pIOpenRowset);

if(FAILED(hResult))

{

return hResult;

}

* ppIOpenRowset = pIOpenRowset.Detach();

return S_OK;}

HRESULT CreateCommand(IOpenRowset* pIOpenRowset, ICommand** ppICommand, ICommandText** ppICommandText){

ASSERT(pIOpenRowset!= NULL && ppICommand!= NULL && ppICommandText!= NULL);

HRESULT hResult;

EAutoReleasePtr pICommand;

{

EAutoReleasePtr pICreateCommand;

hResult = pIOpenRowset->QueryInterface(IID_IDBCreateCommand,(void**)&pICreateCommand);

if(FAILED(hResult))

{

return hResult;

}

hResult = pICreateCommand->CreateCommand(NULL, IID_ICommand,(IUnknown**)&pICommand);

if(FAILED(hResult))

{

return hResult;

}

}

EAutoReleasePtr pICommandText;

hResult = pICommand->QueryInterface(&pICommandText);

if(FAILED(hResult))

{

return hResult;

}

* ppICommand = pICommand.Detach();

* ppICommandText = pICommandText.Detach();

return S_OK;}

HRESULT ExecuteSQL(ICommand* pICommand, ICommandText* pICommandText, LPCTSTR pszCommand, LONG* plRowsAffected){

ASSERT(pICommand!= NULL && pICommandText!= NULL && pszCommand!= NULL && pszCommand[0]!= 0);

HRESULT hResult = pICommandText->SetCommandText(DBGUID_DBSQL,(LPCOLESTR)pszCommand);

if(FAILED(hResult))

{

return hResult;

}

LONG lAffected;

hResult = pICommand->Execute(NULL, IID_NULL, NULL, plRowsAffected == NULL ? &lAffected : plRowsAffected,(IUnknown**)NULL);

return hResult;}

以上就是寫數(shù)據(jù)庫的全部代碼了,是不是很簡單呢?下面再來讀的。

// 先用與上面代碼中一樣的步驟獲取pICommand,pICommandText。此處省略

HRESULT hResult = pICommandText->SetCommandText(DBGUID_DBSQL,(LPCOLESTR)_T(”SELECT Volume FROM 2005_1 WHERE ID = @@IDENTITY"));//取我們剛剛添加的那一條記錄

if(FAILED(hResult)){

return;}

LONG lAffected;EAutoReleasePtr pIRowset;hResult = pICommand->Execute(NULL, IID_IRowset, NULL, &lAffected,(IUnknown**)&pIRowset);if(FAILED(hResult)){

return;}

EAutoReleasePtr pIAccessor;hResult = pIRowset->QueryInterface(IID_IAccessor,(void**)&pIAccessor);if(FAILED(hResult)){

return;}

// 一個根據(jù)表中各字段的數(shù)值類型而定義的結(jié)構(gòu),用于存儲返回的各字段的值

struct CLoadLastFromDB {

DBSTATUS dwdsVolume;

DWORD

dwLenVolume;

float

fVolume;};

// 此處我們只查詢了一個字段。如果要查詢多個字段,CLoadLastFromDB中要添加相應(yīng)的字段定義,下面的dbBinding也要相應(yīng)擴(kuò)充。dbBinding[].iOrdinal要分別指向各個字段,dbBinding[].wType要根據(jù)字段類型賦合適的值。

DBBINDING dbBinding[1];dbBinding[0].iOrdinal

= 1;

// Volume 字段的位置,從 1 開始

dbBinding[0].obValue

= offsetof(CLoadLastFromDB, fVolume);dbBinding[0].obLength

= offsetof(CLoadLastFromDB, dwLenVolume);dbBinding[0].obStatus

= offsetof(CLoadLastFromDB, dwdsVolume);dbBinding[0].pTypeInfo

= NULL;dbBinding[0].pObject

= NULL;dbBinding[0].pBindExt

= NULL;dbBinding[0].dwPart

= DBPART_VALUE | DBPART_STATUS | DBPART_LENGTH;dbBinding[0].dwMemOwner = DBMEMOWNER_CLIENTOWNED;dbBinding[0].eParamIO

= DBPARAMIO_NOTPARAM;dbBinding[0].cbMaxLen

= 0;dbBinding[0].dwFlags

= 0;

第三篇:數(shù)據(jù)庫編程的求職信范文

尊敬的人力資源部領(lǐng)導(dǎo):

您好!我叫,感謝您在百忙之中查看我的資料。我是新華學(xué)校的一名應(yīng)屆畢業(yè)生,在校期間,我勤奮努力學(xué)習(xí),成績優(yōu)異,多次獲學(xué)校學(xué)金,掌握了windows、c語言、pasca、,數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫原理等專業(yè)基礎(chǔ)知識。同時,通過大量的實際操作,我熟練掌握了dos,windows操作系統(tǒng),并對unix有一定的了解,能夠獨立Word、Excel、Photoshop等應(yīng)用等軟件,有一定的語言編程基礎(chǔ),在經(jīng)濟(jì)信息及計算機(jī)應(yīng)用專業(yè)通過三年的學(xué)習(xí),我已具備了扎實的專業(yè)基礎(chǔ)知識功底。

作為一名的學(xué)生,我認(rèn)識到互聯(lián)網(wǎng)將在未來經(jīng)濟(jì)中發(fā)揮巨大的作用,所以,業(yè)余時間我刻苦自學(xué)了很多網(wǎng)絡(luò)知識。首先,在internet基礎(chǔ)應(yīng)用方面,比如瀏覽網(wǎng)頁,搜索引擎的使用,網(wǎng)上查找,下載所需信息等都很熟練。而且,我還不滿足于此,進(jìn)一步學(xué)習(xí)了html語言,和,frontpage,dreamweaver等網(wǎng)頁編輯軟件,firework,flash等網(wǎng)頁圖形處理軟件,可以自如的進(jìn)行網(wǎng)頁編輯。現(xiàn)在我在互聯(lián)網(wǎng)上,就已經(jīng)建立了自己的個人主頁,并用文件傳輸協(xié)議(ftp)進(jìn)行維護(hù)和。不斷的努力使我的網(wǎng)站日趨成熟。

當(dāng)然一個高素質(zhì)除了掌握扎實的專業(yè)知識,還應(yīng)該具有豐富的人文知識。我從小熱愛文學(xué),廣覽群書,為我的寫作能力奠定了堅實的基礎(chǔ)。讀書以來,不斷參加校內(nèi)外征文活動,發(fā)表過作品數(shù)篇。特別在大學(xué)期間,被特邀為校報記者,參賽文章多次獲得校園文學(xué)獎。.此外,在英語的學(xué)習(xí)方面,我已具備了一定的聽,說,寫和會話能力,可以用英語進(jìn)行日常的交流。

未來社會需要的是理論和實踐相結(jié)合的復(fù)合型。學(xué)習(xí)之余,我參加了大量的社會實踐活動,做家教,去商場做過促銷員,從而鍛煉了自己吃苦耐勞,一絲不茍的工作做風(fēng).未來是一個充滿挑戰(zhàn)的世界,鮮花和榮譽(yù)只能代表過去。年輕的我希望公司給我展示自我的機(jī)會。沒有您伯樂的眼光,對我來講那是一種遺憾。因此,我非常希望能夠成為貴公司的一員。我將以更大的熱情和勤奮上進(jìn)的工作態(tài)度投入到新的工作環(huán)境中去,為公司的發(fā)展添磚加瓦。

愿公司的明天更美好!

此致

敬禮

第四篇:編程心得

1. 對于液晶點陣,做任何圖形的子函數(shù),一定要注意,必須為整數(shù),即像素必須為整數(shù),否則將出現(xiàn)錯誤,比如劃三角形,必須讓三角形的斜率為直線,不然不能得到預(yù)期的結(jié)果。

2. 對于變量的定義,如果在條件語句里面必須放在語句最前面,如果在整個函數(shù)的里面,必須放在整個函數(shù)的最前面。

3. GDB來調(diào)試已經(jīng)生成的可執(zhí)行程序hello.命令如下:Gdbhello ,參數(shù)-d指示源代碼所

在的目錄去搜尋。一旦出現(xiàn)GDB的命令提示符(gdb),就表明GDB已經(jīng)準(zhǔn)備好接收來自用戶的各種調(diào)試命令了。如果想在調(diào)試環(huán)境下運行這個程序,可以使用GDB提供的“run”命令,而程序在正常運行時所需的各種參數(shù)可以作為“run”命令的參數(shù)傳入,或者使用單獨的“set args”命令進(jìn)行設(shè)置。如果在執(zhí)行“run”命令時沒有給出任何參數(shù),GDB將使用上一次“run”或“set args”命令指定的參數(shù)。如果想取消上次設(shè)置的參數(shù),可以執(zhí)行不帶任何參數(shù)的“set args”命令。

GDB是一個源代碼級的調(diào)試器,使用“l(fā)ist”命令可以查看當(dāng)前調(diào)試對象的源代碼。該命令的通用格式為“l(fā)ist [m,n]”,表示顯示從m行開始到n行結(jié)束的代碼段,而不帶任何參數(shù)的“l(fā)ist”命令將顯示最近10行源代碼。

要根據(jù)行號設(shè)置斷點,可以使用“ break linenum”命令。要根據(jù)函數(shù)名設(shè)置斷點,則應(yīng)該使用“break funcname”命令。

條件斷點允許當(dāng)一定條件滿足時暫時停止程序的執(zhí)行。它對于調(diào)試來講非常有用。設(shè)置條件斷點的正確語法如下:

break linenum if expr

break funcname if expr

使用“continue”命令繼續(xù)執(zhí)行程序,直到遇到下一個斷點。如果在調(diào)試時設(shè)置了很多斷點,可以隨時使用“info breakpoints”命令來查看設(shè)置的斷點。此外,開發(fā)人員還可以使用“delete”命令刪除斷點,或者使用“disable”命令來使設(shè)置的斷點暫時無效。被設(shè)置為無效的斷點在需要的時候可以用“enable”命令使其重新生效。

為了單步跟蹤代碼,可以使用單步跟蹤命令“step”,它每次執(zhí)行源代碼中的一行。

4、程序調(diào)試過程中,如果出現(xiàn)segment,一般來說是指針沒有賦值,找不到原型。比如線程里面如果要調(diào)用screen_mm,那么必須傳遞參數(shù)screen_mm,而且需要在線程里面定義參數(shù)。

5、如果線程里面用到串口的操作,則最好把串口初始化程序放到線程里面進(jìn)行。也可以把初始化作成模塊,這樣不會影響串口的收發(fā)數(shù)據(jù)。如果將串口初始化放到主程序里面,則最后將初始化程序放在線程的屬性定義和建立線程之前,否則其他地方可能導(dǎo)致串口收發(fā)數(shù)據(jù)產(chǎn)生問題。還有對于串口操作的定義最好放在所有變量定義的最前面。

6、對于段錯誤這種問題。可以分析以下原因:

(1):指針非法,比如使用沒有初始化的指針(沒有為此指針指向的對象分配空間),或著Free掉之后再次使用。

(2):數(shù)組訪問越界,訪問的元素下標(biāo)超過數(shù)組圍長

(3):緩存溢出,對于這種while(1){do}的程序,這個問題最容易發(fā)生,多此sprintf或著strcat有可能將某個

buff填滿,溢出,所以每次使用前,最好memset一下,不過要是一開始就是段錯誤,而不是運行了一會兒出現(xiàn)的,(3)的可能性就比較小。

第五篇:數(shù)據(jù)庫編程專業(yè)英文求職信

Dear leaders:

Hello!

I am a forthcoming XXXX University XX in XX graduate students, the school is a computer professional.University for four years, I study hard, the outstanding, have been awarded scholarships.Mentorship in the strict lessons and individual efforts, I have a solid foundation of knowledge.In terms of software, systems have C language, data structure, power Builder, database theory, assembly language, software engineering and object-oriented, such as DELpHI and VC have a certain understanding of Windows programming.I also had extra-curricular learning VB, VF programming, ASp and SQL Server dynamic pages, such as web-based database programming language.Has been prepared by an independent professional database management system.In terms of hardware, through its participation in single-chip design, assembly of the radio, network planning and management projects and the formation of such practice, I have a computer and the working principle of the principle of computer network technology.Into the school since, I take full advantage of a wide range of spare time to participate in social practice.College information in our school computer lab to work two years, not only the professional skills I have been raised, but also the management and organization, I will be able to play and further training, leadership and teachers received recognition and praise.Moreover, science and technology in Europe and Asia have some of the company's work experience, I have some marketing experience and social experience, and outstanding performance.In addition, at school, I also made home, the practice of social surveys and other social activities, and accumulated a wealth of practical experience.If fortunate enough to join, I can dedicated to your company's software development, or at any time in accordance with the needs of the company is committed to a work and learning.“Soon Come, come against, I dust free” is my motto;“immersive an abyss, treading on thin ice” is the attitude of my work;“sincere, and trustworthy” is my most prominent feature;an open mind has given me many friends.Smart-minded, creative thinking, and pioneering spirit of tenacity, coupled with sophisticated professional skills, I believe I am the best choice for you.please give me a chance, I will also you to eye-catching glory.Thank you for your patience in reading my cover letter, such as the need for detailed information, please contact me.敬候good news!

下載數(shù)據(jù)庫編程心得(全文5篇)word格式文檔
下載數(shù)據(jù)庫編程心得(全文5篇).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    數(shù)據(jù)庫編程的自薦信例文

    數(shù)據(jù)庫編程的自薦信例文,關(guān)鍵詞是自薦信,數(shù)據(jù)庫編程,尊敬的人力資源部領(lǐng)導(dǎo):您好!我叫劉欣,感謝您在百忙之中查看我的資料。我是新華學(xué)校的一名好范文,在校期間,我勤奮努力學(xué)習(xí),成......

    SQL數(shù)據(jù)庫編程學(xué)習(xí)應(yīng)用語句大全

    SQL數(shù)據(jù)庫編程學(xué)習(xí)應(yīng)用語句大全 1as 的用處 as可以對表和列取別名 在開發(fā)過程中經(jīng)常遇到開始給某一個的字段去field1的名稱,但后來有感覺field1字段指定不確切,于是又把此字段......

    網(wǎng)絡(luò)數(shù)據(jù)庫講稿(客戶端開發(fā)編程)

    網(wǎng)絡(luò)數(shù)據(jù)庫講稿(14) 3/26/2013 SQL Server客戶端開發(fā)與編程 一、引言 1.編程模式:C/S模式和B/S模式。 2.客戶端編程語言:ASP,VB,VC,VFP,PB,Delphi,Access,ASP,JSP等,都可訪問SQL數(shù)據(jù)庫。......

    編程語言的數(shù)據(jù)庫性能比較5則范文

    編程語言的數(shù)據(jù)庫性能比較摘要:隨著計算機(jī)技術(shù)不斷發(fā)展,各種數(shù)據(jù)庫編程工具也隨著發(fā)展,使當(dāng)今的大多數(shù)程序開發(fā)人員可以擺脫枯燥無味的用計算機(jī)指令或匯編語言開發(fā)軟件,而是利用......

    編程培訓(xùn)心得

    編程培訓(xùn)心得3篇篇一:軟件編程學(xué)_心得軟件編程學(xué)_心得隨著計算機(jī)技術(shù)的發(fā)展和工作的需要,為了能夠更好的維護(hù)公司生產(chǎn)管理系統(tǒng);公司安排我們到北大青鳥APTECH進(jìn)修。我們選擇了......

    PLC編程心得

    即使是同一個項目,同一個人,要他重新寫一次,也會與原來的不同,我只是看別人的一種思路,是怎樣把程序去組織好,如何規(guī)范合理分配好元件,我看簡單也不一定好,我的編程習(xí)慣是要求流程要......

    C++編程心得

    緊張忙碌的一周過去了,在這個星期里我們小組勝利地將我們選定的課題研究出來,我為我的小組驕傲,也為自己驕傲。 我們的題目是銀行定期存款管理系統(tǒng),在編程過程中,我預(yù)訂的任務(wù)是......

    編程心得(最終版)

    農(nóng)業(yè)決策支持系統(tǒng)交流演示心得體會 通過學(xué)習(xí)VB和農(nóng)業(yè)信息技術(shù)的有關(guān)知識,我們在老師的要求下編寫了有關(guān)農(nóng)業(yè)決策支持系統(tǒng)的程序。VB是一門計算機(jī)編程語言,知識含量較高。VB中有......

主站蜘蛛池模板: 影音先锋男人av鲁色资源网| 青青草原综合久久大伊人| 又黄又爽又色的视频| 天堂无码人妻精品一区二区三区| 国产极品精品自在线| 国产精品日本亚洲777| (无码视频)在线观看| 男人让女人爽的免费视频| 成人网站国产在线视频内射视频| 亚洲爆乳无码专区www| 日韩系列无码一中文字暮| 亚洲综合无码一区二区| 国产99久久亚洲综合精品| 久久亚洲中文字幕精品有坂深雪| 无码午夜人妻一区二区三区不卡视频| 国产精品黑色丝袜在线观看| 97人摸人人澡人人人超碰| 无码免费毛片手机在线| mm1313亚洲国产精品无码试看| 久久久久九九精品影院| 亚洲国色天香卡2卡3卡4| 亚洲中文色欧另类欧美| 成熟妇女性成熟满足视频| 国产伦久视频免费观看视频| 麻麻张开腿让我爽了一夜| 国产系列丝袜熟女精品网站| 国产精品高清一区二区三区不卡| 夜夜爽妓女8888视频免费观看| 中文字幕无码不卡一区二区三区| 国产成人精品怡红院在线观看| 无码av不卡一区二区三区| 国产av亚洲精品久久久久久小说| 成人18禁深夜福利网站app免费| 狠狠躁夜夜人人爽天96| 亚洲一区av无码专区在线观看| 插插无码视频大全不卡网站| 亚洲av无码精品色午夜果冻不卡| 久久99精品国产麻豆蜜芽| 亚洲人成人无码www影院| 男人的天堂亚洲一线av在线观看| 天天躁日日躁狠狠躁超碰97|