日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C語言實現(xiàn)數(shù)據(jù)庫多樣性訪問(c訪問多種數(shù)據(jù)庫)

隨著信息技術(shù)的不斷發(fā)展,數(shù)據(jù)庫成為管理和存儲大量數(shù)據(jù)的關(guān)鍵工具。目前,市面上有許多不同種類的數(shù)據(jù)庫,例如關(guān)系型數(shù)據(jù)庫、NoSQL數(shù)據(jù)庫等。而不同的數(shù)據(jù)庫類型具有不同的特點和優(yōu)勢,因此在實際應(yīng)用中,我們需要通過合適的方式訪問它們。本文將介紹如何使用,旨在提高程序開發(fā)的靈活性和可擴展性。

1. 數(shù)據(jù)庫訪問方式

在進行數(shù)據(jù)庫訪問時,通常有兩種方式:基于ODBC的訪問和基于API的訪問。ODBC是Open Database Connectivity的縮寫,是一種標(biāo)準(zhǔn)化開放的數(shù)據(jù)庫編程接口,支持訪問大多數(shù)主流數(shù)據(jù)庫,如MySQL、Oracle、SQL Server等。API是Application Programming Interface的縮寫,是一系列為應(yīng)用程序提供訪問操作系統(tǒng)、硬件設(shè)備、庫等服務(wù)的函數(shù)和過程。在C語言中,通過調(diào)用API來實現(xiàn)對數(shù)據(jù)庫的訪問。

2. ODBC訪問方法

使用ODBC訪問數(shù)據(jù)庫,需要安裝ODBC驅(qū)動程序。ODBC驅(qū)動程序可以是由數(shù)據(jù)庫廠商提供,也可以是由第三方公司提供。安裝好驅(qū)動程序之后,就可以通過ODBC接口調(diào)用數(shù)據(jù)庫了。ODBC提供了對SQL語言的高級支持,可以更加方便地進行數(shù)據(jù)庫操作。

在C語言中,可以使用ODBC API來訪問數(shù)據(jù)庫。ODBC API是一個面向關(guān)系型數(shù)據(jù)庫的API,其提供了許多函數(shù),如SQLConnect、SQLExecDirect等,用于打開數(shù)據(jù)庫連接、執(zhí)行SQL語句等操作。下面是一個使用ODBC API訪問MySQL數(shù)據(jù)庫的例子:

“`

#include

#include

#include

void mn()

{

SQLHENV env;

SQLHDBC dbc;

SQLHSTMT stmt;

SQLRETURN ret;

SQLCHAR outstr[1024];

SQLALLINT outstrlen;

/* Allocate environment handle */

ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);

/* Set the ODBC version environment attribute */

ret = SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);

/* Allocate connection handle */

ret = SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc);

/* Connect to the data source */

ret = SQLConnect(dbc, “MYSQL”, SQL_NTS, “root”, SQL_NTS, “password”, SQL_NTS);

/* Allocate statement handle */

ret = SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt);

/* Execute the SQL statement */

ret = SQLExecDirect(stmt, “SELECT * FROM table”, SQL_NTS);

/* Fetch the data */

while (SQLFetch(stmt) == SQL_SUCCESS) {

SQLGetData(stmt, 1, SQL_C_CHAR, outstr, 1024, &outstrlen);

printf(“%s\n”, outstr);

}

/* Free the handles */

SQLFreeHandle(SQL_HANDLE_STMT, stmt);

SQLDisconnect(dbc);

SQLFreeHandle(SQL_HANDLE_DBC, dbc);

SQLFreeHandle(SQL_HANDLE_ENV, env);

}

“`

在上面的代碼中,首先通過SQLAllocHandle函數(shù)分配了環(huán)境句柄(env)、連接句柄(dbc)和語句句柄(stmt),然后通過SQLSetEnvAttr函數(shù)設(shè)置了ODBC版本,再通過SQLConnect函數(shù)連接到MySQL數(shù)據(jù)庫,最后通過SQLExecDirect函數(shù)執(zhí)行SELECT語句,獲取查詢結(jié)果并輸出。

3. API訪問方法

使用API訪問數(shù)據(jù)庫,需要根據(jù)不同的數(shù)據(jù)庫類型選擇對應(yīng)的API。例如,對于MongoDB數(shù)據(jù)庫,可以使用mongoc API;對于Redis數(shù)據(jù)庫,可以使用hiredis API。這些API提供了與數(shù)據(jù)庫交互的各種函數(shù),可以進行數(shù)據(jù)查詢、插入、更新、刪除等操作。

在C語言中,可以使用API直接調(diào)用這些函數(shù),與數(shù)據(jù)庫進行交互。下面是一個使用MongoDB API訪問數(shù)據(jù)庫的例子:

“`

#include

void mn()

{

mongoc_client_t *client;

mongoc_database_t *database;

mongoc_collection_t *collection;

bson_t *query;

mongoc_cursor_t cursor;

const bson_t *doc;

char *str;

/* Connect to MongoDB */

mongoc_init();

client = mongoc_client_new(“mongodb://localhost:27017/”);

database = mongoc_client_get_database(client, “test”);

collection = mongoc_client_get_collection(client, “test”, “data”);

/* Query data */

query = bson_new();

cursor = mongoc_collection_find_with_opts(collection, query, NULL, NULL);

/* Print data */

while (mongoc_cursor_next(cursor, &doc)) {

str = bson_as_json(doc, NULL);

printf(“%s\n”, str);

bson_free(str);

}

/* Release resources */

bson_destroy(query);

mongoc_collection_destroy(collection);

mongoc_database_destroy(database);

mongoc_client_destroy(client);

mongoc_cleanup();

}

“`

在上面的代碼中,首先使用mongoc_init函數(shù)進行初始化,然后通過mongoc_client_new函數(shù)連接到MongoDB數(shù)據(jù)庫,獲取數(shù)據(jù)庫對象和對象,通過mongoc_collection_find_with_opts函數(shù)執(zhí)行查詢操作,最后通過mongoc_cursor_next函數(shù)獲取查詢結(jié)果并輸出。

4.

相關(guān)問題拓展閱讀:

  • 我學(xué)計算機網(wǎng)絡(luò)技術(shù)專業(yè)請幫我課程選擇
  • c語言可以連接access數(shù)據(jù)庫??

我學(xué)計算機網(wǎng)絡(luò)技術(shù)專業(yè)請幫我課程選擇

建議你學(xué).NET語言,現(xiàn)在很多企業(yè)都招收這樣的人才,學(xué)軟件編程語言就學(xué)個最基礎(chǔ)的C語言吧,把他寬亮學(xué)會了,其他的語言都簡單很多了,而且C語言確實相當(dāng)?shù)膹姶笈秪網(wǎng)絡(luò)工程師我建議你去黑基賀簡之類的網(wǎng)絡(luò)上的教學(xué)網(wǎng)站繳費學(xué)習(xí),慎拍寬那些大網(wǎng)站不騙人,而且教的東西也很實用,最后還要希望你你能明白個道理,學(xué)的再多都是P,只有多實用才是真的。祝你學(xué)習(xí)順利,事業(yè)有成哦~~~

希望對您有幫助

計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。

電腦每做的一次動作,一個步驟,都是按照以經(jīng)用計算機語言編好的程序來執(zhí)行的,程序是計算機要執(zhí)行的指令的,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發(fā)出命令。

計算機所能識別的語言只有機器語言,即由0和1構(gòu)成的代碼。但通常人們編程時,不采用機器語言,因為它非常難于記憶和識別。

目前通用的編程語言有兩種形式:匯編語言和高級語言。

匯編語言的實質(zhì)和機器語言是相同的,都是直接對硬件操作,只不過指令采用了英文縮寫的標(biāo)識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對應(yīng)實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復(fù)雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業(yè)知識,但匯編語言的優(yōu)點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能實現(xiàn)的,而且源程序經(jīng)匯編生成的可執(zhí)行文件不僅比較小,而且執(zhí)行速度很快。

高級語言是目前絕大多數(shù)巧如虧編程者的選擇。和匯編語言相比,它不但將許多相關(guān)的機器指令合成為單條指令,并且去掉了與具體操作有關(guān)但與完成工作無關(guān)的細節(jié),例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由于省略了很多細節(jié),編程者也就不需要有太多的專業(yè)知識。

高級語言主要是相對于匯編語言而言,它并不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。

高級語言所編制的程序不能直接被計算機識別,必須經(jīng)過轉(zhuǎn)換才能被執(zhí)行,按轉(zhuǎn)換方式可將它們分為兩類:

解釋類:執(zhí)行方式類似于我們?nèi)粘I钪械摹巴暦g”,應(yīng)用程序源代碼一邊由相應(yīng)語言的解釋器“翻譯”成目標(biāo)代碼(機器語言),一邊執(zhí)行,因此效率比較低,而且不能生成可獨立執(zhí)行的可執(zhí)行文件,應(yīng)用程序不能脫離其解釋器,但這種方式比較靈活,可以動態(tài)地調(diào)整、修改應(yīng)用程序。

編譯類:編譯是指在應(yīng)用源程序執(zhí)行之前,就將程序源代碼“孝神翻譯”成目標(biāo)代碼(機器語言),因此其目標(biāo)程序可以脫離其語言環(huán)境獨立執(zhí)行,使用比較方便、效率較高。但應(yīng)用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標(biāo)文件(* .OBJ)才能執(zhí)行,只有目標(biāo)文件而沒有源代碼,修改很不方便?,F(xiàn)在大多數(shù)的編程語言都是編譯型的,例如Visual C++、Visual Foxpro、Delphi等。

學(xué)習(xí)編程,從何入手

如果您想學(xué)習(xí)編程,卻又不知從何入手,那么您不妨看看下面的幾種學(xué)習(xí)方案,可能會給您一些啟示吧!

==============================================

方案一 Basic語言 & Visual Basic

優(yōu)點

(1)Basic 簡單易學(xué),很容易上手。

(2)Visual Basic 提供了強大的可視化編程能力,可以讓你輕松地做出漂亮的程序。

(3)眾多的控件讓編程變得象壘積木一樣簡單。

(4)Visual Basic 的全部漢化讓我們這些見了English就頭大的人喜不自禁。

缺點

(1)Visual Basic 不是真正的面向?qū)ο蟮拈_發(fā)文具。

(2)Visual Basic 的數(shù)據(jù)類型太少,而且不支持指針,這使得它的表達能力很有限。

(3)Visual Basic 不是真正的編譯型語言,它產(chǎn)生的最終代碼不是可執(zhí)行的,是一種偽代碼。它需要一個動態(tài)鏈接庫去解釋執(zhí)行,這使得Visual Basic 的編譯速度大大變慢。

綜述:方案一適合初涉編程的朋友,它對學(xué)習(xí)者的要求不高,幾橡沒乎每個人都可以在一個比較短的時間里學(xué)會vB編程,并用VB 做出自己的作品。對于那些把編程當(dāng)做游戲的朋友來說,VB 是您更佳的選擇。

Basic/Visual Basic簡介

==============================================

方案二 Pascal語言 & Delphi

優(yōu)點

(1)Pascal語言結(jié)構(gòu)嚴謹,可以很好地培養(yǎng)一個人的編程思想。

(2)Delphi是一門真正的面向?qū)ο蟮拈_發(fā)工具,并且是完全的可視化。

(3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執(zhí)行的文件,而且編譯速度非常快。

(4)Delphi具有強大的數(shù)據(jù)庫開發(fā)能力,可以讓你輕松地開發(fā)數(shù)據(jù)庫。

缺點

Delphi幾乎可以說是完美的,只是Pascal語言的過于嚴謹讓人感覺有點煩。

綜述: 方案二比較適合那些具有一定編程基礎(chǔ)并且學(xué)過Pascal語言的朋友。

Pascal語言簡介

Delphi簡介

==============================================

方案三 C語言 & Visual C++

優(yōu)點

(1)C語言靈活性好,效率高,可以接觸到軟件開發(fā)比較底層的東西。

(2)微軟的MFC庫博大精深,學(xué)會它可以讓隨心所欲地進行編程。

(3)VC是微軟制作的產(chǎn)品,與操作系統(tǒng)的結(jié)合更加緊密。

缺點

對使用者的要求比較高,既要具備豐富的C語言編程經(jīng)驗,又要具有一定的WINDOWS編程基礎(chǔ),它的過于專業(yè)使得一般的編程愛好者學(xué)習(xí)起來會有不小的困難。

綜述: VC是程序員用的東西。如果你是一個永不滿足的人,而且可以在編程上投入很大的精力和時間,那么學(xué)習(xí)VC你一定不會后悔的。

C語言簡介

==============================================

方案四 C++語言 & C++ Builder

優(yōu)點

(1)C++語言的優(yōu)點全部得以繼承。

(2)完全的可是化。

(3)極強的兼容性,支持OWL、VCL和MFC三大類庫。

(4)編譯速度非???。

缺點

由于推出的時間太短,關(guān)于它的各種資料還不太多。

綜述:我認為C++ Builder 是更好的編程工具。它既保持了C++語言編程的優(yōu)點,又做到了完全的可視化。

C語言簡介

==============================================

方案五 SQL語言 & Power Builder

對于一些傳統(tǒng)的數(shù)據(jù)開發(fā)人員來說,F(xiàn)oxpro系列也許讓他們感到更加熟悉。但是對于初學(xué)者來說,PowerBuilder也許是更好的數(shù)據(jù)庫開發(fā)工具。各種各樣的控件,功能強大的PowerBuilder語言都會幫助你開發(fā)出自己的數(shù)據(jù)庫應(yīng)用程序。

P簡介

在Sun正式發(fā)布P(Java Server Pages)之后,這種新的Web應(yīng)用開發(fā)技術(shù)很快引起了人們的關(guān)注。P為創(chuàng)建高度動態(tài)的Web應(yīng)用提供了一個獨特的開發(fā)環(huán)境。按照 Sun 的說法,P能夠適應(yīng)市場上包括Apache WebServer 、IIS4.0在內(nèi)的85%的服務(wù)器產(chǎn)品。

P與ASP的簡單比較

P與Microsoft的ASP技術(shù)非常相似。兩者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。在ASP或P環(huán)境下,HTML代碼主要負責(zé)描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的HTML頁面只依賴于Web服務(wù)器,而ASP和P頁面需要附加的語言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。ASP和P都是面向Web服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。

ASP的編程語言是VBScript之類的腳本語言,P使用的是Java,這是兩者最明顯的區(qū)別。

此外,ASP與P還有一個更為本質(zhì)的區(qū)別:兩種語言引擎用完全不同的方式處理頁面中嵌入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋執(zhí)行;在P下,代碼被編譯成Servlet并由Java虛擬機執(zhí)行,這種編譯操作僅在對P頁面的之一次請求時發(fā)生。

運行環(huán)境

執(zhí)行 P 代碼需要在服務(wù)器上安裝 P 引擎。此處我們使用的是 Sun 的 JavaServer Web Development Kit ( WDK )。為便于學(xué)習(xí),這個軟件包提供了大量可供修改的示例。安裝 WDK 之后,只需執(zhí)行 startserver 命令即可啟動服務(wù)器。在默認配置下服務(wù)器在端口 8080 監(jiān)聽,使用

即可打開缺省頁面。

在運行 P 示例頁面之前,請注意一下安裝 WDK 的目錄,特別是” work “子目錄下的內(nèi)容。執(zhí)行示例頁面時,可以在這里看到 P 頁面如何被轉(zhuǎn)換成 Java 源文件,然后又被編譯成 class 文件(即 Servlet )。 WDK 軟件包中的示例頁面分為兩類,它們或者是 P 文件,或者是包含一個表單的 HTML 文件,這些表單均由 P 代碼處理。與 ASP 一樣, P 中的 Java 代碼均在服務(wù)器端執(zhí)行。因此,在瀏覽器中使用”查看源文件”菜單是無法看到 P 源代碼的,只能看到結(jié)果 HTML 代碼。所有示例的源代碼均通過一個單獨的” examples “頁面提供。

Java Servlet是一種開發(fā)Web應(yīng)用的理想構(gòu)架。 P以Servlet技術(shù)為基礎(chǔ),又在許多方面作了改進。P頁面看起來象普通HTML頁面,但它允許嵌入執(zhí)行代碼,在這一點上,它和ASP技術(shù)非常相似。利用跨平臺運行的JavaBean 組件,P為分離處理邏輯與顯示樣式提供了卓越的解決方案。P必將成為ASP技術(shù)的有力競爭者。

SQL語言簡介

SQL全稱是“結(jié)構(gòu)化查詢語言(Structured Query Language)”,最早的是IBM的圣約瑟研究實驗室為其關(guān)系數(shù)據(jù)庫管理系統(tǒng)SYSTEM R開發(fā)的一種查詢語言,它的前身是SQUARE語言。SQL語言結(jié)構(gòu)簡潔,功能強大,簡單易學(xué),所以自從IBM公司1981年推出以來,SQL語言,得到了廣泛的應(yīng)用。如今無論是像Oracle ,Sybase,Informix,SQL server這些大型的數(shù)據(jù)庫管理系統(tǒng),還是像Visual Foxporo,PowerBuilder這些微機上常用的數(shù)據(jù)庫開發(fā)系統(tǒng),都支持SQL語言作為查詢語言。

Structured Query Language包含4個部分:

數(shù)據(jù)查詢語言DQL-Data Query Language SELECT

數(shù)據(jù)操縱語言DQL-Data Manipulation Language INSERT, UPDATE, DELETE

數(shù)據(jù)定義語言DQL-Data Definition Language CREATE, ALTER, DROP

數(shù)據(jù)控制語言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK

SQL的歷史

在70年代初,E.E.Codd首先提出了關(guān)系模型。70年代中期,IBM公司在研制 SYSTEM R關(guān)系數(shù)據(jù)庫管理系統(tǒng)中研制了SQL語言,最早的SQL語言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of R&D上公布的。

1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS數(shù)據(jù)庫系統(tǒng)中也實現(xiàn)了SQL。

1986年10月,美國ANSI采用SQL作為關(guān)系數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言(ANSI X3.),后為國際標(biāo)準(zhǔn)化組織(ISO)采納為國際標(biāo)準(zhǔn)。

1989年,美國ANSI采納在ANSI X3.報告中定義的關(guān)系數(shù)據(jù)庫管理系統(tǒng)的SQL標(biāo)準(zhǔn)語言,稱為ANSI SQL 89, 該標(biāo)準(zhǔn)替代ANSI X3.版本。該標(biāo)準(zhǔn)為下列組織所采納:

● 國際標(biāo)準(zhǔn)化組織(ISO),為ISO報告“Database Language SQL With Integrity Enhancement”

● 美國聯(lián)邦,發(fā)布在The Federal Information Processing Standard Publication(FIPS PUB)127

目前,所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)支持某些形式的SQL語言, 大部分數(shù)據(jù)庫打算遵守ANSI SQL89標(biāo)準(zhǔn)。

SQL的優(yōu)點

SQL廣泛地被采用正說明了它的優(yōu)點。它使全部用戶,包括應(yīng)用程序員、DBA管理員和終端用戶受益非淺。

(1) 非過程化語言

SQL是一個非過程化的語言,因為它一次處理一個記錄,對數(shù)據(jù)提供自動導(dǎo)航。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對單個記錄進行操作,可操作記錄集。所有SQL 語句接受作為輸入,返回作為輸出。SQL的特性允許一條SQL語句的結(jié)果作為另一條SQL語句的輸入。 SQL不要求用戶指定對數(shù)據(jù)的存放方法。 這種特性使用戶更易集中精力于要得到的結(jié)果。所有SQL語句使用查詢優(yōu)化器,它是RDBMS的一部分,由它決定對指定數(shù)據(jù)存取的最快速度的手段。查詢優(yōu)化器知道存在什么索引,哪兒使用合適,而用戶從不需要知道表是否有索引,表有什么類型的索引。

(2) 統(tǒng)一的語言

SQL可用于所有用戶的DB活動模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、 應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶?;镜腟QL 命令只需很少時間就能學(xué)會,更高級的命令在幾天內(nèi)便可掌握。 SQL為許多任務(wù)提供了命令,包括:

● 查詢數(shù)據(jù)

● 在表中插入、修改和刪除記錄

● 建立、修改和刪除數(shù)據(jù)對象

● 控制對數(shù)據(jù)和數(shù)據(jù)對象的存取

● 保證數(shù)據(jù)庫一致性和完整性

以前的數(shù)據(jù)庫管理系統(tǒng)為上述各類操作提供單獨的語言,而SQL 將全部任務(wù)統(tǒng)一在一種語言中。

(3) 是所有關(guān)系數(shù)據(jù)庫的公共語言

由于所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS轉(zhuǎn)到另一個。所有用SQL編寫的程序都是可以移植的。

Java語言簡介

一. Java的由來

當(dāng)1995年SUN推出Java語言之后,全世界的目光都被這個神奇的語言所吸引。那么Java到底有何神奇之處呢?

Java語言其實最是誕生于1991年,起初被稱為OAK語言,是SUN公司為一些消費性電子產(chǎn)品而設(shè)計的一個通用環(huán)境。他們最初的目的只是為了開發(fā)一種獨立于平臺的軟件技術(shù),而且在網(wǎng)絡(luò)出現(xiàn)之前,OAK可以說是默默無聞,甚至差點夭折。但是,網(wǎng)絡(luò)的出現(xiàn)改變了OAK的命運。

在Java出現(xiàn)以前。Internet上的信息內(nèi)容都是一些乏味死板的HTML文檔。這對于那些迷戀于WEB瀏覽的人們來說簡直不可容忍。他們迫切希望能在WEN中看到一些交互式的內(nèi)容,開發(fā)人員也極希望能夠在WEB上創(chuàng)建一類無需考慮軟硬件平臺就可以執(zhí)行的應(yīng)用程序,當(dāng)然這些程序還要有極大的安全保障。對于用戶的這種要求,傳統(tǒng)的編程語言顯得無能為力,面SUN的工程師敏銳地察覺到了這一點,從1994年起,他們開始將OAK技術(shù)應(yīng)用于WEB上,并且開發(fā)出了HotJava的之一個版本。當(dāng)SUN公司1995年正式以Java這個名字推出的時候,幾乎所有的WEB開發(fā)人員都想到:噢,這正是我想要的。于是Java成了一顆耀眼的明星,丑小鴨一下了變成了白天鵝。

二. Java的定義

Java是一種簡單的,面象對象的,分布式的,解釋的,鍵壯的安全的,結(jié)構(gòu)的中立的,可移植的,性能很優(yōu)異的多線程的,動態(tài)的語言。

Java的開發(fā)環(huán)境有不同的版本,如sun公司的Java Developers Kit, 簡稱 JDK。后來微軟公司推出了支持Java規(guī)范的Microsoft Visual J++ Java開發(fā)環(huán)境,簡稱 VJ++。

三. Java的特點

1. 平臺無關(guān)性

平臺無關(guān)性是指Java能運行于不同的平臺。Java引進虛擬機 原理,并運行于虛擬機,實現(xiàn)不同平臺的Java接口之間。使 用Java編寫的程序能在世界范圍內(nèi)共享。Java的數(shù)據(jù)類型與 機器無關(guān),Java虛擬機(Java Virtual Machine)是建立在 硬件和操作系統(tǒng)之上,實現(xiàn)Java二進制代碼的解釋執(zhí)行功能, 提供于不同平臺的接口的。

2. 安全性

Java的編程類似C++,學(xué)習(xí)過C++的讀者將很快掌握Java的精 髓。Java舍棄了C++的指針對存儲器地址的直接操作,程序 運行時,內(nèi)存由操作系統(tǒng)分配,這樣可以避免病毒通過指 針侵入系統(tǒng)。Java對程序提供了安全管理器,防止程序的 非法訪問。

3. 面向?qū)ο?/p>

Java 吸取了C++面向?qū)ο蟮母拍?將數(shù)據(jù)封裝于類中,利用類 的優(yōu)點,實現(xiàn)了程序的簡潔性和便于維護性。類的封裝性、 繼承性等有關(guān)對象的特性,使程序代碼只需一次編譯,然后 通過上述特性反復(fù)利用。程序員只需把主要精力用在類和接 口的設(shè)計和應(yīng)用上。Java 提供了眾多的一般對象的類,通 過繼承即可使用父類的方法。在 Java 中,類的繼承關(guān)系是單一的非多重的,一個子類 只有一個父類,子類的父類又有一個父類。Java 提供的 Object 類及其子類的繼承關(guān)系如同一棵倒立的樹形,根類 為 Object 類, Object 類功能強大,經(jīng)常會使用到它及其 它派生的子類。

4. 分布式

Java建立在擴展TCP/IP網(wǎng)絡(luò)平臺上。庫函數(shù)提供了用HTTP和FTP協(xié)議傳送和接受信息的方法。這使得程序員使用網(wǎng)絡(luò)上的文件和使用本機文件一樣容易。

5. 鍵壯性

Java致力于檢查程序在編譯和運行時的錯誤。類型檢查幫助檢查出許多開發(fā)早期出現(xiàn)的錯誤。Java自已操縱內(nèi)存減少了內(nèi)存出錯的可能性。Java還實現(xiàn)了真數(shù)組,避免了覆蓋數(shù)據(jù)的可能。這些功能特征大大提高了開發(fā)Java應(yīng)用程序的周期。Java提供: Null指針檢測、 數(shù)組邊界檢測、 異常出口、 Byte code校驗。

四. Java與C/C++語言

Java提供了一個功能強大語言的所有功能,但幾乎沒有一點含混特征。C++安全性不好,但C和C++被大家接受,所以Java設(shè)計成C++形式,讓大家很容易學(xué)習(xí)。

Java去掉了C++語言的許多功能,讓Java的語言功能很精煉,并增加了一些很有用的功能,如自動收集碎片。

Java去掉了以下幾個C和C++功能:

指針運算

結(jié)構(gòu)

typedefs

#define

需要釋放內(nèi)存

這將減少了平常出錯的50%。而且,Java很小,整個解釋器只需215K的RAM。

面象對象:Java實現(xiàn)了C++的基本面象對象技術(shù)并有一些增強,(為了語言簡單,刪除了一些功能)。Java處理數(shù)據(jù)方式和用對象接口處理對象數(shù)據(jù)方式一樣。

五. Java與Internet

我們知道,早先的 www 僅可以傳送文本和圖片,Java的出現(xiàn)實現(xiàn)了互動的頁面,是一次偉大的革命。

Java并不是為 Internet,WWW而設(shè)計的,它也可以用來編寫?yīng)毩⒌膽?yīng)用程序。Java 是一種面向?qū)ο笳Z言。Java 語言類似于 C++ 語言,所以已熟練掌握 C++語言的編程人員,再學(xué)習(xí) Java 語言就容易得多!Java 程序需要編譯。實際上有兩種 Java 程序:一種 Java 應(yīng)用程序是一個完整的程序,如 Web 瀏覽器。一種 Java 小應(yīng)用程序是運行于 Web 瀏覽器中的一個程序.

Java程序和它的瀏覽器HotJava,提供了可讓你的瀏覽器運行程序的方法。你能從你的瀏覽器里直接播放聲音。你還能播放頁面里的動畫。Java還能告訴你的瀏覽器怎樣處理新的類型文件。當(dāng)我們能在2400 baud線上傳輸視頻圖象時,HotJava將能顯示這些視頻。

當(dāng)今Internet的一大發(fā)展趨勢是電子商務(wù),而Internet的安全問題是必須解決的問題,通常大的部門應(yīng)設(shè)置防火墻,阻止非法侵入。

電子商務(wù)是當(dāng)今的熱門話題,然而傳統(tǒng)的編程語言難以勝任電子商務(wù)系統(tǒng),電子商務(wù)要求程序代碼具有基本的要求:安全、可靠、同時要求能 與運行于不同平臺的機器的全世界客戶開展業(yè)務(wù)。Java以其強安全性、平臺無關(guān)性、硬件結(jié)構(gòu)無關(guān)性、語言簡潔同時面向?qū)ο?,在網(wǎng)絡(luò)編程語言中占據(jù)無可比擬的優(yōu)勢,成為實現(xiàn)電子商務(wù)系統(tǒng)的選擇語言。

Java程序被放置在Internet服務(wù)器上,當(dāng)用戶訪問服務(wù)器時,Java程序被下載到本地的用戶機上,由瀏覽器解釋運行。

PowerBuilder簡介

PowerBuilder的產(chǎn)生

PowerBuilder是美國著名的數(shù)據(jù)庫應(yīng)用開發(fā)工具生產(chǎn)廠商PowerSoft推出的成功產(chǎn)品,其之一版于1991年6月正式投入市場。它是完全按照客戶/服務(wù)器體系結(jié)構(gòu)研制設(shè)計的,采用面向?qū)ο蠹夹g(shù),圖形化的應(yīng)用開發(fā)環(huán)境,是數(shù)據(jù)庫的前端開發(fā)工具。

PowerBuilder的特點

它支持應(yīng)用系統(tǒng)同時訪問多種數(shù)據(jù)庫,其中既包括Oracel,Sybase之類的大型數(shù)據(jù)庫,又包括FOXPRO之類支持ODBC接口的小型數(shù)據(jù)庫,PowerBuilder是完全可視化的數(shù)據(jù)庫開發(fā)工具,它提供了大量的控件,大大加快了項目的開發(fā)速度,也使開發(fā)者更容易掌握數(shù)據(jù)庫的開發(fā)。

它使用的編程語言叫做工PowerScripr,它也是一種高級的,結(jié)構(gòu)化的編程語言。PowerScript提供了一套完整的嵌入式SQL語句,開發(fā)人員可以像使用其它語句一樣自由地使用SQL語言,這樣就大大增強了程序操縱和訪問數(shù)據(jù)庫的能力。可以說PowerBuilder既適合初學(xué)者快速學(xué)習(xí)數(shù)據(jù)庫的開發(fā),又可以讓有經(jīng)驗的開發(fā)人員開發(fā)出功能強大的數(shù)據(jù)庫,是一種適用面非常廣的開發(fā)工具。

PowerBuilder是一個用來進行客戶/服務(wù)器開發(fā)的完全的可視化開發(fā)環(huán)境。使用PowerBuilder,你可以用一種可視的直觀的方式來創(chuàng)建應(yīng)用程序的用戶界面和數(shù)據(jù)庫接口。這是一個總的概念,實際上是開發(fā)人員使用PowerBuilder去開發(fā)應(yīng)用程序,由于所開發(fā)的各種應(yīng)用程序充分利用了圖形用戶接口(GUI)的優(yōu)點,所以PowerBuilder被認為是一個圖形工具。

在客戶/服務(wù)器結(jié)構(gòu)的應(yīng)用中,PowerBuilder具有描述多個數(shù)據(jù)庫連接與檢索的能力。特別是PowerBuilder能從大多數(shù)流行的RDBMS中存取數(shù)據(jù),且不管數(shù)據(jù)存放在什麼地方;另外,各種應(yīng)用程序又可以獨立于RDBMS,因為PowerBuilder可以使用數(shù)據(jù)庫的標(biāo)準(zhǔn)操作語言SQL(結(jié)構(gòu)化查詢語言)進行。

使用PowerBuilder,可以很容易地開發(fā)出功能強大的圖形界面的訪問服務(wù)器數(shù)據(jù)庫的應(yīng)用程序,PowerBuilder提供了建立符合工業(yè)標(biāo)準(zhǔn)的應(yīng)用程序(例如訂單登記、會計及制造系統(tǒng))所需的所有工具。

PowerBuilder應(yīng)用程序由窗口組成,這些窗口包含用戶與之交互的控件。開發(fā)人員可以使用所有標(biāo)準(zhǔn)空間(如按鈕、復(fù)選框、下拉式列表框或編輯框)以及PowerBuilder提供的特殊的使應(yīng)用程序更易于開發(fā)和使用的控件。

通常人們把PowerBuilder看成是一種開發(fā)工具,實際上它比其他工具強得多,是一種強有力的開發(fā)環(huán)境。開發(fā)人員不僅能用它來開發(fā)用戶容易使用的各種應(yīng)用程序還可以通過PowerBuilder修改數(shù)據(jù)庫,利用400多個內(nèi)部定義函數(shù),可以開發(fā)能和其他應(yīng)用程序進行的各種應(yīng)用程序。

PowerBuilder正在成為客戶/服務(wù)器應(yīng)用開發(fā)的標(biāo)準(zhǔn)。相對于其他任何客戶/服務(wù)器開發(fā)環(huán)境,PowerBuilder使開發(fā)人員的工作更快、成本更低、質(zhì)量更高、功能更強。

PowerBuilder為應(yīng)用開發(fā)提供了全面綜合性的支持,可以分別概括為如下幾點:

事件驅(qū)動的應(yīng)用程序

功能強大的編程語言與函數(shù)

面向?qū)ο蟮木幊?/p>

跨平臺開發(fā)

開放的數(shù)據(jù)庫連結(jié)系統(tǒng)

PowerBuilder開發(fā)環(huán)境

PowerBuilder開發(fā)環(huán)境由一系列集成的圖形畫板(Painter)組成,應(yīng)用開發(fā)人員通過簡單的鼠標(biāo)操作即可設(shè)計、建立、交互檢驗和測試客戶/服務(wù)器應(yīng)用程序。

Delphi簡介

Delphi這個名字源于古希臘的城市名。它集中了第三代語言的優(yōu)點。以O(shè)bject Pascal為基礎(chǔ),擴充了面向?qū)ο蟮哪芰?,并且完美地結(jié)合了可視化的開發(fā)手段。Delphi自1995年3 月一推出就受到了人們的關(guān)注,并在當(dāng)年一舉奪得了多項大獎。

Delphi的出現(xiàn)打破了V承可視化編程領(lǐng)域一統(tǒng)天下的局面。并且Delphi使用了本地編譯器直接生成技術(shù),使程序的執(zhí)行性能遠遠高于其它產(chǎn)品生成的程序。它還是真正的面向?qū)ο蟮木幊陶Z言。PASCAL語言的嚴謹加上可視化的優(yōu)勢和強大的數(shù)據(jù)庫功能使得它有充分的資本和微軟的VB叫板。許多人當(dāng)時都認為Pascal 是最有前途的程序設(shè)計語言,并預(yù)測Delphi將會成為可視化編程的主流環(huán)境。

Delphi在你編好程序后自動轉(zhuǎn)換成.EXE文件它運行時速度比VB快,而且編譯后不需要其他的支持庫就能運行。它的數(shù)據(jù)庫功能也挺強的,是開發(fā)中型數(shù)據(jù)庫軟件理想的編程工具。 Delphi適用于應(yīng)用軟件、數(shù)據(jù)庫系統(tǒng)、系統(tǒng)軟件等類型的開發(fā)。而且它擁有和VB差不多一樣的功能,而且一樣能應(yīng)用API函數(shù),這在控制Windows很有用。

Delphi是全新的可視化編程環(huán)境,為我們提供了一種方便、快捷的Windows應(yīng)用程序開發(fā)工具。它使用了Microsoft Windows圖形用戶界面的許多先進特性和設(shè)計思想,采用了彈性可重復(fù)利用的完整的面向?qū)ο蟪绦蛘Z言(Object-Oriented Language)、當(dāng)今世界上最快的編輯器、最為領(lǐng)先的數(shù)據(jù)庫技術(shù)。對于廣大的程序開發(fā)人員來講,使用Delphi開發(fā)應(yīng)用軟件,無疑會大大地提高編程效率,而且隨著應(yīng)用的深入,您將會發(fā)現(xiàn)編程不再是枯燥無味的工作——Delphi的每一個設(shè)計細節(jié),都將帶給您一份欣喜。

Delphi的基本形式

Delphi實際上是Pascal語言的一種版本,但它與傳統(tǒng)的Pascal語言有天壤之別。一個Delphi程序首先是應(yīng)用程序框架,而這一框架正是應(yīng)用程序的“骨架”。在骨架上即使沒有附著任何東西,仍可以嚴格地按照設(shè)計運行。您的工作只是在“骨架”中加入您的程序。缺省的應(yīng)用程序是一個空白的窗體(form),您可以運行它,結(jié)果得到一個空白的窗口。這個窗口具有Windows窗口的全部性質(zhì):可以被放大縮小、移動、更大最小化等,但您卻沒有編寫一行程序。因此,可以說應(yīng)用程序框架通過提供所有應(yīng)用程序共有的東西,為用戶應(yīng)用程序的開發(fā)打下了良好的基礎(chǔ)。

Delphi已經(jīng)為您做好了一切基礎(chǔ)工作——程序框架就是一個已經(jīng)完成的可運行應(yīng)用程序,只是不處理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代碼而已。 在空白窗口的背后,應(yīng)用程序的框架正在等待用戶的輸入。由于您并未告訴它接收到用戶輸入后作何反應(yīng),窗口除了響應(yīng)Windows的基本操作(移動、縮放等)外,它只是接受用戶的輸入,然后再忽略。

個人建議 多去了解 Cisco 這個對搞網(wǎng)絡(luò)方面的人,不難理解它是什么 ,多去看看它的原文書籍,盡量看原文的,因為中文的翻譯版本不知道 什么時候才能出來,而且原文本 幾乎都是 英文版 所以要求 英語要有一定的理解能力和閱讀能力,推薦么,推薦LZ看看 《Cisco網(wǎng)絡(luò)之一階》《思科網(wǎng)絡(luò)學(xué)院教材》(共2大本)證書 可以去考 CCNA ND NP 以及 更高 IE ,如果不想考這些個,可以去考 軟考(計算機軟件水平考試)。最后祝您成功?。【W(wǎng)絡(luò)要帶著問題去實踐,你的疑惑就少了。加油!

我也是一個大學(xué)生 現(xiàn)在大三了 正面對著就業(yè)的難題。

對于你的提問,一樓的太瘋狂,可是有用的很少

1.建議你把.net做為主要學(xué)習(xí)目標(biāo)。它是一個用途很廣的語言。

P、ASP、PHP等主流網(wǎng)頁都是要學(xué)習(xí)的。

如果你只想學(xué)一門主流語言去面對社會,那就大錯鋒顫賣特錯了。

(現(xiàn)在的大學(xué)注重全面,讓學(xué)生可以勝任很多的職位,提高就業(yè)率。)

一門語言是無法再幾百萬甚至上千萬的就業(yè)者里面脫穎而出,找到

一個和適的崗位的。即使學(xué)好了幾門語言也不好找到一個好工作。

但機會是給有準(zhǔn)備的人的。

2.至于軟件編程語言,這個不用擔(dān)心。

學(xué).NET的時候用的是Visual Studio(vs?。?!我都想去玩了)

這個工具是必須學(xué)好的,以后包括數(shù)據(jù)庫都要用它

所以學(xué).net的時候?qū)Wc語言是事半功銀逗倍的(個人意見,高手勿罵)

3.如果你的意向是學(xué)網(wǎng)絡(luò)工程那~~~~~

DOS命令與服務(wù)器工作機制都是要精通的(這些我不會問高手去)

4.建議你在學(xué)習(xí)同時兼修FLASH與英語(說實話,我討厭這門語言)

陳旭大大的漢語言什么時候能出來啊~~~~~~

你學(xué)去吧,有問題洞羨在問我

說多了等于廢話,我就簡單跟你講講,我是學(xué)的數(shù)據(jù)庫專業(yè),你在網(wǎng)頁編程方面更好選擇ASP.NET,因為它有界面操作,好學(xué),另外它也是最新的,都是在ASP之后出來的。編程語言你還是選擇JAVA,這喚搭渣是目前更流行最實用的編程語言,很好就業(yè)只要你學(xué)的很精通。如果你學(xué)計算機專業(yè)肯定是要考證書的,這樣可以增加你就業(yè)的籌碼,考試可以考軟件設(shè)計師,網(wǎng)絡(luò)工程師,系統(tǒng)分析師等等,具體你可以到網(wǎng)和悄上看,一般考證書更好還是選擇希賽的資料再結(jié)合一些教學(xué)視頻非常好的。平時學(xué)習(xí)要一步一個枝睜腳印,記住最基礎(chǔ)的更具有遷移性,最基礎(chǔ)的更具有生命力

我也是一名大二的學(xué)生,不過學(xué)的是信息管理,也算是半個計算機專業(yè),我建議你要么學(xué)java,jsp等,要么學(xué)asp.net,php等等,.net應(yīng)該說是很有前途的,學(xué)的人相當(dāng)多,你宴純看圖書館里基則關(guān)于.net的書有多少就知道它有多流行了,至于編程語言,可以學(xué)搏祥棚學(xué)C#,也是目前很流行的語言,微軟的東西畢竟不會差到那里去的,只要還是要看個人興趣了,呵呵,祝你好運!

介意你學(xué)java 現(xiàn)在非常搜蔽檔流行 將來也是個趨勢 不光軟件 網(wǎng)頁 都可以用java

網(wǎng)絡(luò)嘛 要學(xué)好各種并握的協(xié)議 最重要的是交換機 路由器的配置和處理

c語言可以連接access數(shù)據(jù)庫??

#import “C:\program files\common files\system\ado\msado15.dll ” no_namespace rename( “EOF “, “adoEOF “)

//#import “c:\program files\common files\system\ado\msado15.dll ” rename ( “EOF “, “adoEOF “) no_namespace

#define CREATEiNSTANCE(sp,riid) { HRESULT _hr =sp .CreateInstance( __uuidof( riid ) ); \

if (FAILED(_hr)) _com_issue_error(_hr); }

#define RsITEM(rs,x) ((rs-> Fields-> Item-> Value))

class CHmbAdoDB

{

public:

BOOLm_bOpen;

_ConnectionPtr m_DbConn;

CString m_ErrMsg;

CString m_SQLState;

long mSqlCode;

public:

void Cancel();

BOOL IsOpen();

void RollbackTrans();

void CommitTrans();

long BeginTrans();

void Close();

BOOL Open(LPCSTR lpszConnect);

BOOL Execute(LPCTSTR lpSQL);

void ProviderError();

CHmbAdoDB()

{

}

virtual ~CHmbAdoDB()

{

}

};

class CHmbAdoDBRs : public CObject

{

public:

_RecordsetPtr m_Rs;

public:

CHmbAdoDBRs();

virtual ~CHmbAdoDBRs();

BOOL Open( CHmbAdoDB *pDB, LPCSTR szSource,long option=-1);

void Close();

void GetRs(_variant_t x,_bstr_t &ret);

void GetRs(_variant_t x,CString &ret);

BOOL IsEOF();

BOOL IsOpen();

BOOL MoveNext();

BOOL MovePrev();

BOOL MoveFirst();

BOOL MoveLast();

};

#endif // !defined(AFX_RfidAdoDB_H__7C539954_1C62_47B6_AB6E_1A5BB73A67E5__INCLUDED_) truct InitOle

{

InitOle() { ::CoInitialize(NULL); }

~InitOle() { ::CoUninitialize(); }

} _init_InitOle_;

long mSqlCode;

BOOL CHmbAdoDB::Open(LPCSTR lpszConnect)

{

try

{

CREATEiNSTANCE(m_DbConn,Connection);

m_DbConn-> Open(lpszConnect, ” “, ” “, adModeUnknown );

}

catch( _com_error &e)

{

return FALSE;

}

catch(…)

{

return FALSE;

}

return TRUE;

}

void CHmbAdoDB::Close()

{

if( IsOpen() )

{

m_DbConn-> Close();

}

}

long CHmbAdoDB::BeginTrans()

{

return m_DbConn-> BeginTrans();

}

void CHmbAdoDB::CommitTrans()

{

m_DbConn-> CommitTrans();

}

void CHmbAdoDB::RollbackTrans()

{

m_DbConn-> RollbackTrans();

}

void CHmbAdoDB::Cancel()

{

m_DbConn-> Cancel();

}

BOOL CHmbAdoDB::IsOpen()

{

return ( (m_DbConn-> GetState() != 0) ? TRUE : FALSE );

}

BOOL CHmbAdoDB::Execute(LPCTSTR lpSQL)

{

if (!IsOpen())

{

AfxMessageBox( “Network error, Database do not open. “);

return FALSE;

}

CString strSQL(lpSQL);

strSQL.TrimLeft();

strSQL.TrimRight();

try

{

m_DbConn-> Execute(_bstr_t(strSQL), NULL, adExecuteNoRecords);

}

catch( _com_error &e)

{

return FALSE;

}

catch(…)

{

return FALSE;

}

return TRUE;

}

void CHmbAdoDB::ProviderError()

{

// Print Provider Errors from Connection object.

// pErr is a record object in the Connection ‘s Error collection.

ErrorPtr pErr = NULL;

if( (m_DbConn-> Errors-> Count) > 0)

{

long nCount = m_DbConn-> Errors-> Count;

// Collection ranges fromto nCount -1.

for(long i = 0; i Errors-> GetItem(i);

mSqlCode = pErr-> NativeError;

m_ErrMsg.Format( “SQLCODE : %ld\t%s “,mSqlCode, LPCTSTR(pErr-> Description));

m_SQLState.Format( “%s “,(char*)pErr-> SQLState);

printf( “%s // %s\n “,m_SQLState,m_ErrMsg);

}

}

m_DbConn-> Errors-> Clear();

}

CHmbAdoDBRs::CHmbAdoDBRs( )

{

}

CHmbAdoDBRs::~CHmbAdoDBRs()

{

}

BOOL CHmbAdoDBRs::Open( CHmbAdoDB *pDB, LPCSTR szSource,long option )

{

CString strSQL;

strSQL = CString(szSource);

strSQL.TrimLeft();

strSQL.TrimRight();

_variant_t vRecsAffected(0L);

//CREATEiNSTANCE( m_Rs,Recordset) ;

//m_Rs-> PutRefActiveConnection( pDB-> m_DbConn );

try

{

m_Rs = pDB-> m_DbConn-> Execute(_bstr_t(strSQL),

&vRecsAffected,

adOptionUnspecified);

m_Rs-> AddRef();

// m_Rs-> Open(szSource, vtMissing, adOpenKeyset, adLockBatchOptimistic, adOptionUnspecified);

// m_Rs-> Open(szSource, vtMissing, adOpenKeyset, adLockReadOnly, option);

// m_Rs-> Open(szSource,pDB-> m_DbConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic, adCmdText);

}

catch( _com_error &e)

{

//ErrorMessage();

m_Rs-> Close();

m_Rs-> Release();

return FALSE;

}

catch(…)

{

m_Rs-> Close();

m_Rs-> Release();

return FALSE;

}

return TRUE;

}

void CHmbAdoDBRs::Close()

{

m_Rs-> Close();

m_Rs-> Release();

}

void CHmbAdoDBRs::GetRs(_variant_t x,_bstr_t &ret)

{

ret = (m_Rs-> Fields-> Item-> Value);

}

void CHmbAdoDBRs::GetRs(_variant_t x,CString &ret)

{

_bstr_t retVal;

try{

retVal = (m_Rs-> Fields-> Item-> Value);

}

catch(…){

ret = ” “;

return;

}

ret = CString((char*) retVal);

}

BOOL CHmbAdoDBRs::IsEOF()

{

return m_Rs-> adoEOF;

}

BOOL CHmbAdoDBRs::IsOpen()

{

return ( (m_Rs-> GetState() != 0) ? TRUE : FALSE );

}

BOOL CHmbAdoDBRs::MoveNext() { return (FAILED(m_Rs-> MoveNext()) ? FALSE : TRUE ); }

BOOL CHmbAdoDBRs::MovePrev() { return (FAILED(m_Rs-> MovePrevious()) ? FALSE : TRUE ); }

BOOL CHmbAdoDBRs::MoveFirst() { return (FAILED(m_Rs-> MoveFirst()) ? FALSE : TRUE ) ; }

BOOL CHmbAdoDBRs::MoveLast() { return (FAILED(m_Rs-> MoveLast()) ? FALSE : TRUE ) ; }

以上為一個ADO的封裝類.

c語言如何連接access數(shù)據(jù)庫

關(guān)于c 訪問多種數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級標(biāo)準(zhǔn)機房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達10T,機柜接入千兆交換機,能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認可。


網(wǎng)站題目:C語言實現(xiàn)數(shù)據(jù)庫多樣性訪問(c訪問多種數(shù)據(jù)庫)
網(wǎng)站鏈接:http://www.5511xx.com/article/djpcgps.html