|
技术资料:地图与数据库中有一字段相同,将它们关联起来
下列代码实现了类似地理匹配的功能。即TAB与DataBase中有一字段相同,将二者关联起来。(采用ODBC,DAO,ADO三种方式)
Private Sub cmdCustom_Click()
'Add the single layer
Map1.Layers.RemoveAll
Map1.Layers.Add App.Path & "\import.tab"
'make the map look nice for the sample data
Map1.DisplayCoordSys = Map1.NumericCoordSys
Map1.Title.Visible = False
Map1.Bounds = Map1.Layers.Item("import").Bounds
Map1.Zoom = Map1.Zoom * 2
Clickable (True)
End Sub
Private Sub cmdQuit_Click()
End
End Sub
Private Sub Command1_Click()
Dim ds As MapXLib.Dataset
Dim flds As New MapXLib.Fields
'requires reference to: "MapX ODBC Dataset Engine Library"
'and an ODBC DSN named import needs to be linked to import.mdb
Dim parm As New ODBCQueryInfo
parm.SqlQuery = "Select * from table1"
parm.DataSource = "import" 'DSN pointing to Mapstats.mdb
parm.ConnectString = "ODBC;"
' Get the relevant fields that'll come from DB
flds.Add "DB1", "DB1", miAggregationIndividual, miTypeString
flds.Add "DB2", "DB2byODBC", miAggregationIndividual, miTypeString
'Make Dataset
Set ds = Map1.Datasets.Add(miDataSetODBC, parm, "importODBC", "DB1", , "import", flds)
'make the theme
ds.Themes.Add miThemeAuto
Clickable (False)
End Sub
Private Sub Command2_Click()
Dim ds As MapXLib.Dataset
Dim flds As New MapXLib.Fields
'requires reference to: "Microsoft DAO Object Library"
Dim db As Database
Dim rs As Recordset
'open Database and recordset
Set db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "/import.mdb")
Set rs = db.OpenRecordset("table1")
'define the fields
flds.Add "DB1", "DB1", miAggregationIndividual, miTypeString
flds.Add "DB2", "DB2byDAO", miAggregationIndividual, miTypeString
'add the dataset
Set ds = Map1.Datasets.Add(miDataSetDAO, rs, "importDAO", "DB1", , "import", flds)
'make theme and close out
ds.Themes.Add miThemeAuto
rs.Close
db.Close
Clickable (False)
End Sub
Private Sub Command3_Click()
Dim ds As MapXLib.Dataset
Dim flds As New MapXLib.Fields
'requires reference to Microsoft ActiveX Data Objects Library
Dim rs As New ADODB.Recordset
Dim Conn As New ADODB.Connection
Conn.Open ("rovider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\import.mdb")
rs.CursorLocation = adUseClient
rs.Open "SELECT * FROM table1 ", Conn
'define the fields
flds.Add "DB1", "DB1", miAggregationIndividual, miTypeString
flds.Add "DB2", "DB2byADO", miAggregationIndividual, miTypeString
'add dataset
Set ds = Map1.Datasets.Add(miDataSetADO, rs, "importADO", "DB1", , "import", flds)
'make theme
ds.Themes.Add miThemeAuto
Clickable (False)
End Sub
Private Sub Form_Load()
Clickable (False)
End Sub
Public Sub Clickable(ByVal b As Boolean)
Command1.Enabled = b
Command2.Enabled = b
Command3.Enabled = b
End Sub
--------------------------------------------------------------------------------
|
|