|
阅读:1842回复:5
请问MapObjects在C++ Builder中如何与外部数据表关联
<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> |
|
|
1楼#
发布于:2007-01-08 19:50
<img src="images/post/smile/dvbbs/em01.gif" />
|
|
|
2楼#
发布于:2007-01-09 20:57
<img src="images/post/smile/dvbbs/em28.gif" />
|
|
|
3楼#
发布于:2007-01-09 22:50
<P>pTable->Name =ADOQuery1->SQL;</P>
<P>这样行不行。把vb贴出来看看。</P> |
|
|
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> |
|
|
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> |
|