下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、申報(bào)要素查詢:查詢要素瘋狂代碼 HYPERLINK http:/CrazyC/http:/CrazyC/j:http:/CrazyC/BlogDigest/Article75704.html使用過(guò)關(guān)系數(shù)據(jù)庫(kù)的人一般都非常熟悉SQL語(yǔ)句,它使用Select語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢,Select語(yǔ)句可以發(fā)分為兩大類(lèi):非聚合類(lèi)查詢語(yǔ)句和聚合類(lèi)查詢語(yǔ)句。上面例子中的第一條SELECT語(yǔ)句是一條非聚合類(lèi)查詢語(yǔ)句,用于選擇“成績(jī)表”中“學(xué)號(hào)=100and學(xué)號(hào)=100and學(xué)號(hào)=20”定義了一個(gè)過(guò)濾條件選擇所有FEATID”屬性大于20的要素。2);空間過(guò)濾器空間過(guò)濾器使用一個(gè)關(guān)聯(lián)與兩個(gè)幾何圖形的空間操作符定義
2、一個(gè)過(guò)濾條件,它通常作為MgFeatureQueryOption:SetSpatialFilter(.J或MgFeatureAggregateOptions:SetSpatialFilter(.J方法的參數(shù)。該方法的原型如下所示,參數(shù)geometryProperty用于指定要素類(lèi)中幾何屬性的名稱(chēng),geometry用于指定一個(gè)幾何對(duì)象,參數(shù)spatialOperation用于指定一個(gè)空間操作符。假設(shè)操作符是MgFeatureSpatialOperations:Within,幾何對(duì)象的WKT表示為POLYGON(00,20,22,02,00),那么此過(guò)濾條件的效果是選擇在多邊形內(nèi)部的所有要素。類(lèi)M
3、gFeatureSpatialOperations定義了MapGudie支持的空間操作符,它們的含義請(qǐng)參考空間關(guān)系。l;MgFeatureSpatialOperations:Containsl;MgFeatureSpatialOperations:CoveredByl;MgFeatureSpatialOperations:Crossesl;MgFeatureSpatialOperations:Disjointl;MgFeatureSpatialOperations:EnvelopeIntersectsl;MgFeatureSpatialOperations:Equalsl;MgFeatureS
4、patialOperations:Insidel;MgFeatureSpatialOperations:Intersectsl;MgFeatureSpatialOperations:Overlapsl;MgFeatureSpatialOperations:Touchesl;MgFeatureSpatialOperations:Within3);組合過(guò)濾器通過(guò)調(diào)用方法MgFeatureQueryOption:SetBinaryOperator(.J可以使用邏輯操作符AND或OR將基本過(guò)濾器和空間過(guò)濾器組合在一起,參數(shù)andOr的值為T(mén)RUE表示使用AND邏輯操作符,FALSE表示使用OR邏輯操作
5、符,該方法只有在基本過(guò)濾器和空間過(guò)濾器設(shè)置的情況下才會(huì)發(fā)揮作用。如果設(shè)置了基本過(guò)濾器和空間過(guò)濾器,卻沒(méi)有調(diào)用此方法,那么使用AND操作符組合基本過(guò)濾器和空間過(guò)濾器。過(guò)濾器的BNF語(yǔ)法如下所示,從中可以看到表達(dá)式是過(guò)濾器的重要組成部分,表達(dá)式支持的數(shù)據(jù)類(lèi)型如表8-4所示,可以使用部分函數(shù)如表8-5所示。;表8-4表達(dá)式支持的數(shù)據(jù)類(lèi)型;表8-5表達(dá)式中可以使用的部分函數(shù);表達(dá)式中的一些函數(shù)可以使用單個(gè)要素的屬性值作為參數(shù),返回一個(gè)和此屬性值相關(guān)的值,例如ceil、floor、coneat和upper等,這些函數(shù)可以使用于非聚合類(lèi)和聚合類(lèi)查詢;一些函數(shù)可以將多個(gè)要素的屬性值作為參數(shù),返回一個(gè)和一組屬
6、性值相關(guān)的值,例如avg、count、max、min、stddev和sum等,這些函數(shù)只能使用于聚合類(lèi)查詢。下面是一些表達(dá)式的例子,以及如何使用這些表達(dá)式進(jìn)行查詢。1);NULL給定一個(gè)字符串類(lèi)型的屬性Name,如果它的屬性允許為NULL,并且在插入一個(gè)要素時(shí)沒(méi)有指定此屬性的值,那么這個(gè)要素Name屬性的值為NULL。通過(guò)應(yīng)用過(guò)濾條件NameNULL”,可以選擇所有Name屬性值為NULL的所有要素。通過(guò)應(yīng)用過(guò)濾條件NOTNameNULL,可以選擇所有Name屬性值不為NULL的所有要素。2);LIKELike可以用于實(shí)現(xiàn)模糊查詢,給定一個(gè)字符串模式(Patern),可以使用Like查找所有符
7、合指定模式的要素。其中,百分號(hào)”用于匹配0個(gè)或多個(gè)字符,下劃線_”用于匹配單個(gè)字符。假設(shè)Description是一個(gè)字符串類(lèi)型的屬性,數(shù)據(jù)源中有兩個(gè)包含了此屬性的要素,這兩個(gè)屬性的值為PointData”和“PolygonData”,過(guò)濾條件“DescriptionLIKE卩olygon返回PolygonData”,過(guò)濾條件NOTDescriptionLIKE卩olygon返回PointData,過(guò)濾條件DescriptionLIKE卩ol_gon返回PolygonData”3);IN()IN操作符用于選擇與列表中的任意一個(gè)值匹配的要素,給定一個(gè)Int16類(lèi)型的屬性Id,過(guò)濾條件IdIN(-5
8、995,-7033)”選擇Id屬性值等于-5995或-7033的要素。;排序調(diào)用MgQueryOptions:SetOrderingFilter(.J可以將查詢結(jié)果進(jìn)行排序,該方法的簽名如下所示,參數(shù)orderByProperties是一個(gè)屬性名稱(chēng)的集合,用于指定排序的屬性,如果指定了多個(gè)屬性,那么優(yōu)先使用orderByProperties中序號(hào)較小的屬性,只有在序號(hào)較小的屬性具有相同的值時(shí),才使用序號(hào)較大的屬性;參數(shù)orderOption用于指定是以升序的方式還是降序的方式進(jìn)行排序,它的值可以為MgOrderingOption:Ascending或MgOrderingOption:Desce
9、nding,分別用于表示升序和降序。;分組調(diào)用MgFeatureAggregateOptions:SetGroupingFilter(.J可以將查詢結(jié)果進(jìn)行分組,該方法的簽名如下所示,參數(shù)groupByProperties是一個(gè)屬性名稱(chēng)的集合,用于指定分組的屬性,如果指定了多個(gè)屬性,那么優(yōu)先使用orderByProperties中序號(hào)較小的屬性,只有在序號(hào)較小的屬性具有相同的值時(shí),才使用序號(hào)較大的屬性;參數(shù)groupFilter用于指定分組的過(guò)濾器。如下的代碼展示了如何使用分組創(chuàng)建一個(gè)聚合類(lèi)查詢。上面代碼的功能類(lèi)似于如下的SQL語(yǔ)句。;MgDataReader、MgFeatureReader和
10、IMgSqlDataReaderMapGuide支持三種類(lèi)型的讀取器,它們分別為MgDataReader、MgSqlDataReader和MgFeatureReader,讀取器的類(lèi)型由類(lèi)MgReaderType定義。I;MgReaderType:DataReaderl;MgReaderType:FeatureReaderl;MgReaderType:SqIDataReader類(lèi)MgDataReader、MgSqlDataReader和MgFeatureReader都繼承自MgReader,都是一個(gè)用于讀取查詢結(jié)果的前向只讀迭代器(Forward-Only,Read-OnlyIterator),
11、讀取器的初始位置總是位于第一個(gè)數(shù)據(jù)之前,在讀取數(shù)據(jù)之前必須調(diào)用方法ReadNext(.J,在調(diào)用ReadNext()之后就無(wú)法讀取讀取器當(dāng)前位置之前的數(shù)據(jù)。它們之間的主要不同點(diǎn)是,MgFeatureReader包含了一個(gè)方法MgFeatureReader:GetClassDefinition(),通過(guò)該方法的返回值可以得到查詢結(jié)果的類(lèi)定義(ClassDefinition),通過(guò)類(lèi)定義得到每個(gè)屬性的定義、主鍵等信息,而MgDataReader和MgSqlDataReader僅僅可以通過(guò)方法MgReader:GetPropertyType(.J得到屬性的類(lèi)型。如下的代碼展示了將一個(gè)MgFeatur
12、eReader實(shí)例中的所有要素輸出到一個(gè)文件中。需要注意的是,在使用讀取器讀取完數(shù)據(jù)后要盡量馬上調(diào)用方法MgReader:Close()關(guān)閉讀取器。為什么呢?為了提高M(jìn)apGuide服務(wù)器的響應(yīng)速度,MapGuide服務(wù)器使用了連接池(ConnectionPool)的方式緩存了要素源FDO連接,即FdolConnection實(shí)例,當(dāng)接收到一個(gè)要素服務(wù)請(qǐng)求之后,它會(huì)首先在FDO連接池中查找是否有可用的FDO連接,如果有就使用此FDO連接執(zhí)行服務(wù)請(qǐng)求,否則創(chuàng)建一個(gè)新的FDO連接,但是如果已經(jīng)超過(guò)服務(wù)器配置文件中設(shè)置的最大FDO連接數(shù),那么此要素服務(wù)請(qǐng)求會(huì)失敗。當(dāng)要素服務(wù)返回一個(gè)讀取器之后,為了保證查詢結(jié)果不會(huì)在讀取數(shù)據(jù)之前消失
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版摩托車(chē)二手交易評(píng)估與鑒定服務(wù)合同4篇
- 2025非全日制勞務(wù)派遣合同樣本:二零二五年度用工協(xié)議3篇
- 二零二五版廠房租賃合同標(biāo)準(zhǔn):租賃廠房周邊環(huán)境維護(hù)責(zé)任3篇
- 2025年度環(huán)保監(jiān)測(cè)軟件服務(wù)升級(jí)及數(shù)據(jù)統(tǒng)計(jì)分析合同3篇
- 2025年度補(bǔ)充耕地指標(biāo)出讓與農(nóng)業(yè)科技推廣合同3篇
- 二零二五年度古董藝術(shù)品售后服務(wù)與維權(quán)合同3篇
- 2025年度配音行業(yè)人才培養(yǎng)與輸送合同4篇
- 2025年度旅游紀(jì)念品采購(gòu)合同書(shū)下載3篇
- 2025年度高速公路養(yǎng)護(hù)勞務(wù)分包合同范本
- 2025年度個(gè)人二手房交易合同樣本7篇
- 勞務(wù)協(xié)議范本模板
- 2024年全國(guó)職業(yè)院校技能大賽高職組(生產(chǎn)事故應(yīng)急救援賽項(xiàng))考試題庫(kù)(含答案)
- 2025大巴車(chē)租車(chē)合同范文
- 老年上消化道出血急診診療專(zhuān)家共識(shí)2024
- 人教版(2024)數(shù)學(xué)七年級(jí)上冊(cè)期末測(cè)試卷(含答案)
- 2024年國(guó)家保密培訓(xùn)
- 2024年公務(wù)員職務(wù)任命書(shū)3篇
- CFM56-3發(fā)動(dòng)機(jī)構(gòu)造課件
- 會(huì)議讀書(shū)交流分享匯報(bào)課件-《殺死一只知更鳥(niǎo)》
- 2025屆撫州市高一上數(shù)學(xué)期末綜合測(cè)試試題含解析
- 公司印章管理登記使用臺(tái)賬表
評(píng)論
0/150
提交評(píng)論