用了 zjcxc(邹建) 的导出excel的存储过程,发现问题!

vfork 2005-03-28 10:46:19
如果SQL Server 2k装在10.0.1.110上,
我在10.0.1.111机器上执行存储过程,那个导出的excel表在10.0.1.110上,
怎样才能使导出的excel在本机上.



顺便一问,以下是delphi中备份数据的代码,同样,也是备份到数据库服务器那台机器上,
无法把数据备份保存在客户机上:
DM.ADOCommand1.CommandText := 'use Master';
DM.ADOCommand1.Execute;
DM.ADOCommand1.CommandText := 'execute sp_helpdevice';
DM.ADOCommand1.Execute;
DM.ADOCommand1.CommandText := 'backup database ' + DB + ' to disk=''' +BackupFile+ ''' with init';
DM.ADOCommand1.Execute;
DM.ADOCommand1.CommandText := 'Use ' + DB ;
DM.ADOCommand1.Execute;
...全文
178 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
vfork 2005-03-31
  • 打赏
  • 举报
回复
不理想...
如果不先跟对方建立连接,
直接用\\server\aaaa这样的路径copy会有问题!
zjcxc 元老 2005-03-28
  • 打赏
  • 举报
回复
两种方式
1.共享
2.直接写在程序中实现
TigerSuper 2005-03-28
  • 打赏
  • 举报
回复
我是先做了个dts包把数据导成excel文件
再建一个批处理
执行这个dts包
拷贝到指定位置
dxhdxh 2005-03-28
  • 打赏
  • 举报
回复
--方法1.

--你是否有足够的权限?如果有足够的权限,可以备份到本机

--如果有,可以用下面的方法,查询分析器中操作:

-- 创建共享目录
exec master.dbo.XP_cmdshell 'md c:\bak'
exec master.dbo.XP_cmdshell 'net share bak=c:\bak'

--进行数据备份
backup database 数据库 to disk='c:\bak\备份.bak'


/*--以下操作在我的电脑中进行:

打开我的电脑,地址栏中输入:
\\SQL服务器的计算机名\bak\
复制里面的备份.bak到你的电脑就行了

--我的电脑中的操作结束--*/


--删除备份生成的文件
exec master..xp_cmdshell 'del c:\bak\备份.bak'

--删除共享
exec master.dbo.XP_cmdshell 'net share c:\bak /delete /y'
exec master.dbo.XP_cmdshell 'rd c:\bak'




--方法2,完全共享你本机的目录,用下面的方法备份:
backup database 数据库 to disk='\\你的计算机名\共享目录名\备份文件名'



---或通过映射网络驱动器(这样可以解决权限问题)

--1.映射
exec master..xp_cmdshell 'net use z: \\xz\c$ "" /user:xz\administrator'

/*--说明:
z:是映射网络路径对应本机的盘符,与下面的备份对应
\\xz\c$是要映射的网络路径
xz\administratorxz是远程的计算机名,administrator是登陆的用户名
--*/



--2.进行数据库备份
backup database 数据库名 to disk='z:\备份文件名'


--3.备份完成后删除映射
exec master..xp_cmdshell 'net use z: /delete'


jinjazz 2005-03-28
  • 打赏
  • 举报
回复
只能开共享来传了吧

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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