zhaoj000
路人甲
路人甲
  • 注册日期2006-12-01
  • 发帖数4
  • QQ
  • 铜币107枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1842回复:5

请问MapObjects在C++ Builder中如何与外部数据表关联

楼主#
更多 发布于:2007-01-08 11:48
<P>wchar_t *LyrFld = WideString("STATE_").Detach();//图层属性数据表字段<BR> wchar_t *TableFld = WideString("ID").Detach();//外部数据表字段<BR> AnsiString sql = "SELECT * FROM zj";<BR> ADOQuery1->Close();<BR> ADOQuery1->SQL->Clear();<BR> ADOQuery1->SQL->Add(sql);<BR> ADOQuery1->Open();</P>
<P> Lyr = Map1->Layers->Item(Variant(0));<BR> pTable = (IDispatch *)CreateOleObject("MapObjects2.Table");<BR> VARIANT v;<BR> VariantInit(;v);<BR> v.vt = VT_BOOL;<BR> v.boolVal = false;</P>
<P> AnsiString Str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrator.6EE7AC311C6B42C\桌面\db1.mdb;Persist Security Info=False";</P>
<P> pTable->Database = WideString(Str).Detach();<BR> pTable->Name = WideString("zj").Detach();</P>
<P> pTable->Command = ADOQuery1   //(???)<BR>注:上面这行不知道该怎么写,VB中很简单。“zj”是Access数据库里的数据表名</P>
<P><BR> Lyr->AddRelate(LyrFld,pTable,TableFld,v);<BR> IMoRecordsetPtr rec = pTable->Records;<BR> if ((bool)rec->EOF_)<BR> {<BR>  ShowMessage("No records!");<BR>  return;<BR> }     </P>
<P>有谁知道关联数据表该怎么写</P>
喜欢0 评分0
whmwxhanshan123
路人甲
路人甲
  • 注册日期2006-06-17
  • 发帖数3108
  • QQ
  • 铜币6445枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2007-01-08 19:50
<img src="images/post/smile/dvbbs/em01.gif" />
举报 回复(0) 喜欢(0)     评分
zhaoj000
路人甲
路人甲
  • 注册日期2006-12-01
  • 发帖数4
  • QQ
  • 铜币107枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2007-01-09 20:57
<img src="images/post/smile/dvbbs/em28.gif" />
举报 回复(0) 喜欢(0)     评分
lhfde
路人甲
路人甲
  • 注册日期2006-05-23
  • 发帖数51
  • QQ
  • 铜币243枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2007-01-09 22:50
<P>pTable->Name =ADOQuery1->SQL;</P>
<P>这样行不行。把vb贴出来看看。</P>
举报 回复(0) 喜欢(0)     评分
zhaoj000
路人甲
路人甲
  • 注册日期2006-12-01
  • 发帖数4
  • QQ
  • 铜币107枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2007-01-10 11:30
<P>VB中好像这样</P>
<P>Private Sub Command1_Click()<BR>  Dim pTable As MapObjects2.Table  '建立一Mo table表对象<BR>  Dim Str1 As String<BR>  Str1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\..\Data.mdb"                      '设置数据源<BR>  Set pTable = New MapObjects2.Table<BR>  pTable.Database = Str1<BR>  pTable.Name = "TableName"         '指定数据表名</P>
举报 回复(0) 喜欢(0)     评分
lhfde
路人甲
路人甲
  • 注册日期2006-05-23
  • 发帖数51
  • QQ
  • 铜币243枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2007-01-10 14:50
<P>String strConnectionString;<BR>strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\gis\\1127\\112.mdb;Persist Security Info=False";<BR> ADOConnection1->ConnectionString=  strConnectionString;<BR> ADOConnection1->Open();<BR> ADOTable1->Connection=ADOConnection1;<BR> ADOTable1->TableName="TableName";//指定数据表名<BR> ADOTable1->Active=true;<BR> DataSource1->DataSet=ADOTable1;<BR> DBGrid1->DataSource=DataSource1;</P>
<P>不要ADOConnection1直接用ADOTable1连接数据库也可以。</P>
<P>问一下有没有选择地物的cbuilder源程序?</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部