hsxljwht
路人甲
路人甲
  • 注册日期2004-10-06
  • 发帖数59
  • QQ
  • 铜币253枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2107回复:4

[求助]access数据库用vc+mapx转为图形

楼主#
更多 发布于:2004-11-19 13:23
<P>作为一个mapx的初学者,想找一个vc+mapx的原代码,把access里的数据变为图形</P>
<P>数据包括x,y坐标和点符号样式,我想在地图里画出图形,点属性里加上x,y和点样式。</P>
<P>请高手帮忙,我一直没找到</P>
喜欢0 评分0
selan1
路人甲
路人甲
  • 注册日期2004-10-16
  • 发帖数12
  • QQ
  • 铜币128枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-11-20 13:47
<P>我也想要啊...我吻了好久都没吻到.</P>
举报 回复(0) 喜欢(0)     评分
richee
路人甲
路人甲
  • 注册日期2004-11-14
  • 发帖数49
  • QQ
  • 铜币195枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-11-21 09:56
用OLE插件不知可否?
举报 回复(0) 喜欢(0)     评分
hsxljwht
路人甲
路人甲
  • 注册日期2004-10-06
  • 发帖数59
  • QQ
  • 铜币253枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-11-21 20:08
<P> try {
  CMapXODBCQueryInfo ODBCParam;
  CMapXBindLayer bindLayer;
  CMapXDatasets ds = m_ctrlMapX.GetDatasets();
  COleVariant SourceData;
  COleVariant BindLayer;</P><P>  // this assumes you have an Access DataSource called MapStatsV4 pointing
  // to the MapStats.mdb that ships with MapX.  If the DataSource param is left
  // out, the user will be prompted for an ODBC datasource.
  ODBCParam.CreateDispatch("MapX.ODBCQueryInfo.4");
  ODBCParam.SetConnectString("ODBC;");
  ODBCParam.SetSqlQuery("select * From US_CUST");
  ODBCParam.SetDataSource("MapStatsV4");</P><P>  SourceData.vt = VT_DISPATCH;
  SourceData.pdispVal = ODBCParam.m_lpDispatch;</P><P>  // now set up binding
  bindLayer.CreateDispatch(bindLayer.GetClsid());
  bindLayer.SetLayerName("Customers");
  bindLayer.SetRefColumn1("X");
  bindLayer.SetRefColumn2("Y");
  bindLayer.SetLayerType(miBindLayerTypeXY);</P><P>  BindLayer.vt = VT_DISPATCH;
  BindLayer.pdispVal = bindLayer.m_lpDispatch;
  BindLayer.pdispVal->AddRef();</P><P>  ds.Add(miDataSetODBC, SourceData, COleVariant("ODBCXYBind"), COleVariant("LNAME"),
    COptionalVariant(), BindLayer, COptionalVariant(), COptionalVariant());
 }
 catch (COleDispatchException *e) {
  e->ReportError();
  e->Delete();
 }
 catch (COleException *e) {
  e->ReportError();
  e->Delete();
 }</P><P>这是例子里的</P><P> Dim dataset As MapXLib.dataset
    Dim BindLyr As New MapXLib.BindLayer
    Dim conn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim strSql As String
    
    '打开mdb数据库
    Set conn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" ; App.Path ; "\data\point.mdb"
    strSql = "select * from demo"
    rs.Open strSql, conn, adOpenStatic, adLockReadOnly
    
    '绑定,引入ACCESS数据源
    BindLyr.LayerType = miBindLayerTypeXY
    BindLyr.RefColumn1 = "经度"
    BindLyr.RefColumn2 = "纬度"
    Set dataset = Map1.DataSets.Add(miDataSetADO, rs, , "经度", "纬度", BindLyr)
          
    rs.Close
    Set rs = Nothing
这是vb用ado方式的</P><P>现在我想要一段vc用dao实现的代码,请帮忙</P>
举报 回复(0) 喜欢(0)     评分
nudtlarry
路人甲
路人甲
  • 注册日期2004-12-05
  • 发帖数319
  • QQ
  • 铜币770枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-01-23 14:01
<P>俺也正想要!!!顶,顶顶!</P>
---------------------------------------------- E-Mail: nudtlarry@163.com ----------------------------------------------
举报 回复(0) 喜欢(0)     评分
游客

返回顶部