申報要素查詢查詢要素_第1頁
申報要素查詢查詢要素_第2頁
申報要素查詢查詢要素_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、申報要素查詢:查詢要素瘋狂代碼 HYPERLINK http:/CrazyC/http:/CrazyC/j:http:/CrazyC/BlogDigest/Article75704.html使用過關(guān)系數(shù)據(jù)庫的人一般都非常熟悉SQL語句,它使用Select語句對數(shù)據(jù)庫進行查詢,Select語句可以發(fā)分為兩大類:非聚合類查詢語句和聚合類查詢語句。上面例子中的第一條SELECT語句是一條非聚合類查詢語句,用于選擇“成績表”中“學(xué)號=100and學(xué)號=100and學(xué)號=20”定義了一個過濾條件選擇所有FEATID”屬性大于20的要素。2);空間過濾器空間過濾器使用一個關(guān)聯(lián)與兩個幾何圖形的空間操作符定義

2、一個過濾條件,它通常作為MgFeatureQueryOption:SetSpatialFilter(.J或MgFeatureAggregateOptions:SetSpatialFilter(.J方法的參數(shù)。該方法的原型如下所示,參數(shù)geometryProperty用于指定要素類中幾何屬性的名稱,geometry用于指定一個幾何對象,參數(shù)spatialOperation用于指定一個空間操作符。假設(shè)操作符是MgFeatureSpatialOperations:Within,幾何對象的WKT表示為POLYGON(00,20,22,02,00),那么此過濾條件的效果是選擇在多邊形內(nèi)部的所有要素。類M

3、gFeatureSpatialOperations定義了MapGudie支持的空間操作符,它們的含義請參考空間關(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);組合過濾器通過調(diào)用方法MgFeatureQueryOption:SetBinaryOperator(.J可以使用邏輯操作符AND或OR將基本過濾器和空間過濾器組合在一起,參數(shù)andOr的值為TRUE表示使用AND邏輯操作符,FALSE表示使用OR邏輯操作

5、符,該方法只有在基本過濾器和空間過濾器設(shè)置的情況下才會發(fā)揮作用。如果設(shè)置了基本過濾器和空間過濾器,卻沒有調(diào)用此方法,那么使用AND操作符組合基本過濾器和空間過濾器。過濾器的BNF語法如下所示,從中可以看到表達式是過濾器的重要組成部分,表達式支持的數(shù)據(jù)類型如表8-4所示,可以使用部分函數(shù)如表8-5所示。;表8-4表達式支持的數(shù)據(jù)類型;表8-5表達式中可以使用的部分函數(shù);表達式中的一些函數(shù)可以使用單個要素的屬性值作為參數(shù),返回一個和此屬性值相關(guān)的值,例如ceil、floor、coneat和upper等,這些函數(shù)可以使用于非聚合類和聚合類查詢;一些函數(shù)可以將多個要素的屬性值作為參數(shù),返回一個和一組屬

6、性值相關(guān)的值,例如avg、count、max、min、stddev和sum等,這些函數(shù)只能使用于聚合類查詢。下面是一些表達式的例子,以及如何使用這些表達式進行查詢。1);NULL給定一個字符串類型的屬性Name,如果它的屬性允許為NULL,并且在插入一個要素時沒有指定此屬性的值,那么這個要素Name屬性的值為NULL。通過應(yīng)用過濾條件NameNULL”,可以選擇所有Name屬性值為NULL的所有要素。通過應(yīng)用過濾條件NOTNameNULL,可以選擇所有Name屬性值不為NULL的所有要素。2);LIKELike可以用于實現(xiàn)模糊查詢,給定一個字符串模式(Patern),可以使用Like查找所有符

7、合指定模式的要素。其中,百分號”用于匹配0個或多個字符,下劃線_”用于匹配單個字符。假設(shè)Description是一個字符串類型的屬性,數(shù)據(jù)源中有兩個包含了此屬性的要素,這兩個屬性的值為PointData”和“PolygonData”,過濾條件“DescriptionLIKE卩olygon返回PolygonData”,過濾條件NOTDescriptionLIKE卩olygon返回PointData,過濾條件DescriptionLIKE卩ol_gon返回PolygonData”3);IN()IN操作符用于選擇與列表中的任意一個值匹配的要素,給定一個Int16類型的屬性Id,過濾條件IdIN(-5

8、995,-7033)”選擇Id屬性值等于-5995或-7033的要素。;排序調(diào)用MgQueryOptions:SetOrderingFilter(.J可以將查詢結(jié)果進行排序,該方法的簽名如下所示,參數(shù)orderByProperties是一個屬性名稱的集合,用于指定排序的屬性,如果指定了多個屬性,那么優(yōu)先使用orderByProperties中序號較小的屬性,只有在序號較小的屬性具有相同的值時,才使用序號較大的屬性;參數(shù)orderOption用于指定是以升序的方式還是降序的方式進行排序,它的值可以為MgOrderingOption:Ascending或MgOrderingOption:Desce

9、nding,分別用于表示升序和降序。;分組調(diào)用MgFeatureAggregateOptions:SetGroupingFilter(.J可以將查詢結(jié)果進行分組,該方法的簽名如下所示,參數(shù)groupByProperties是一個屬性名稱的集合,用于指定分組的屬性,如果指定了多個屬性,那么優(yōu)先使用orderByProperties中序號較小的屬性,只有在序號較小的屬性具有相同的值時,才使用序號較大的屬性;參數(shù)groupFilter用于指定分組的過濾器。如下的代碼展示了如何使用分組創(chuàng)建一個聚合類查詢。上面代碼的功能類似于如下的SQL語句。;MgDataReader、MgFeatureReader和

10、IMgSqlDataReaderMapGuide支持三種類型的讀取器,它們分別為MgDataReader、MgSqlDataReader和MgFeatureReader,讀取器的類型由類MgReaderType定義。I;MgReaderType:DataReaderl;MgReaderType:FeatureReaderl;MgReaderType:SqIDataReader類MgDataReader、MgSqlDataReader和MgFeatureReader都繼承自MgReader,都是一個用于讀取查詢結(jié)果的前向只讀迭代器(Forward-Only,Read-OnlyIterator),

11、讀取器的初始位置總是位于第一個數(shù)據(jù)之前,在讀取數(shù)據(jù)之前必須調(diào)用方法ReadNext(.J,在調(diào)用ReadNext()之后就無法讀取讀取器當前位置之前的數(shù)據(jù)。它們之間的主要不同點是,MgFeatureReader包含了一個方法MgFeatureReader:GetClassDefinition(),通過該方法的返回值可以得到查詢結(jié)果的類定義(ClassDefinition),通過類定義得到每個屬性的定義、主鍵等信息,而MgDataReader和MgSqlDataReader僅僅可以通過方法MgReader:GetPropertyType(.J得到屬性的類型。如下的代碼展示了將一個MgFeatur

12、eReader實例中的所有要素輸出到一個文件中。需要注意的是,在使用讀取器讀取完數(shù)據(jù)后要盡量馬上調(diào)用方法MgReader:Close()關(guān)閉讀取器。為什么呢?為了提高MapGuide服務(wù)器的響應(yīng)速度,MapGuide服務(wù)器使用了連接池(ConnectionPool)的方式緩存了要素源FDO連接,即FdolConnection實例,當接收到一個要素服務(wù)請求之后,它會首先在FDO連接池中查找是否有可用的FDO連接,如果有就使用此FDO連接執(zhí)行服務(wù)請求,否則創(chuàng)建一個新的FDO連接,但是如果已經(jīng)超過服務(wù)器配置文件中設(shè)置的最大FDO連接數(shù),那么此要素服務(wù)請求會失敗。當要素服務(wù)返回一個讀取器之后,為了保證查詢結(jié)果不會在讀取數(shù)據(jù)之前消失

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論