當前位置:首頁 » 編程語言 » sql嵌入式

sql嵌入式

發布時間: 2023-03-23 23:42:41

⑴ 嵌入式sql的簡介

嵌入式SQL(英文: Embedded SQL)是一種將SQL語句直接寫入C語言,COBOL,FORTRAN, Ada等編程語言的源代碼中的方法。藉此方法,可使得應用程序擁有了訪問數據以及處理數據的能力。在這一方法中,將SQL文嵌入的目標源碼的語言稱為宿主語言。
在SQL標準的SQL86(1986年發布)中定義了對於COBOL, FORTRAN, PI/L等語言的嵌入式SQL的規范。在SQL89(1989年發布)規范中,定義了對於C語言的嵌入式SQL的規范。一些大型的資料庫廠商發布的資料庫產品中,都提供了對於嵌入式SQL的支持。比如Oracle, DB2等。

⑵ 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是指調用函數庫來完成相應的功能;

另外,提下你的提問很有問題,網路上很多問題本來很簡單,但是描述不清,無人回答,建議你看下《提問的藝術》

⑶ 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有什麼不同

1、語言不同

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

2、使用不同

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

(4)sql嵌入式擴展閱讀:

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

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

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

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

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

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

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

⑸ 什麼是嵌入式sql應用程序

嵌入式SQL
語言是將
SQL語句
直接嵌入到程序的源代碼中,與其他
程序設計語言
語句混合.
嵌入式SQL的用途:它是資料庫應用程序的一種開發方法.是一種應用程序進行資料庫訪問時所採取的編程式
資料庫語言
.

⑹ 資料庫嵌入式sql編程,求解

題目沒有說明表之間的外鍵關系,那我就默認同名的列名是外鍵,不清楚你用的編程語言,所以我使用:input作為輸入變數
1
select Teacher.Tname,Teacher.Tage,Teacher.Tsex,Work.Salary from Teacher,Work,Department
where Teacher.Tno=Work.Tno and Department.Dno=Work.Dno
and Department.Tno=Teacher.Tno and Work.Salary>:input
2
update Work set Salary=:input from Teacher,Department
where Teacher.Tno=Work.Tno and Department.Dno=Work.Dno
and Department.Tno=Teacher.Tno and Work.Salary<:input

⑺ 嵌入式sql的預處理方式是指

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

熱點內容
財富連線低利率怎麼配置 發布:2024-11-05 11:45:34 瀏覽:455
達人推源碼 發布:2024-11-05 11:45:34 瀏覽:460
cups腳本重啟不生效 發布:2024-11-05 11:34:19 瀏覽:997
解壓gta5 發布:2024-11-05 11:33:29 瀏覽:200
手游安卓cf怎麼退款 發布:2024-11-05 11:23:28 瀏覽:135
登錄qq時什麼是昵稱和密碼 發布:2024-11-05 11:21:38 瀏覽:955
ftp怎麼設置可以直接打開 發布:2024-11-05 11:20:49 瀏覽:823
問道全敏競技怎麼配置隊伍 發布:2024-11-05 11:20:04 瀏覽:832
app應用下載源碼下載 發布:2024-11-05 11:15:36 瀏覽:841
給公司伺服器配置公網ip 發布:2024-11-05 11:05:33 瀏覽:159