国产亚洲综合精品一区二区三区_亚洲永久网址在线观看_亚洲色大成网站www久久九_国产亚洲AV夜间福利香蕉149

C語言與嵌入式SQL混合編程及圖像處理技術

2013-11-06 14:09 來源:互聯網 作者:洛小辰

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變量等。

(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的嵌入式編程及圖像處理的實例,程序給出的是解決該問題的核心部分。

Demo1.sqc

#include

#include

#define Buffer_Size 1024

EXEC SQL INCLUDE USERCA;

//filein為.jpg文件,fileout為.txt文件

void imagetofield(char *filein,char * fileout)

{

EXEC SQL BEGIN DECLARE SECTION;

FILE *fin,*fout; int j, Len;

unsigned char buffer1[Buffer_Size+1];

unsigned char buffer2[Buffer_Size*3+1];

unsigned char *Temp;

EXEC SQL END DECLARE SECTION;

if(!(fin=fopen(filein, rb )))

return;

if(!(fout=fopen(fileout, w)))

{fclose(fin);return;}

Len=fread(buffer1, sizeof(char), Buffer_Size, fin);

Temp=buffer2;

while(Len==Buffer_Size)

{ for(j=0;j

{ fprintf(fout,%X,buffer1[j]);

Temp+= 3; };

//這樣就把二進制的數據轉換成為16進制的字符串,

并且存儲到buffer1當中了

fwrite(buffer1, sizeof(char), nLen*3, fout);

Len=fread(buffer1, sizeof(char), Buffer_Size, fin); }

fclose(fin);

fclose(fout);

……

EXEC SQL CONNECT Serverl:mydb USER sa.sa;

EXEC SQL CREATE TEALE(sno char(9), sname char

(20), resume nvarchar(max),photo image);

//表中插入一條記錄,并初始化photo字段

EXEC SQL INSERT INTO teacher VALUES (’1001’,

’Arlen’,’’,0xfffffff)

嵌入式 C語言 SQL

相關閱讀

暫無數據

一周熱門

国产亚洲综合精品一区二区三区_亚洲永久网址在线观看_亚洲色大成网站www久久九_国产亚洲AV夜间福利香蕉149

    久久久精品国产99久久精品芒果| 亚洲综合视频网| 日本美女一区二区| 97久久超碰国产精品| 亚洲国产一区在线观看| 日韩三级免费观看| 亚洲午夜久久久| 91亚洲国产成人精品一区二三| 亚洲国产精品久久一线不卡| www国产成人免费观看视频 深夜成人网| 亚洲自拍偷拍图区| 91一区二区三区在线播放| 亚洲国产aⅴ天堂久久| 久久在线观看免费| 另类人妖一区二区av| 中文字幕 久热精品 视频在线 | 亚洲人成网站色在线观看| 国内久久精品视频| 国产精品福利一区二区三区| 5566中文字幕一区二区电影| 一区二区三区四区乱视频| 丁香一区二区三区| 午夜精品免费在线| 国产精品看片你懂得| 国产精品中文有码| 亚洲一区二区综合| 中文字幕精品在线不卡| 国产夫妻精品视频| 亚洲国产精品久久一线不卡| 国产欧美一区在线| 国产福利电影一区二区三区| 亚洲一区二区在线观看视频| 日本一区二区三级电影在线观看 | 免费成人在线网站| 中文字幕中文字幕在线一区| 日韩亚洲欧美一区二区三区| 日日摸夜夜添夜夜添精品视频| 国产欧美精品一区二区色综合朱莉| 欧美日韩精品久久久| 亚洲一区二区三区爽爽爽爽爽| 久久一区二区三区四区| 欧美日韩一区 二区 三区 久久精品| 一区二区三区毛片| 国产亲近乱来精品视频 | 91黄视频在线观看| 亚洲靠逼com| 26uuu欧美| 日韩限制级电影在线观看| 亚洲高清一区二区三区| 国产精品女主播av| 久久蜜桃av一区二区天堂 | 久久精品视频一区二区| 国产精品一二二区| 亚洲国产视频一区| 亚洲美女在线国产| 国产目拍亚洲精品99久久精品| 精品捆绑美女sm三区| 激情国产一区二区 | 国产精品美女久久久久久久| 成人黄色av电影| 欧美少妇一区二区| 日韩二区三区四区| 亚洲伊人色欲综合网| 日韩美女视频19| 久久精品在这里| 久久久久久久久99精品| 成人自拍视频在线观看| 69久久夜色精品国产69蝌蚪网| 蜜臀av一区二区在线免费观看| 一区二区成人在线视频| 又紧又大又爽精品一区二区| 国产精品视频免费看| 欧美激情在线免费观看| 99久久亚洲一区二区三区青草| 欧美一区二区视频免费观看| 久久精品999| 在线免费一区三区| 男人操女人的视频在线观看欧美| 亚洲大片免费看| 亚洲国产精品一区二区尤物区| 亚洲色图在线视频| 亚洲人亚洲人成电影网站色| 国产精品欧美久久久久无广告| 国产精品女同一区二区三区| 国产色婷婷亚洲99精品小说| 久久精品男人天堂av| 26uuu精品一区二区三区四区在线| 精品久久99ma| 91在线视频网址| 久久久精品黄色| 久久精品一区四区| 国产精品美女久久久久久2018| 中文无字幕一区二区三区| 中文字幕中文字幕中文字幕亚洲无线| 中文字幕av免费专区久久| 亚洲欧洲在线观看av| 一区在线播放视频| 亚洲一区在线观看免费观看电影高清| 一区二区在线观看视频| 亚洲成在线观看| 污片在线观看一区二区| 久久精品国产一区二区| 欧美三级午夜理伦三级中视频| 国产综合久久久久久久久久久久| 欧美精品三级在线观看| 国产+成+人+亚洲欧洲自线| 日韩三级.com| 91麻豆高清视频| 中文字幕在线一区| 亚洲女女做受ⅹxx高潮| 亚洲国产综合91精品麻豆 | 男人的天堂亚洲一区| 欧美无乱码久久久免费午夜一区| 久久se这里有精品| 欧美一区二区三区白人| 99久久国产综合精品女不卡| 国产女人18毛片水真多成人如厕| 日本一区二区成人| 亚洲国产视频在线| 色妹子一区二区| 国产麻豆视频一区二区| www国产精品av| 国产精品免费久久| 亚洲午夜精品17c| 欧洲精品视频在线观看| 国产传媒一区在线| 久久久久国产精品人| 国产精品久久久久久久久快鸭 | 欧美日韩国产综合视频在线观看| 国产·精品毛片| 亚洲国产成人在线| 一区二区三区四区在线| 久久99国产精品免费网站| 日韩欧美美女一区二区三区| 国产喷白浆一区二区三区| 亚洲香蕉伊在人在线观| 欧美在线一区二区三区| 不卡免费追剧大全电视剧网站| 欧美激情资源网| 亚洲一区影音先锋| 国产精品一品二品| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲猫色日本管| 国内一区二区视频| 国产人妖乱国产精品人妖| 一区二区三区在线看| 黄色日韩网站视频| 久久精品男人天堂av| 一级精品视频在线观看宜春院| 国产在线不卡一区| 国产欧美一区二区精品秋霞影院 | 激情综合色播激情啊| 国产亚洲欧洲997久久综合 | 亚洲国产欧美另类丝袜| 欧美日韩卡一卡二| 久久久久久久久久久久久女国产乱| 亚洲制服欧美中文字幕中文字幕| 欧美怡红院视频| 久久久亚洲午夜电影| 日日摸夜夜添夜夜添精品视频| 日韩亚洲国产中文字幕欧美| 国产精品国产三级国产专播品爱网| 日韩精品一级二级 | 国产福利一区二区三区在线视频| 国产精品久久久久久亚洲毛片 | 最新日韩av在线| 欧美中文字幕亚洲一区二区va在线 | 成人一区二区三区视频在线观看| 中文字幕在线视频一区| 欧美视频自拍偷拍| 国产欧美日韩在线| 蜜臀va亚洲va欧美va天堂| 国产性天天综合网| 色噜噜久久综合| 久久久久久久久久久久久夜| 男女男精品视频| 日本一二三不卡| 在线亚洲一区二区| 日本一区二区三区在线不卡 | 精品污污网站免费看| 中文字幕av一区二区三区免费看| 蜜臀91精品一区二区三区| 中文无字幕一区二区三区| 精品视频全国免费看| 亚洲欧美在线视频观看| 国产成人在线视频网址| 亚洲一区二区美女| 久久你懂得1024| 在线精品国精品国产尤物884a| 中文字幕欧美激情| 国产麻豆一精品一av一免费 | 一区二区三区色| 91女厕偷拍女厕偷拍高清| 免费成人结看片| 国产精品久久久久久妇女6080| 欧美日韩国产中文| 亚洲精品综合在线| 91丨porny丨在线| 久久精品国产亚洲5555| 尤物视频一区二区|