Ⅰ 什麼是嵌入式資料庫
嵌入式資料庫的名稱來自其獨特的運行模式。這種資料庫嵌入到了應用程序進程中,消除了與客戶機伺服器配置相關的開銷。嵌入式資料庫實際上是輕量級的,在運行時,它們需要較少的內存。它們是使用精簡代碼編寫的,對於嵌入式設備,其速度更快,效果更理想。嵌入式運行模式允許嵌入式資料庫通過 sql 來輕松管理應用程序數據,而不依靠原始的文本文件。嵌入式資料庫還提供零配置運行模式,這樣可以啟用其中一個並運行一個快照。
Ⅱ 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語言是資料庫結構化查詢語言,是非過程化編程語言。而程序設計語言則有更多的面向對象及邏輯程序設計。比如用SQL語言編寫個窗口、做個進度條什麼的,是無法實現的。SQL語言可以說是,程序設計語言和資料庫之間的一個翻譯官。程序設計中需要操作資料庫,則通過SQL語言來翻譯給資料庫管理系統
Ⅳ 嵌入式sql的預處理方式是指
嵌入式sql的預處理方式是指把嵌入的SQL語句處理成函數調用形式。嵌入式SQL實現時,採用預處理方式是識別出SQL語句,並處理成函數調用形式,嵌入式SQL是一種將SQL語句直接寫入C語言,COBOL,FORTRAN,Ada編程語言的源代碼中的方法。
Ⅳ 什麼是嵌入式資料庫
簡單來說,就是一些終端使用的資料庫,如POS機、手機等或者其他的非電腦上面使用的,一般都可以叫
嵌入式資料庫
典型的資料庫是sqlite,單文件資料庫
Ⅵ sql嵌入式和授權有什麼區別
不必逐個地為每個用戶授予或撤銷特權。
組提供了一種便利的方法為一組用戶執行授權,而不必逐個地為每個用戶授予或撤銷特權。通常,動態SQL語句考慮組成員資格,但靜態SQL語句並非如此。
嵌入式SQL是一種將SQL語句直接寫入C語言,COBOL,FORTRAN,Ada等編程語言的源代碼中的方法。在嵌入式SQL中,為了能夠區分SQL語句與主語言語句,所以SQL語句都必須加前綴EXECSQL。SQL語句的結束標准則隨主語言的不同而不同。
Ⅶ 什麼是嵌入式sql應用程序
嵌入式SQL
語言是將
SQL語句
直接嵌入到程序的源代碼中,與其他
程序設計語言
語句混合.
嵌入式SQL的用途:它是資料庫應用程序的一種開發方法.是一種應用程序進行資料庫訪問時所採取的編程式
資料庫語言
.
Ⅷ SQL是嵌入式語言嗎
義:
你所寫的是C語言在早期利用高級API,在C語言的源代碼中用EXEC SQL include ...這樣的方式嵌入進SQL語句,讓SQL語句能在C中被執行與認識,這樣能讓C來控制邏輯流程地執行SQL語句。而在現在,不推薦這種嵌入式SQL了,雖然在 Microsoft SQL Server 2000 中仍然支持用於 C 語言的嵌入式 SQL API,但在 SQL Server 以後的版本中,不再包含在使用此 API 的應用程序上進行編程工作所需要的文件。在 SQL Server 的下一版本中,仍然支持使用用於 C 語言的嵌入式 SQL 編寫的現有應用程序的連接,但在以後的版本中也將不再提供這種支持。編寫新的應用程序時,請不要使用用於 C 語言的嵌入式 SQL。修改現有應用程序時,強烈建議刪除依賴用於 C 語言的嵌入式 SQL 的內容。可以使用 Microsoft ActiveX Data Objects (ADO)、OLE DB 或 ODBC 來代替用於 C 語言的嵌入式 SQL,對 SQL Server 中的數據進行訪問。與 OLE DB 這類 COM API 或 ODBC 這類調用級介面相比,嵌入式 SQL 的語法更簡單,因此更易於學習和編程。但嵌入式 SQL 不如 OLE DB 或 ODBC 靈活,在用 OLE DB 或 ODBC 精心編寫的應用程序中,只需切換驅動程序或提供程序,即可從一個 DBMS 切換到另一個。在編譯應用程序(例如開發按需查詢工具時)時不識別SQL 語句的環境中,更適合使用 OLE DB 和 ODBC,而實際上,ODBC都很老了。
所以現在都是用的JDBC,ADO去連接資料庫,你看的那些實在是太老掉牙了,不要糾結。不過想了解一下,請參考:
嵌入式SQL語句(C語言版):
其實上面這些都是大學里的教程,很古老的,杯具。看下這個回答:挺好!
2.按另一種流傳的口頭說法:
嵌入式SQL語言 在源代碼中用特殊標記 標記SQL代碼段,如你說的在方法中string="select * from table"這種放在C#代碼中的用引號括起來的句子,也有人稱之為嵌入式SQL;
非嵌入式SQL是指調用函數庫來完成相應的功能;
另外,提下你的提問很有問題,網路上很多問題本來很簡單,但是描述不清,無人回答,建議你看下《提問的藝術》
Ⅸ 互動式SQL與嵌入式SQL有什麼不同
1、語言不同
互動式SQL是指在終端交互方式下使用的SQL語言稱為互動式SQL;嵌入式SQL是一種將SQL語句直接寫入C語言,COBOL,FORTRAN, Ada等編程語言的源代碼中的方法。
2、使用不同
互動式SQL是在終端交互方式下使用;嵌入式SQL是嵌入在高級語言的程序中使用。
(9)什麼是嵌入式sql擴展閱讀:
提供對於嵌入式SQL的支持,需要資料庫廠商除了提供DBMS之外,還必須提供一些工具。為了實現對於嵌入式SQL的支持,技術上必須解決以下4個問題:
1、宿主語言的編譯器不可能識別和接受SQL文,需要解決如何將SQL的宿主語言源代碼編譯成可執行碼;
2、宿主語言的應用程序如何與DBMS之間傳遞數據和消息;
3、如何把對數據的查詢結果逐次賦值給宿主語言程序中的變數以供其處理;
4、資料庫的數據類型與宿主語言的數據類型有時不完全對應或等價,如何解決必要的數據類型轉換問題。
嵌入式SQL源碼的處理流程 為了解決上述這些問題,資料庫廠商需要提供一個嵌入式SQL的預編譯器,把包含有嵌入式SQL文的宿主語言源碼轉換成純宿主語言的代碼。
這樣一來,源碼即可使用宿主語言對應的編譯器進行編譯。通常情況下,經過嵌入式SQL的預編譯之後,原有的嵌入式SQL會被轉換成一系列函數調用。因此,資料庫廠商還需要提供一系列函數庫,以確保鏈接器能夠把代碼中的函數調用與對應的實現鏈接起來。