现做一系统需要用MAPX来开发,可是我从没用过不知如何下手,与数据库怎么连接?
望高手赐教!有无例子给我一个,在下多谢了!

解决方案 »

  1.   

    在MapX中,属性数据与几何数据的关联是通过数据绑定实现的。 
      (1)、 什么叫数据绑定 
      数据绑定是将外部数据引入MapX的过程。 
      可以绑定的数据源包括以下类型: 类型 描述 
    ADO 使用ADO(Active data objects) 
    DAO DAO对象,可以是VB中的data control、Access表格等,也可自己创建 
    Delphi 使用Borland BDE数据源 
    Global Handle lets you pass in a block of tab-delimited data 
    Layer 创建一个Dataset,使用MapInfo表字段 
    Notes View/NotesQuery 专门用于Lotus Notes 
    ODBC 可以使用ODBC从任何ODBC数据源中获取数据 
    OLE Data 用于containers,如PowerBuilder 
    RDO MS Remote Data Objects和RDO结果集对象 
    safeArra COM数据集,与safearray中的数据进行静态绑定 
    Unbound 兼容其它   (2)、 数据绑定的强大作用 
      数据绑定主要有两个作用。 
      Ø 以地图中的图形对象来显示数据 
      通过数据绑定,可以将BindLayer对象作为一个参数,使用Datasets.Add方法将自己的表转变为一个DataSet。这将在地图中创建一个新的图层,并且将表中的数据以点等图形对象表示。一旦将数据引入地图,就可以很容易地使用MapX创建应用程序,并实现多种地图功能。 
      Ø 将属性数据绑定到地图中,并创建专题图 
      如果地图对象中包含相应的属性信息,也可以使用Datasets.Add方法将某个属性字段添加到地图中,进而就可以按照需要创建相关的专题图。 
      (3)、 数据绑定的实现方法 
      使用Datasets.Add可以将用户数据绑定到地图中。 
      在MapX中,每张地图对应多个图层(Layers),每一个图层(Layer)都有一个Datasets,其中包含DataSet对象。Datasets拥有一些属性和方法,用来在集合中添加和删除Dataset 对象,主要方法包括Add和Remove。 
      使用Datasets.Add绑定的最终结果是Dataset对象的创建。这个Dataset对象被加入到Datasets集合中,包含了被绑定图层的对象的计算结果。比如说,如果数据被绑定到US_States地图,每一个州将对应一个新的数据值,这个数据值被用来控制地图的绘制。如果数据源中含有某个州的多个记录,则这些记录的值可以进行累加、平均值等计算。使用Dataset的Value方法可以取得地图中每一个对象的计算结果。 
      DataSets.Add方法详解 
      Datasets.Add方法的使用主要需确定所绑定数据源的类型、绑定到地图的哪一层以及与地图之间关联的字段。语法如下: 
      Datasets.Add Type, SourceData, [Name], [Geofield], [SecondaryGeofield], [BindLayer], [Fields], [Dynamic] 
      []中的参数是可选的,程序中可以省略或传递EmptyParam。EmptyParam在Delphi中已定义的OleVariant类型参数,表示未用参数。 
      Ø Type 
      Type的取值范围为DatasetType常量,对应于可绑定的数据类型, DatasetType的定义如下: 
      DatasetType=[miDatasetADO,miDatasetDelphi,……,miDatasetLayer,miDatasetODBC,miDatasetUnbound] 
      其中miDatasetLayer表示绑定的是MapInfo表(.TAB),miDatasetODBC表示绑定的是ODBC 数据源中的表。 
      Ø SourceData 
      根据DatasetType的不同,SourceData有不同的取值,如miDatasetLayer对应MapInfo表,miDatasetODBC对应ODBCQueryInfo对象等等。因此,在引如ODBC数据时,需要首先创建ODBCQueryInfo对象,并为其参数ConnectString、Datasource和SqlQuery赋值。 
      Ø Name 
      String类型,唯一标识Dataset,默认名称为Dataset1、Dataset2……。 
      Ø Geofield 
      指定数据源中包含地理信息的字段名称或索引。如果不指定,则MapX会自动在GeoDictionary中搜索,看哪个字段包含地理信息。比如在“世行项目”中,表T_DJQH的xzqybh字段其实就是用来标识地图中地级行政区划的,因此在调用Datasets.Add时Geofield参数即传递xzqybh。 
      如果要将数据表示为地图上的图形对象,数据源中GeoField所表示的字段必须唯一,并且被用来命名新的图层中的对象。非唯一值将在新的图层中以一点代替,重复记录对应的数据值将被求和。 
      如果定义了Fields,则Geofield参数将表示Fields中的字段,而不是sourcedata。 
      可以看到,Geofield在几何数据与属性数据关联中起了绝对关键的作用。 
      Ø Secondary Geofield 
      只有当被绑定的数据集有非唯一主键时才定义该参数。 
      Ø BindLayer 
      指明外部数据应该绑定到地图中的哪一层。.该参数可选,未指定时MapX自动在GeoDictionary中查找相匹配的图层。但是从性能考虑,在肯定的情况下应当明确指定。 
      Ø Fields 
      描述外接数据源中的哪些字段被引用,以及当数据源中有多条记录对应一个地图对象时使用哪些集合函数,默认的集合函数是SUM(求和)。 
      如果该参数有定义,则Geofield和SecondaryGeofield参数均将其作为参照。 
      Ø Dynamic 
      布耳类型参数,用于控制数据绑定是否动态,默认为False,表示静态绑定,即当数据库被打开时MapX将拷贝所需数据;如果设定为True,MapX会以实时的方式访问数据。
      

  2.   

    ODBC,ADO...都可以看帮助吧,里面什么都有。帮助可能是VB语言的,但是应该可以看懂
      

  3.   

    谢谢hongqi162(失踪的月亮) !
    mapinfo表(*.tab)好象是GIS电子图,但是怎么样才能得到我自己所需要的.TAB呢?
    在DELPHI中MAP控件只认*.GST图,我找了好久也找不到自己所需要的表,假如某一地市图,
    我应该怎么办呢?
    假如我用SQL SERVER数据库,某一张表上的数据怎样和图进行关联呢?在设计表时有什么注意的地方吗?
    急!急!急!
    一菜鸟在等待各位大侠帮忙!