資料介紹
SQL Server是現階段應用程序最普遍采用的數據庫技術,在數據庫中對圖像、視頻和聲音等數據的存取需要越來越頻繁。普通數據可直接在用戶定義的字段上存取,而這類被稱為二進制大對象(Binary Large Object)的大數據塊由于其數據量太大,不是作為數據記錄的一部分被存儲在數據記錄頁中,而是存儲在其所屬的一組專用頁中,數據表的對應字段中僅是一個十六進制的指針,該指針指向存放該記錄的頁面。由于SQL語言是一種面向集合運算的描述語言,其本身不具有過程性結構,使用SQL Server中的Image類型字段存放圖像文件時,Image類型字段是只存儲位串,SQL Server不對它進行編譯,而是由應用程序完成解釋。又因Image類型的字段內容在SQL Server 2000中不能使用INSERT和UPDATA等語句進行插入和更新,所以需編寫專門的過程來處理圖像字段。盡管在SQL Server 2005可以使用有關的函數解決這一問題,但由于實際的應用系統是非常復雜的,數據庫訪問只是其中一個部分,有些用戶交互、圖形化輸入輸出數據只能用高級語言實現。利用高級語言的過程性結構來彌補SQL語言實現復雜應用方面的不足, 將SQL語言嵌入到C語言的嵌入式編程將有廣泛的應用前景。
1 嵌入式SQL及語法要素
1.1 C語言嵌入式語句[1]
SQL語言可以嵌入到C語言中使用,數據庫管理系統一般采用的處理方法是預處理方法。預處理方法就是從含有主程序C語言和SQL語句的程序開始的。首先,把程序提交給一個專門用于C語言和SQL實現方式的預編譯器,預編譯器從C語言代碼中剝離SQL語句,把SQL語句轉換成C語言調用語句,以使用C語言編譯程序,并將整個編譯成目標代碼,鏈接到各數據庫并形成可執行文件。在C語言中嵌入SQL語句產生應用程序的過程為[2]:編輯C源代碼+嵌入式SQL→SQL預編譯器→C編譯器→鏈接程序(DLL導入庫)→應用程序(數據庫)。
1.2 嵌入式SQL的語法要素
(1)創建嵌入式語句。將SQL嵌入到C語言中混合編程,程序中會含有兩種不同計算模型的語句。為了區別SQL語句與C語句,須在所有的SQL語句前加前綴EXEC SQL,且以分號結束,一般形式為“EXEC SQL 《SQL語句》”。嵌入式語句分為可執行語句和說明性語句,可執行語句用來完成在交互式環境下的SQL語句中的數據定義、數據操縱和數據控制任務,說明性語句用于聲明通信區和SQL變量等。
(2)SQL通信區。SQL Server數據庫管理系統提供了一個通信區SQLCA,用于存儲SQL語句運行時DBMS反饋給應用程序的狀態,這些信息主要描述系統當前工作狀態以及運行環境等。應用程序從SQLCA中取出這些狀態信息,以決定接下來執行的語句。在C語言中定義為SQL通信區的語句為:EXEC SQL INCLUDE SQLCA。
(3)主變量。嵌入式SQL語句中可以使用C語言的程序變量及主變量來輸入或輸出數據。一個主變量可以附帶一個任選的指示變量用來指示返回給主變量的值是否為NULL值以及返回給主變量的字符串是否發生了截斷。輸入主變量出現于SQL語句中時,可在前面加冒號(:)以區別表字段名。而定義輸出變量用指示變量的方法,是在SQL語句EXEC SQL BEGIN DECLARE SECTION與EXEC SQL END DECLARE SECTION之間進行說明。
(4)鏈接數據庫。C程序的主函數中應包含一條登錄語句,向預編譯和程序提供用戶名和口令,以實現與SQL Server數據庫管理系統建立鏈接。其命令語法為:EXEC SQL CONNECT TO 服務器名。數據庫名AS鏈接名 USER 用戶名。口令。
2 SQL Server中圖像數據處理技術
2.1 SQL Server 2000圖像存儲方法
SQL Server 2000中,對于小于8 000 B的圖像數據可以使用二進制數據類型(binary、varbinary)表示,但通常要保存的圖像都大于8 000 B,對于這類大對像數據,系統提供了Image數據類型。Image數據類型不同于其他數據類型,該字段內容不能使用標準INSERT和UPDATE等語句進行插入和更新,因此用C語言程序[3]來編寫處理圖像文件,需要先將圖像文件等數據轉換成十六進制后存儲,再將Image列中的數據存儲為位串。SQL Server不能對它進行解釋,Image列數據的解釋必須由應用程序完成,這與普通的數據存儲方式是不同的。Image列所做的全部工作就是提供一個位置用來存儲組成圖像數據值的位流,這需用到SQL Server中的TEXTPTR、WRITETEXT和UPDATETEXT等函數進行圖形的添加和修改。以下是一個C語言與SQL Server 2000的嵌入式編程及圖像處理的實例,程序給出的是解決該問題的核心部分。
1 嵌入式SQL及語法要素
1.1 C語言嵌入式語句[1]
SQL語言可以嵌入到C語言中使用,數據庫管理系統一般采用的處理方法是預處理方法。預處理方法就是從含有主程序C語言和SQL語句的程序開始的。首先,把程序提交給一個專門用于C語言和SQL實現方式的預編譯器,預編譯器從C語言代碼中剝離SQL語句,把SQL語句轉換成C語言調用語句,以使用C語言編譯程序,并將整個編譯成目標代碼,鏈接到各數據庫并形成可執行文件。在C語言中嵌入SQL語句產生應用程序的過程為[2]:編輯C源代碼+嵌入式SQL→SQL預編譯器→C編譯器→鏈接程序(DLL導入庫)→應用程序(數據庫)。
1.2 嵌入式SQL的語法要素
(1)創建嵌入式語句。將SQL嵌入到C語言中混合編程,程序中會含有兩種不同計算模型的語句。為了區別SQL語句與C語句,須在所有的SQL語句前加前綴EXEC SQL,且以分號結束,一般形式為“EXEC SQL 《SQL語句》”。嵌入式語句分為可執行語句和說明性語句,可執行語句用來完成在交互式環境下的SQL語句中的數據定義、數據操縱和數據控制任務,說明性語句用于聲明通信區和SQL變量等。
(2)SQL通信區。SQL Server數據庫管理系統提供了一個通信區SQLCA,用于存儲SQL語句運行時DBMS反饋給應用程序的狀態,這些信息主要描述系統當前工作狀態以及運行環境等。應用程序從SQLCA中取出這些狀態信息,以決定接下來執行的語句。在C語言中定義為SQL通信區的語句為:EXEC SQL INCLUDE SQLCA。
(3)主變量。嵌入式SQL語句中可以使用C語言的程序變量及主變量來輸入或輸出數據。一個主變量可以附帶一個任選的指示變量用來指示返回給主變量的值是否為NULL值以及返回給主變量的字符串是否發生了截斷。輸入主變量出現于SQL語句中時,可在前面加冒號(:)以區別表字段名。而定義輸出變量用指示變量的方法,是在SQL語句EXEC SQL BEGIN DECLARE SECTION與EXEC SQL END DECLARE SECTION之間進行說明。
(4)鏈接數據庫。C程序的主函數中應包含一條登錄語句,向預編譯和程序提供用戶名和口令,以實現與SQL Server數據庫管理系統建立鏈接。其命令語法為:EXEC SQL CONNECT TO 服務器名。數據庫名AS鏈接名 USER 用戶名。口令。
2 SQL Server中圖像數據處理技術
2.1 SQL Server 2000圖像存儲方法
SQL Server 2000中,對于小于8 000 B的圖像數據可以使用二進制數據類型(binary、varbinary)表示,但通常要保存的圖像都大于8 000 B,對于這類大對像數據,系統提供了Image數據類型。Image數據類型不同于其他數據類型,該字段內容不能使用標準INSERT和UPDATE等語句進行插入和更新,因此用C語言程序[3]來編寫處理圖像文件,需要先將圖像文件等數據轉換成十六進制后存儲,再將Image列中的數據存儲為位串。SQL Server不能對它進行解釋,Image列數據的解釋必須由應用程序完成,這與普通的數據存儲方式是不同的。Image列所做的全部工作就是提供一個位置用來存儲組成圖像數據值的位流,這需用到SQL Server中的TEXTPTR、WRITETEXT和UPDATETEXT等函數進行圖形的添加和修改。以下是一個C語言與SQL Server 2000的嵌入式編程及圖像處理的實例,程序給出的是解決該問題的核心部分。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 慕課嵌入式系統(第五章.ARM匯編與C混合編程)
- 嵌入式SQL
- 單片機C語言和匯編語言混合編程實例詳解 228次下載
- ARM嵌入式系統C語言編程2 16次下載
- ARM嵌入式系統C語言編程3 11次下載
- 嵌入式c編程語言入門與深入 61次下載
- C語言的嵌入式系統編程修煉之道 29次下載
- MSP430單片機的C語言和匯編語言混合編程 24次下載
- 基于MSP430單片機C語言和匯編語言混合編程 18次下載
- C語言嵌入式系統編程教程 36次下載
- 嵌入式系統高級C語言編程(凌明) 0次下載
- C語言和匯編語言混合編程方法和C語言中斷處理方法 36次下載
- 嵌入式C編程 0次下載
- 嵌入式c語言編程(由淺入深) 0次下載
- MSP430單片機C語言和匯編語言混合編程
- C語言是否會阻礙嵌入式的發展? 252次閱讀
- 聊一聊嵌入式C語言 1.2k次閱讀
- 用C語言構建高效的嵌入式程序 1.2k次閱讀
- 嵌入式C語言高手煉成之內存操作篇 1.1k次閱讀
- 嵌入式C語言的一些高階知識 1.6k次閱讀
- 嵌入式開發中的C語言:編程思想 979次閱讀
- C語言是怎么面向對象編程 2.6k次閱讀
- C與C++混合編程是什么 2.9k次閱讀
- 混合編程中的模塊命名與管理 1.7k次閱讀
- 嵌入式C語言知識點總結 3.4k次閱讀
- 嵌入式系統C語言編程中的錯誤處理資料總結 2.3k次閱讀
- 嵌入式系統C語言編程實戰教程合集 1w次閱讀
- 嵌入式軟件開發編程規范及原則 7.4k次閱讀
- arduino用什么語言編程 7.1w次閱讀
- 深入了解嵌入式編程 4.2k次閱讀
下載排行
本周
- 1冷柜-電氣控制系統講解
- 13.68 MB | 4次下載 | 10 積分
- 2安川A1000變頻器中文版說明書
- 20.16 MB | 3次下載 | 3 積分
- 3直流電路的組成和基本定律
- 1.67 MB | 2次下載 | 免費
- 4丹佛斯2800系列變頻器說明書
- 8.00 MB | 1次下載 | 5 積分
- 5PC8011同步開關型降壓3.5A單節鋰電池充電管理電路技術手冊
- 0.74 MB | 1次下載 | 免費
- 6ES7243E+ES8311音頻錄制與播放電路資料
- 0.06 MB | 1次下載 | 5 積分
- 7SDM02 激光測距模塊產品手冊
- 0.43 MB | 1次下載 | 免費
- 8SDFM 激光測距模塊模組手冊
- 0.54 MB | 1次下載 | 免費
本月
- 1CH341編程器軟件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下載 | 1 積分
- 22025智能家居傳感器市場分析及創新應用
- 3.11 MB | 43次下載 | 免費
- 3RV1126B系列開發板產品資料
- 4.19 MB | 18次下載 | 免費
- 4CH341編程軟件下載
- 2.50 MB | 16次下載 | 5 積分
- 5全志系列-米爾基于T153核心板開發板 四核異構、3路千兆網,賦能多元化工業場景
- 3.05 MB | 12次下載 | 免費
- 6【開源】60余套STM32單片機、嵌入式Linux、物聯網、人工智能項目案例及入門學習資源包
- 10.55 MB | 8次下載 | 免費
- 7冷柜-電氣控制系統講解
- 13.68 MB | 4次下載 | 10 積分
- 8特斯拉MODEL S車載充電機主電路回路原理圖
- 0.81 MB | 4次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191448次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183356次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81604次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73824次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論