阅读:2368回复:4
[求助]access数据库用vc+mapx转为图形
<P>作为一个mapx的初学者,想找一个vc+mapx的原代码,把access里的数据变为图形</P>
<P>数据包括x,y坐标和点符号样式,我想在地图里画出图形,点属性里加上x,y和点样式。</P> <P>请高手帮忙,我一直没找到</P> |
|
1楼#
发布于:2005-01-23 14:01
<P>俺也正想要!!!顶,顶顶!</P>
|
|
|
2楼#
发布于: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> |
|
3楼#
发布于:2004-11-21 09:56
用OLE插件不知可否?
|
|
4楼#
发布于:2004-11-20 13:47
<P>我也想要啊...我吻了好久都没吻到.</P>
|
|