日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
使用SQLite擴(kuò)展函數(shù)來(lái)定義自己的函數(shù)

使用C/C++操作sqlite數(shù)據(jù)庫(kù)進(jìn)行GIS數(shù)據(jù)轉(zhuǎn)換時(shí),sqlite不能在sql中定義枚舉量和常量。當(dāng)程序設(shè)計(jì)中需要很多枚舉量的時(shí)候,比如道路表中道路類(lèi)型列就是枚舉量:0表示高速,1表示國(guó)道,2表示省道,3表示縣道等,又不能在sql中定義這些枚舉量,我們?cè)撛趺唇鉀Q呢?

在南潯等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需求定制開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)整合營(yíng)銷(xiāo)推廣,外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè),南潯網(wǎng)站建設(shè)費(fèi)用合理。

通過(guò)搜索引擎知道sqlite可以讓用戶自己擴(kuò)展sql函數(shù),感覺(jué)可以使用sqlite擴(kuò)展函數(shù)來(lái)解決這個(gè)問(wèn)題。sqlite擴(kuò)展sql函數(shù)的方法和步驟:首先按sqlite擴(kuò)展函數(shù)的原型定義自己的函數(shù),然后使用sqlite3_create_function注冊(cè)到sqlite中,然后就可以在sql中使用自己定義的函數(shù)了,就跟使用預(yù)定義好的sqlite核心函數(shù)一樣。

例如,我們可以把高速類(lèi)型定義成一個(gè)擴(kuò)展函數(shù),這個(gè)函數(shù)返回0:

 
 
 
 
  1. static void fun_ROAD_TYPE_HIGHWAY( sqlite3_context * context, int argc, sqlite3_value ** value ) { sqlite3_result_int64( context, 0 ); }; 

然后把它注冊(cè)到sqlite中,注冊(cè)名為ROAD_TYPE_HIGHWAY:

 
 
 
 
  1. sqlite3_create_function( db, "ROAD_TYPE_HIGHWAY", 0, SQLITE_ANY, 0, fun_ROAD_TYPE_HIGHWAY, 0, 0 ) 

注冊(cè)完后我們就可以在sql語(yǔ)句中通過(guò)注冊(cè)名ROAD_TYPE_HIGHWAY來(lái)使用這個(gè)函數(shù)了,如:選出所有高速的sql可以寫(xiě)成select * from road_table where road_type = ROAD_TYPE_HIGHWAY(),這樣是不是好多了。

由于GIS數(shù)據(jù)庫(kù)中的枚舉量居多,如果每個(gè)都要手工寫(xiě)個(gè)函數(shù)并注冊(cè),這肯定是一個(gè)超級(jí)體力活,所以用perl寫(xiě)了一個(gè)根據(jù)c/c++頭文件生成sqlite擴(kuò)展函數(shù)的小程序:http://files.cnblogs.com/adgnat/sqlitefungen.7z

程序使用方法:

1.確保安裝了perl5和vc。

2.下載程序并解壓。

3.打開(kāi)cmd.exe,并進(jìn)入程序(sqlitefungen)目錄。

4.運(yùn)行vcvars32.bat初始化VC編譯環(huán)境。

5.執(zhí)行自動(dòng)生成腳本:perl sqlitefungen.perl mydb.h,mydb.h可以換成自己定義的頭文件。

6.執(zhí)行完后頭文件目錄下將生成一個(gè)同名的dll文件,你可以在sqlite3.exe中使用.load命令或sql中使用load_extension函數(shù)來(lái)加載該dll,加載后就可以使用dll中定義的擴(kuò)展函數(shù)了。

關(guān)于SQLite擴(kuò)展函數(shù)的知識(shí)就介紹到這里,希望看完之后您能有所收獲,因?yàn)槟氖斋@就是我***的快樂(lè)!

【編輯推薦】

  1. SQLite 基本控制臺(tái)命令簡(jiǎn)介
  2. SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介之對(duì)表的操作
  3. 利用Sql Server將Excel中的數(shù)據(jù)導(dǎo)入Oracle
  4. 利用mysql的audit審計(jì)功能記錄用戶操作信息
  5. 忘記sa密碼,又刪除了administrators帳號(hào)的解決方法

本文標(biāo)題:使用SQLite擴(kuò)展函數(shù)來(lái)定義自己的函數(shù)
轉(zhuǎn)載來(lái)于:http://m.5511xx.com/article/dhgisjp.html