第5章數據查詢與功能實現_第1頁
第5章數據查詢與功能實現_第2頁
第5章數據查詢與功能實現_第3頁
第5章數據查詢與功能實現_第4頁
第5章數據查詢與功能實現_第5頁
已閱讀5頁,還剩35頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第8 GIS通過方法MoveNext可將當前記錄的位置指向下一條記錄通過方法MovePrevious可以將當MoveFirst使當前記錄位置指向第一條記錄。合),而字段對象(Field)的缺省屬性是以簡化你的代碼比如,下面的代碼都將返回同一個結果,即當前記錄的字段人口的值x=myRecordSet("人口Count:Count返回值為-1:比如:在這類情況下為了正確地獲取記錄集的屬性Count值首先由記錄集創建一個Statistics對象,然后可以從Statistics對象的CountDimrecsAsNewMapObjects2.RecordsetDimstatsAsMapObjects2.StatisticsSetrecs=oCount=stats.CountMsgBoxEditMode:0沒有編輯操作在執行12區中還未保存到數據庫文件Fields:Fields返回一個記錄集中字段集合 的所有字TableDesc:TableDesc返回一個數據表描述對象(TableDesc),這個Updatable:Boolean返回一個值以確定是否可以對記錄集進行修AutoFlush:Boolean (默認對記錄的修改自動的引起對數據 Shape文件的矢量圖層的記錄集.設置AutoFlush屬性為假,可以提高批處理的執行效率,比如創建一個shape文件時。AutoFlush屬性設置為真True.設置AutoFlush為真將刷新文件,也會引起StopEditing或釋放記錄集Recordset對象.理EOF:真允許對當前記錄的編輯。當你調用Edit方法后,StopEin(獨占式讀寫),其它應用程序就不能獲取與它相關數當你已完成對記錄集的編輯后,StopEditing以保存當前記錄及對它的修改。調用Update同時重置當前的編輯模式為EditModeNoneCalculateStatistics(fldName:String):Export(outName:String,[outCS:Object]):PrivateSubMap1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)OnErrorResumeDimmyPolyAsMapObjects2.PolygonSetmyPoly= SetmoRecset=Map1.Layers(0).SearchShape(myPoly,moAreaIntersect,"")'IfmoRecsetIsNothingThenExitMap1.TrackingLayer.RefreshCallMakeShapeFromSelection(moRecset)EndPrivateSubMakeShapeFromSelection(ByValoRecsetAsDimtStart,DimoTableAsDimoDatasetAsDimoConnectionAsNew DimoLayerAsNew DimoFieldAsDimoTempRecsAsCheckouoConnection.Database=IfoConnection.ConnectSetoTable=oConnection.DeleteGeoDataset("shptemp") SetoDataset=oConnection.AddGeoDataset("shptemp",moShapeTypePolygon,IfoDatasetIsNothingMsgBox無法建立shptemp!"ExitEndSetoLayer.GeoDataset=Map1.Layers.AddSetoTempRecs=……oTempRecs.AutoFlush=tStart=DimsFldAsDoWhileNotWith.AddNewSetsFld=ForEachoFieldInIfoField.Name="AREA".Fields(oField.Name).Value=.Fields(oField.Name).Value=EndEndLoopoTempRecs.StopEditingEndtEnd=DimdurAsStringdur=Format(tEnd-tStart,"hh:mm:ss") MsgBox"Shape文件寫入到:"&App.Path,vbInformation,"Shape文件已導出,所花時間-"&dur字段(Field)對(long),雙精度型(double)布爾型(boolean)期型(date)空(empty)點型(point)ValueAsString屬性以字符的形式返回字段的值。Name:Name:Value:常值描0無357日8點線點Basic中的Field對象相區別,在變量 比如DimfldasDimfldasADODB.FieldDimfldasDimfldas字段集合(FieldsItem可集合中一個指定的字段,aString或aString=Count:IntegerItem(fldName:Variant):FieldTableDesc獲取描述信息dimfldasset為了將MapObjects的字段集合對象與VisualBasic字段集合對象相區別,在變量 DimfldsasDimfldsasDimfldsasFieldNameFieldPrecision、FieldScale及DimdescasNewMapObjects2.TableDescCodePage:CodePageConstantsFieldCount:IntegerFieldLength(idx:Integer):IntegerFieldName(idx:Integer):StringFieldPrecision(idx:Integer):IntegerFieldScale(idx:Integer):Integer通過TableDesc對象來獲取。FieldType(idx:Integer):FieldTypeConstants常值描0 相關dBASE文件的文件頭來決1強制相關dBASEOEM字符2強制相關dBASE文件中的字符被處理ANSI3強制相關dBASE文件中的字符被處理ISOActiveXDataObjects(ADO),Jetdatabases(可以存取Access數據),IndexedSequentialAccessMethod(ISAM)數據庫,INFO,SDEODBC。MapObjects使用數據存取對象(DAO3.5)JetISAMISAMdBaseFoxProParadox。另外,DAO文本文件數據庫和 Excel或Lotus1-2-3工作表。ActiveDataObjects(ADO)是由微軟定義的MapObjects使用它以連接到被稱為“提供程序”的OLEDB數據源。OLEDB提供程序添加MapObjects數據表。比如,你可從一個Access2000數據庫文件中創建一個MapObjects數據表對象(使用Jet4.0OLEDB提供程序)然后用Ma yer的AddRelate方法建立這個數據表到shape文件的一個關聯(通過一個關鍵字段)MapObjects使用ADOTable20.DLL動態庫與DataAccessComponents(MDAC)2.5來連接到OLEDB數據源。你可能在安裝其它應用軟件時已經安裝了MDAC2.5ArcInfo8組件VB中,你可以通過菜單“工程”-“,在出現的框中查找ActiveXDataObjects2.5 DimrecsDAOAsDimrecsDAOAsDAO.RecordsetDimrecsADOAsNew 文件(*.udl)你可以知道你的計算機支持哪一種OLEDB數據源。首先在一個合適的位置上點擊右鍵,在出現的右鍵菜單中選擇新建一個文本文件,將它改成合適的名稱并將文件的擴展屬性改為.udl 。然后雙擊這個文件,將顯示數據 框(也可以先選中這個文件點右鍵查看屬性),OLEDB驅動。不同OLEDB提供程序要求不同的聯接字符串JetEngine40: Jet4.0OLEDBProviderAccess2000:="Provider= .Jet.OLEDB.4.0;DataSource=\somepath\mydb.mdb;UserId=admin;Password=asdasd;"Exce2000:="Provider= .Jet.OLEDB.4.0;DataSource=C:\MyExcel.xls;ExtendedProperties=Excel="Provider= .Jet.OLEDB.4.0;DataSource=c:\folder;ExtendedProperties=dBASEIV;UserID=Admin;Password="SQLServer: OLEDBProviderforSQLServerTrustedConnection:SQLOLEDBProviderpTable.Databse="Provider=sqloledb;DataSource=Aron1;InitialCatalog=pubs;IntegratedSecurity=SSPI;"ODBC: OLEDBProviderforODBCDriverspTable.Databse="[Provider=MSDASQL;]{DSN=name|FileDSN=filename};[DATABASE=database;]UID=user;PWD=password"UDL:pTable.Databse="FileName=c:\myDataLink.udl;"Table對象屬Name:StringRecords:RecordsetServer:StringUser:StringPassword:StringCommand:ObjectDatabase:StringMaxCachedRelatedRecords:LongVersion:StringSearchExpression(exp:String):Recordsetexp是符合比如為了選擇出年的人口比年的人exp=“POP2000>=POP1990*1.1其中POP2000和POP1990是字段名稱TableTable實例5.3使用數據表對 屬性數PrivateSubDimtblMOAsNewDimtdescMOAsMapObjects2.TableDescDimiAsInteger'MODAOtblMO.Database="dBASEIV;DATABASE="&'MOADO'tblMO.Database"Provider= .Jet.OLEDB.4.0;DataSource="&App.Path&";ExtendedProperties=dBASEIV;PersistSecurityInfo=True"tblMO.Name="云南州界'CreateaRecordsetobjectfromthesourcetableSetrecsMO=tblMO.Records'GettheRecordset'stabledescriptiontogetthefieldSettdescMO='PopulatetheCombo2boxwiththefieldCombo2.ClearFori=0TotdescMO.FieldCount-Combo2.AddItemEndPrivateSubCombo2_Click()List2.ClearrecsMO.MoveFirstDoUntil List2.AddItemrecsMO.Fields(Combo2.Text).ValueLoopEndSubVBADO方式PrivateSubcmdVBADO_Click()DimcnnAsNewADODB.ConnectionDimcmd1AsNew cnn.ConnectionString"Provider= .Jet.OLEDB.4.0;DataSource="App.Path&";ExtendedProperties=dBASEIV;PersistSecurityInfo=True"cnn.OpenmandText="Select*from云南州界Setcmd1.ActiveConnection=cnnSetrecsADO=cmd1.ExecuteCombo1.ClearDimrstAsForEachrstInrecsADO.FieldsCombo1.AddItem(rst.Name)NextrstEndSubCalculateS

溫馨提示

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

評論

0/150

提交評論