关系数据库用ADO.net *** 作,没问题;
问题是 使用AE接口将其当做空间库 *** 作后又将其当做关系库然后使用ado *** 作!混搭是会出问题的!
实际上,AE自己有执行sql语句的功能,不要再用自己的ado访问,统一用ae接口。
如果执行 查询 *** 作,使用IQuerydef接口;
如果执行 删除,修改,插入等无返回值的sql语句,直接ExcuteSQL接口即可。
具体用法再查询。当前你应该做的是用这两个接口,改写你所有的ado处理方法,程序中将移除所有的ado,再看结果如何。
原因:打开空间数据库的工作空间,实际上也打开了数据库连接。混搭 *** 作,可能由于你不了解资源的释放等,产生不可预知的错误,也许逻辑是对的,得不到你想要的结果。。。
先使用OLEDB方式访问,查询有没有"GDB_"开头的表,如GDB_Items,如果有的话,说明很可能是个人地理数据库,然后通过IWorkspaceFactory接口打开个人地理数据库工作空间。1、连接sde数据库在10.1中数据库的连接默认为直连,但是对于以前的代码没有任何影响,如下面的代码(如果你用的是sde10的32位数据库,连接方法和以前一样,直接用代码连接;如果你用的是64位的数据库,请将32位的数据库客户端放到安装Engine的bin目录下):
public IWorkspace GetSDEWorkspace(
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)