當前位置:首頁 » 編程語言 » 嵌入式sql是指把sql放入
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

嵌入式sql是指把sql放入

發布時間: 2023-07-26 06:50:06

『壹』 嵌入式sql和JDBC、ODBC什麼區別呢

初次接觸嵌入式資料庫(Embedded Database)可能對這個概念總不是很清楚,它究竟與資料庫伺服器(Database Server)有什麼區別,它們又分別適用於那些應用場景呢,這是需要解決的問題。
在談區別之前,先來個感性認識。像Oracle、Sybase、MySQL和SQL Server這些大家熟知的資料庫都屬於資料庫伺服器(當然不排除某些也提供嵌入式版本),而像SQLite、Berkeley DB等屬於嵌入式資料庫。
嵌入式資料庫跟資料庫伺服器最大的區別在於它們運行的地址空間不同。通常,資料庫伺服器獨立地運行一個守護進程(daemon),而嵌入式資料庫與應用程序運行在同一個進程。
資料庫伺服器的架構如下:

圖中的資料庫客戶端通常通過資料庫驅動程序如JDBC、ODBC等訪問資料庫伺服器,資料庫伺服器再操作資料庫文件。
資料庫服務是一種客戶端伺服器模式,客戶端和伺服器是完全兩個獨立的進程。它們可以分別位於在不同的計算機甚至網路中。客戶端和伺服器通過TCP/IP進行通訊。這種模式將數據與應用程序分離,便於對數據訪問的控制和管理。

嵌入式資料庫架構如下:

嵌入式資料庫不需要資料庫驅動程序,直接將資料庫的庫文件鏈接到應用程序中。應用程序通過API訪問資料庫,而不是TCP/IP。因此,嵌入式資料庫的部署是與應用程序在一起的。比如常見的版本控制器SubVersion,它所用的嵌入式資料庫就是跟應用程序放在一起的。
資料庫伺服器和嵌入式對比如下:
(1)資料庫伺服器通常允許非開發人員(DBA,資料庫庫管理員)對資料庫進行操作,而在嵌入式數據中通常只允許應用程序對其進行訪問和控制。
(2)資料庫伺服器將數據與程序分離,便於對資料庫訪問的控制。而嵌入式資料庫則將數據的訪問控制完全交給應用程序,由應用程序來進行控制。
(3)資料庫伺服器需要獨立的安裝、部署和管理,而嵌入式數據通常和應用程序一起發布,不需要單獨地部署一個資料庫伺服器,具有程序攜帶性的特點。
從上面的對比可以看出,資料庫伺服器和嵌入式資料庫各自具有自己的特點,它們分別適用於不同的應用場景。
如果你要存儲的數據的訪問比較復雜,比如跨網路、復雜的訪問控制策略,又需要資料庫管理員經常進行管理和維護,那麼資料庫伺服器就非常適合你。
如果你要存儲的數據的訪問之需要應用程序控制即可,並且基本不需要人工干預,而且需要對數據的訪問簡單、快速有效,那麼嵌入式資料庫適合你。
另外,你是否有過這樣的情況:存儲的數據量不是很大,如果搞個一般的資料庫來感覺太浪費了,而且如果發布這個程序還非常麻煩,這時那些微小的嵌入式資料庫可能非常適合你(如某些電子郵件客戶端就採用的是嵌入式資料庫)。

『貳』 C語言中使用嵌入式sql

嵌入式SQL程序的VC+SQL server 2000實現的環境配置

嵌入SQL的C應用程序具體到VC++6.0, SQL Server2000 下調試可分為五步:1、環境初始化;2、預編譯;3、編譯;4、連接;5、運行。下面就其中重要的的操作方法給以詳細說明。
1、環境初始化
(1) SQL Server2000為其嵌入式SQL提供了一此特殊的介面;默認的安裝方式沒有安裝這此介面;因此,需要把devtools.rar解壓到SQLServer的系統日錄下(即文件夾devtools中的所有文件);如果操作系統安裝在C盤,則SQL Server的系統目錄是C:\Program Files\Microsoft SQL Server。(或 在安裝Microsoft SQL Server 2000時選擇安裝Development Tools,為使用嵌入式SQL語言准備必要的頭文件和庫文件。)
( 2)初始化Visual C++ 6.0編譯器環境。在命令行方式下運行文件\Microsoft Visual Studio\VC98\Bin\vcvars32.bat。
(3)初始化SQL Server的預編譯環境。在命令行方式下運行文件:\Devtools\samples\esqlc\setenv.bat。
( 4) VC++6.0環境配置。具體配置分為如下三步[:
①Tools->options->directories->Include Files:添加 C:\Program Files\Microsoft SQL Server\devtools\include。將SQL server自帶的用於資料庫開發的頭文件包含到工程環境中。
②Tools->options->directories->Lib Files:添加C:\Program Files\Microsoft SQL Server\devtools\x861ib。將開發用到的包包含到工程中。
③project->Settings->Link->Object/Library Moles,添加庫文件:SQLakw32.lib, Caw32.lib。這兩個文件之間用空格分開。

2、預編譯
C語言編譯程序不能識別應用程序中的SQL語句,需要經過預處理程序將其轉換成C語句。SQL Server的預處理程序是nsqlprep.exe。 nsqlprep.exe在SQL Server安裝日錄的MSSQL\Binn下。若SQL Server資料庫採用的是默任安裝方式,則需要把binn.rar的內容拷貝到指定目錄下。

Microsoft SQL Server 2000提供的預編譯程序nsqlprep.exe,用於對嵌入式SQL程序進行預編譯處理,生成C語言源程序.實際上就是將嵌入式SQL程序中的嵌入式SQL語句替換為對運行時庫文件Sqlakw32. dll的函數調用,接著運行時庫文件調用動態連接庫Ntwdblib. dll通過網路來存取Microsoft SQL Server 2000資料庫伺服器.
預編譯程序nsqlprep的常用語法為:
nsqlprep ESQL_File /SQLACCESS /DB server_name.database_name /PASS login.password
其中ESQL_File是要預編譯的嵌入式SQL程序;/SQLACCESS通知nsqlprep自動地為嵌入式SQL程序中的靜態SQL語句創建相應的存儲過程;/DB server_name.database_name指明要連接的伺服器以及資料庫名稱;/PASS login.password給出登錄名及相應的口令.

下面的程序demo.sqc實現了從資料庫伺服器hushaobo的資料庫pubs中的authors表中讀取au_lname為white的人對應的 au_fname 值,並保存到變數first_name 中顯示出來。(連接資料庫的用戶為sa,對應密碼為1982)

#include<stdio.h>
void main()
{
EXEC SQL BEGIN DECLARE SECTION;
char first_name[40];
char last_name[]="White";
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO hushaobo.pubs
USER sa.1982;
EXEC SQL SELECT au_fname INTO :first_name from authors WHERE au_lname = :last_name;
EXEC SQL DISCONNECT ALL;
printf("first name: %s \n",first_name);
}

在命令行下運行:nsqlprep demo.sqc /SQLACCESS /DB hushaobo.pubs /PASS sa.1982
則生成demo.c,將該文件添加到VC工程中編譯即可。

3、編譯,連接與運行
在VC++6.0中創建一個 "WIN32 Console Application"的Proiect,然後將預編譯生成的c文件加入Proiect,編譯連接即可生成訪問SQL Server的可執行程序。 Visual C++ 6.0進行編譯連接時需要用到動態鏈接庫SQLakw32.d11與SQLaiw32.d11;盡管這兩個文件已經隨同binn.rar被拷貝到SQLServer安裝目錄的MSSQL\Binn文件夾下,但仍然需要把它們的路徑加到系統路徑變數中,以使得程序運行時能找到它們,具體添加方法如下:
方法1:把這兩個文件拷貝到操作系統目錄下的system32子目錄中。
方法2:我的電腦->屬性->高級->環境變數->path->編輯,在變數值中加入路徑值;新路徑與已有路徑間用;間隔。

注意調適程序時,文件名中不要包含cursor,否則可能會出錯。

『叄』 下列選項中可以嵌入sql語句的語言有

下列選項中可以嵌入sql語句的語言有PHPD、Java、C#。嵌入式SQL語言概念:將SQL語言嵌入到某一種高級語言(C/C++,java等)中使用,被嵌入的語言稱為宿主語言。優點:既繼承了高級語言的過程式控制制性,又結合SQL語言的復雜結果集操作的非過程性,為資料庫操作者提供安全可靠的操作方式:通過應用程序進行操作。

『肆』 什麼是嵌入式資料庫

嵌入式資料庫的名稱來自其獨特的運行模式。

這種資料庫嵌入到了應用程序進程中,消除了與客戶機伺服器配置相關的開銷。嵌入式資料庫喚空廳實際上是輕量級的,在運行時,它們需要較少的內存。它們是使用精簡代碼編寫的,對於嵌入式設備,其速度更快,效果更理想。嵌入式運行模式允許嵌入式資料庫通過SQL來輕松管理應用程虧友序數據,而不依靠原始的文本文件。嵌入式資料庫還提供零配置運行模式,這樣可以啟用其中一個並運和隱行一個快照。

簡單來說,就是一些終端使用的資料庫,如POS機、手機等或者其他的非電腦上面使用的,一般都可以叫嵌入式資料庫典型的資料庫是sqlite,單文件資料庫


『伍』 互動式SQL與嵌入式SQL有什麼不同

1、語言不同

互動式SQL是指在終端交互方式下使用的SQL語言稱為互動式SQL;嵌入式SQL是一種將SQL語句直接寫入C語言,COBOL,FORTRAN, Ada等編程語言的源代碼中的方法。

2、使用不同

互動式SQL是在終端交互方式下使用;嵌入式SQL是嵌入在高級語言的程序中使用。

(5)嵌入式sql是指把sql放入擴展閱讀:

提供對於嵌入式SQL的支持,需要資料庫廠商除了提供DBMS之外,還必須提供一些工具。為了實現對於嵌入式SQL的支持,技術上必須解決以下4個問題:

1、宿主語言的編譯器不可能識別和接受SQL文,需要解決如何將SQL的宿主語言源代碼編譯成可執行碼;

2、宿主語言的應用程序如何與DBMS之間傳遞數據和消息;

3、如何把對數據的查詢結果逐次賦值給宿主語言程序中的變數以供其處理;

4、資料庫的數據類型與宿主語言的數據類型有時不完全對應或等價,如何解決必要的數據類型轉換問題。

嵌入式SQL源碼的處理流程 為了解決上述這些問題,資料庫廠商需要提供一個嵌入式SQL的預編譯器,把包含有嵌入式SQL文的宿主語言源碼轉換成純宿主語言的代碼。

這樣一來,源碼即可使用宿主語言對應的編譯器進行編譯。通常情況下,經過嵌入式SQL的預編譯之後,原有的嵌入式SQL會被轉換成一系列函數調用。因此,資料庫廠商還需要提供一系列函數庫,以確保鏈接器能夠把代碼中的函數調用與對應的實現鏈接起來。

『陸』 嵌入式sql的預處理方式是指

嵌入式sql的預處理方式是指把嵌入的SQL語句處理成函數調用形式。嵌入式SQL實現時,採用預處理方式是識別出SQL語句,並處理成函數調用形式,嵌入式SQL是一種將SQL語句直接寫入C語言,COBOL,FORTRAN,Ada編程語言的源代碼中的方法。