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

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

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

第一篇:數(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ùn)行的優(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),支持各種幫定選項(xiàng),在所有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)點(diǎn)在于易于使用、速度快、內(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)點(diǎn):跨平臺;運(yùn)行效率高,與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)一接口,實(shí)現(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),支持各種幫定選項(xiàng),在所有ODBC相關(guān)編程中,API編程具有最高的執(zhí)行速度.因此,ODBC

API編程屬于底層編程。

2.MFC

ODBC連接

MFC

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

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

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

(1)CDatabase類

CDatabase類用于應(yīng)用程序建立同數(shù)據(jù)源的連接。CDatabase類中包含一個m_hdbc變量,它代表了數(shù)據(jù)源的連接句柄。如果要建立CDatabase類的實(shí)例,應(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ù)庫的成員變量,以實(shí)現(xiàn)對數(shù)據(jù)集的數(shù)據(jù)操作。

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

CRecordSet的記錄集通過CDatabase實(shí)例的指針實(shí)現(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)用實(shí)例: 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表的定義,或?yàn)楸境绦蛏傻谋?// 執(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)用實(shí)例:

使用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)點(diǎn),而不必為了利用這些優(yōu)點(diǎn)而把數(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ū)ο蟮奶匦?。Viual 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)建的對象代表了一個單獨(dú)的數(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類用來在程序運(yùn)行時動態(tài)的創(chuàng)建訪問器。當(dāng)系統(tǒng)運(yùn)行時,可以動態(tài)地從行集中獲得列的信息,可根據(jù)此信息動態(tài)地創(chuàng)建訪問器。CManualAccessor類

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

CRowSet類封裝了行集對象和相應(yīng)的接口,并且提供了一些方法用于查詢、設(shè)置數(shù)據(jù)等??梢杂肕ove()等函數(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ù)類型

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

總結(jié)

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

就像其它基于COM的多數(shù)結(jié)構(gòu)一樣,OLE DB的開發(fā)人員需要實(shí)現(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提供者,來實(shí)現(xiàn)行集定位策略、數(shù)據(jù)的讀寫以及建立書簽。應(yīng)用案例:

Visual C++中使用OLE DB讀寫SQL Server 在需要對數(shù)據(jù)庫進(jìn)行操作時,OLE DB總是被認(rèn)為是一種效率最高但最難的方法。但是以我最近使用OLE DB的經(jīng)驗(yàn)看來,OLE DB的效率高則高矣,但卻一點(diǎn)都不難。說它難恐怕主要是因?yàn)榭蓞⒖嫉闹形馁Y料太少,為了幫助以后需要接觸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)境下編譯,因?yà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)){

//失敗,可能是因?yàn)閿?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ǔ)知識。同時,通過大量的實(shí)際操作,我熟練掌握了dos,windows操作系統(tǒng),并對unix有一定的了解,能夠獨(dú)立Word、Excel、Photoshop等應(yīng)用等軟件,有一定的語言編程基礎(chǔ),在經(jīng)濟(jì)信息及計算機(jī)應(yīng)用專業(yè)通過三年的學(xué)習(xí),我已具備了扎實(shí)的專業(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ì)除了掌握扎實(shí)的專業(yè)知識,還應(yīng)該具有豐富的人文知識。我從小熱愛文學(xué),廣覽群書,為我的寫作能力奠定了堅(jiān)實(shí)的基礎(chǔ)。讀書以來,不斷參加校內(nèi)外征文活動,發(fā)表過作品數(shù)篇。特別在大學(xué)期間,被特邀為校報記者,參賽文章多次獲得校園文學(xué)獎。.此外,在英語的學(xué)習(xí)方面,我已具備了一定的聽,說,寫和會話能力,可以用英語進(jìn)行日常的交流。

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

愿公司的明天更美好!

此致

敬禮

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

數(shù)據(jù)庫編程,這個是作為一個次第員根本功,絕大多數(shù)軟件開辟公司數(shù)據(jù)庫編程都是由次第員自己完成,由于他義務(wù)量不是很大,也不是很冗雜,但是一些大點(diǎn)軟件公司是協(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ǔ),堅(jiān)固掌握每個學(xué)問點(diǎn)。

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

數(shù)據(jù)庫編程的自薦信例文,關(guān)鍵詞是自薦信,數(shù)據(jù)庫編程,

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

您好!我叫劉欣,感謝您在百忙之中查看我的資料。我是新華學(xué)校的一名好范文,在校期間,我勤奮努力學(xué)習(xí),成績優(yōu)異,多次獲學(xué)校學(xué)金,掌握了windows、c語言、pasca、,數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫原理等專業(yè)基礎(chǔ)知識。同時,通過大量的實(shí)際操作,我熟練掌握了dos,windows操作系統(tǒng),并對unix有一定的了解,能夠獨(dú)立Word、Excel、photoshop等應(yīng)用等軟件,有一定的語言編程基礎(chǔ),在經(jīng)濟(jì)信息及計算機(jī)應(yīng)用專業(yè)通過三年的學(xué)習(xí),我已具備了扎實(shí)的專業(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)頁編輯?,F(xiàn)在我在互聯(lián)網(wǎng)上,就已經(jīng)建立了自己的個人主頁,并用文件傳輸協(xié)議(ftp)進(jìn)行維護(hù)和。不斷的努力使我的網(wǎng)站日趨成熟。

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

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

愿公司的明天更美好!

此致

敬禮

下載數(shù)據(jù)庫編程總結(jié)(推薦)word格式文檔
下載數(shù)據(jù)庫編程總結(jié)(推薦).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為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)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    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ā)軟件,而是利用......

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

    數(shù)據(jù)庫老師畫的重點(diǎn) 數(shù)據(jù)庫:數(shù)據(jù)庫是長期存儲在計算機(jī)內(nèi)、有組織、可共享的大數(shù)據(jù)集合。 數(shù)據(jù)庫操縱功能:查詢select、插入insert、刪除delete、修改update 數(shù)據(jù)庫系統(tǒng)的特點(diǎn):1......

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

    數(shù)據(jù)庫總結(jié):共三天的課程 數(shù)據(jù)庫的概念:數(shù)據(jù)庫是一組有序的數(shù)據(jù)的集合; 數(shù)據(jù)庫的作用:為了有效的管理數(shù)據(jù); 數(shù)據(jù)類型: 一 字符串相關(guān)的類型:一般用于人名、大于2147483647(10位數(shù))的......

    刀具和編程總結(jié)

    ① 白鋼刀(即高速鋼刀具)因其通體銀白色而得名,主要用于直壁加工。白鋼刀價格便宜,但切削壽命短、吃刀量小、進(jìn)給速度低、加工效率低,在數(shù)控加工中較少使用。 ② 飛刀(即鑲嵌式刀......

    編程題總結(jié)(范文大全)

    C作業(yè)匯總 1. short a,b=32767; /*short類型在內(nèi)存中占2B*/ a=b+1; 問:a的值是多少?并分析原因。 2. 有一4位數(shù)整數(shù),假設(shè)用abcd表示,請把這個4位數(shù)的每個數(shù)位用表達(dá)式表示出來......

    一點(diǎn)Duilib編程總結(jié)

    一點(diǎn)Duilib編程總結(jié) 1.duilib簡介 duilib是一個開源的DirectUI界面庫,簡潔但是功能強(qiáng)大。而且還是BSD的license,所以即便是在商業(yè)上,大家也可以安心使用。 現(xiàn)在大家可以從這個......

主站蜘蛛池模板: 国产-第1页-浮力影院| 亚洲精品国产自在现线最新| 欧美最猛黑人xxxx黑人猛交98| 欧美喷潮最猛视频| 嫖妓丰满肥熟妇在线精品| 狼群社区视频www国语| 加勒比一本heyzo高清视频| 国产激情久久久久影院小草| 亚洲国产成人第一天堂| 四虎成人国产精品永久在线| 亚洲第一无码xxxxxx| 亚洲精品综合五月久久小说| 国产精品久久久久不卡绿巨人| 无码中文字幕va精品影院| 亚洲成a人v影院色老汉影院| 草草地址线路①屁屁影院成人| 国产人与禽zoz0性伦| 国产成人a在线观看视频免费| 国产高清视频在线观看三区| 成a∨人片在线观看无码| 亚洲国产a∨无码中文777| 日本一区不卡高清更新二区| 成人性生交大片免费看r链接| 18国产精品白浆在线观看免费| 国产精品丝袜肉丝出水| 精品久久久久久无码中文字幕一区| 国产真实强被迫伦姧女在线观看| 四虎影库在线永久影院免费观看| 久久久精品成人免费观看| av无码人妻无码男人的天堂| 无码免费一区二区三区| 久久中文字幕人妻熟女少妇| 国产精品久久久久久一区二区三区| 99久久国产露脸精品竹菊传媒| 五月天久久久噜噜噜久久| 亚洲精品久久国产高清情趣图文| av无码午夜福利一区二区三区| 久久综合a∨色老头免费观看| 小??戳进?无遮视频| 国产精品自产拍高潮在线观看| 国产精品久久久久久婷婷|