Sql Server 2000 导入Sql Server 2000

joe_2008 2008-06-13 04:11:56
加精
我有个问题想不通...
我有一条SQL语句
insert into [currency](currency_code,currency_name,currency_rate,systemDefault,modified_date) select currency_code,currency_name,currency_rate,systemDefault,modified_date from OPENDATASOURCE('SQLOLEDB','Data Source=192.168.1.100;User ID=sa;Password=abc').Gourmet.dbo.[currency]

在查询分析器中运行完全没有问题的。。。
但我回到Delphi中用ADOConnection.execute运行就出现问题了...提示是MSDTC没有开之类的
现在我已经把SQL SERVER 2000 都打了SP3的补丁和MSDTC都开了...防火墙都设好了

但在delphi中运行就提示新的错误提示
"New transaction cannot enlist in the specified transaction coordinator"

为什么会这样的错误,一般你们是用什么控件在delphi在运行 这条插入语句的?
还有什么方法可以解决我这个问题呢?

救命啊!!!!!!!!!!!!
...全文
887 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
RichardSzwz 2008-06-22
  • 打赏
  • 举报
回复
高手如云,
学习中......
zdhuang 2008-06-21
  • 打赏
  • 举报
回复
试一试预编译方法,这样做的话可以简化代码,也方便自己的逻辑!!!
chengchao1221 2008-06-20
  • 打赏
  • 举报
回复
真高明,乍一看一头雾水!!!!
tomcat2100 2008-06-18
  • 打赏
  • 举报
回复
这里高手真多,我会常来学习的!
yangjin123 2008-06-18
  • 打赏
  • 举报
回复
帮顶~~~~~~~~~~~~~~~~~~~~~~~
laoming100 2008-06-18
  • 打赏
  • 举报
回复
将内容导出在进行处理
poxi_nick 2008-06-17
  • 打赏
  • 举报
回复
楼主的问题是一个分布式事务处理的问题.要解决这个问题首先要设置分布式事务处理协调器,这里有很多细节问题,具体的我也写不清楚. 我也建议采用 dh9450 说的方法,这种我也在用.
fairyhoodwater 2008-06-17
  • 打赏
  • 举报
回复
你吧这个东西写在SQL的存储过程中,然后用Delphi启动SQL里的存储过程
s32702 2008-06-17
  • 打赏
  • 举报
回复
远程的还没做过,学习中
joe_2008 2008-06-17
  • 打赏
  • 举报
回复
好的!!!非常感谢你们的帮助...
我暂时用线程 再一条条记录插进去...
不会太慢...近5W条记录需要2分钟...

先结贴了...
hqhhh 2008-06-16
  • 打赏
  • 举报
回复
可能是权限的问题,先用超级用户连接到192.168.1.100这个电脑, 然后再执行你的程序试试,以前也碰到这样的问题,后来也不知怎么乱搞,又行了。

用192.168.1.100这台电脑的超级用户在本机登陆。应该可以。
delphi_fcan 2008-06-16
  • 打赏
  • 举报
回复
用select * into [表名] from database.dbo.表名 where 等等...
这样就行完成
这个在查询分析器中执行就行了
ampiresj 2008-06-16
  • 打赏
  • 举报
回复
程序连接SQL服务器的用户权限与你登录查询分析器的用户一样吗,是否有连接远程服务器的权限,请用sa帐户试一下;
不行就换一个方法,在程序中先用SQL取得一个数据库的数据,通过循
zhang_man 2008-06-16
  • 打赏
  • 举报
回复
先安装Sp4补丁,然后运行安装目录下的批处理文件(setup.bat)试试。
dh9450 2008-06-16
  • 打赏
  • 举报
回复
今天也碰到这问题
查了查CSDN的老帖子 找到点东西
http://topic.csdn.net/t/20040423/21/3001796.html
引邹老大原话:
----------------------
--不在同一台电脑上,那可以用下面两种方法:

--如果经常访问或数据量大,建议用链接服务器

--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go

--查询示例
select * from srv_lnk.数据库名.dbo.表名

--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名

go
--处理完成后删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset('sqloled'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)


--导入示例
select * into 表 from openrowset('sqloled'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)



我在查询分析器内测试建立炼接服务器的第一种方法比第二重要快很多
530万数据 第一种7分55秒 第二种12分多
还是建立楼主封成存储过程 怎么说也好维护些
大自然D使者 2008-06-16
  • 打赏
  • 举报
回复
dephi不会呢
僵哥 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 joe_2008 的回复:]
SP4 是不是要先安装 analysis server 2000?
不安装行吗?
[/Quote]
不需要安装。
joe_2008 2008-06-16
  • 打赏
  • 举报
回复
SP4 是不是要先安装 analysis server 2000?
不安装行吗?
深鱼 2008-06-15
  • 打赏
  • 举报
回复
学习啦!
僵哥 2008-06-14
  • 打赏
  • 举报
回复
数据量过大,建议不要试图在一条语句当中导入完,而是切分而若干份,如果使用的是手动事务,每一个执行分片都要进行事务启动和提交。否则的话,会因为单个事务过大,占用资源过多,而变得极其缓慢。甚至可能导致失败(如果空间不足的话),不过很可惜的是,在MSSQL当中不支持关闭事务日志,所以必须考虑目标数据库的可用磁盘空间,以及事务日志的上限。
加载更多回复(16)
本课程根据讲师十多年在世界500强外企的生产环境中的SQL Serer数据库管理和项目实施经验倾心打造。课程系统性强,知识体系完整,覆盖90%以上的企业环境下SQL Server高可用场景,课程中不仅演示详细的操作步骤,更加突出最常见的故障和问题,让学员少走“弯路”,不只是让学员学会“操作”更能让学员“操作”的规范,满满的干货分享,一些课程资料(架构图、部署规划表格等)不仅可以帮助学员掌握技能,也可以作为学员在企业生产环境中实施SQL Server高可用的配置文档、操作手册等。课程的实验环境介绍:1)全部基于微软域环境和企业版SQL Server AOAG - 95%以上的企业环境都是在域环境中,不介绍非域环境和标准版的SQL Server高可用性组,这的配置在企业中较罕见,没有实践意义,不浪费学员时间。2)相应域环境已提前部署和配置好 - 学员导入虚拟机即可开始实验,无需从零开始搭建域环境,所有实验中SQL Server均已加域,直入主题,节省大量时间。3)最新的Windows Server故障转移集群(WS2016、WS2019)和最新版本的SQL ServerSQL2017、SQL2019) -  WS2016-SQL2017与WS2019-SQL2019是目前大多数企业SQL Server高可用的主要平台,基于微软产品生命周期现在一些企业也在讲早期的AOAG向这两个版本迁移,掌握这两种组合不仅让学员学会,更能学有所用。本课程为后续SQL Server进阶课程铺垫,是通向SQL Server DBA 专家的必经之路,讲师每周答疑两次。所有课程资料包括:课程PPT、架构图、部署规划表格、各类脚本学员均可下载。     

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧