写了几天语法就是写不对。先谢过。

解决方案 »

  1.   

    procedure TForm1.N46Click(Sender: TObject);
    var
     ds: Dataset;
     parm: Variant;
     fields: CMapXFields;
    begin
      parm := CreateOleObject('MapX.ODBCQueryInfo.5');
     parm.SqlQuery := 'select * from mymapinfo';  parm.ConnectString := 'ODBC;Provider=MSDASQL.1;Password=tpassword;Persist Security Info=True;User ID=tusername;Data Source=test;Initial Catalog=test';  parm.DataSource := '';  fields := CoFields.Create;  fields.Add('name', 'name', miAggregationAuto, miTypeString);
      fields.Add('imapid', 'imapid', miAggregationAuto, miTypeInteger);
      fields.Add('stanum', 'stanum', miAggregationAuto, miTypeInteger);
      fields.Add('res', 'res', miAggregationAuto, miTypeString);  ds := Map1.Datasets.Add(miDataSetODBC, parm, 'ODBC Dataset',EmptyParam, EmptyParam, 'china', fields, EmptyParam);
    end;问题一是在map1.datasets.add时总会出现选择数据源对话框。
    二是连接时出现错误Access violation at address 0158AD66 in module 'daengine.dll'.Read of address00000000.的错误信息。请高手指教。
      

  2.   

    一、要记得在工程文件中的uses后加ShareMem单元引用
    二、绑定的数据集要有Field与图层的KEY对应,而且,每行数据有相应的图元与之对应
    三、parm.DataSource := '';这个值得怀疑,看看Mapx帮助中的Examples这是我的看法,不知对不对
      

  3.   

    这就是Mapx帮助中的Examples里拿出来的。