请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

w2331175

高级会员

92

主题

300

帖子

1416

积分

高级会员

积分
1416

微信认证勋章

[已处理] 执行存储过程

w2331175
高级会员   /  发表于:2025-6-4 10:23  /   查看:132  /  回复:6
1金币
我有一个存储过程(测试写入文件)


CREATE PROCEDURE dbo.TestFileWrite
AS
BEGIN
    DECLARE @fso INT, @file INT, @hr INT;
    DECLARE @filename NVARCHAR(255) = 'D:\SQL_Write_Test.txt';
    DECLARE @content NVARCHAR(1000) = '这是一个写入权限测试。成功写入说明有权限。';

    -- 创建 FileSystemObject
    EXEC @hr = sp_OACreate 'Scripting.FileSystemObject', @fso OUT;
    IF @hr <> 0
    BEGIN
        PRINT '创建 FSO 失败,错误码:' + CAST(@hr AS NVARCHAR);
        RETURN;
    END

    -- 创建文本文件(覆盖模式,第二参数为 True)
    EXEC @hr = sp_OAMethod @fso, 'CreateTextFile', @file OUT, @filename, 2, True;
    IF @hr <> 0
    BEGIN
        PRINT '创建文件失败,错误码:' + CAST(@hr AS NVARCHAR);
        EXEC sp_OADestroy @fso;
        RETURN;
    END

    -- 写入固定内容
    EXEC @hr = sp_OAMethod @file, 'WriteLine', NULL, @content;
    IF @hr <> 0
    BEGIN
        PRINT '写入失败,错误码:' + CAST(@hr AS NVARCHAR);
    END

    -- 关闭文件和清理对象
    EXEC sp_OAMethod @file, 'Close';
    EXEC sp_OADestroy @file;
    EXEC sp_OADestroy @fso;

    PRINT '&#9989; 测试完成,请检查文件是否已创建:' + @filename;
END


我在服务器命令中使用存储过程调用命令,

运行也是正常,但是就是没有生成文件。


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

浏览器没办法直接在用户的某个位置生成一个文件,既不支持也不安全,想想就不合理,用户只是打开了某个网站,这个网站自动给我的电脑生成了很多文件 所以更多的还是像楼上大佬说的,在服务器生成文件后,让用户自己点击下载

6 个回复

倒序浏览
最佳答案
最佳答案
Nathan.guo活字格认证 Wyn认证
超级版主   /  发表于:2025-6-4 10:23:40
来自 8#
浏览器没办法直接在用户的某个位置生成一个文件,既不支持也不安全,想想就不合理,用户只是打开了某个网站,这个网站自动给我的电脑生成了很多文件

所以更多的还是像楼上大佬说的,在服务器生成文件后,让用户自己点击下载
回复 使用道具 举报
w2331175
高级会员   /  发表于:2025-6-4 11:54:35
2#
我知道我看了,在服务器上是生成了对应的文件,但是我需要的效果是在本机上生成。这个如何做。谢谢!!
回复 使用道具 举报
amtath悬赏达人认证 活字格认证
论坛元老   /  发表于:2025-6-4 20:31:01
4#
生成一个让他下载呀。
回复 使用道具 举报
w2331175
高级会员   /  发表于:2025-6-5 09:09:47
5#
amtath 发表于 2025-6-4 20:31
生成一个让他下载呀。

太麻烦了。现在帮他们编的,不用这样麻烦,更改后,变麻烦肯定有抵触!
回复 使用道具 举报
amtath悬赏达人认证 活字格认证
论坛元老   /  发表于:2025-6-5 09:15:58
6#
本帖最后由 amtath 于 2025-6-5 09:18 编辑

w2331175 发表于 2025-6-5 09:09
太麻烦了。现在帮他们编的,不用这样麻烦,更改后,变麻烦肯定有抵触!

BS软件不能像传统桌面软件(CS架构)那样自由地在用户本地生成和操作文件。它可以通过浏览器缓存、有限的本地存储、用户触发的下载或在获得特定授权后,间接地在用户设备上产生文件,但这些操作都有明确的限制(空间、持久性、需要用户交互)或依赖于特定的运行时环境/API







回复 使用道具 举报
amtath悬赏达人认证 活字格认证
论坛元老   /  发表于:2025-6-5 09:18:23
7#
BS软件不能像传统桌面软件(CS架构)那样自由地在用户本地生成和操作文件。它可以通过浏览器缓存、有限的本地存储、用户触发的下载或在获得特定授权后,间接地在用户设备上产生文件,但这些操作都有明确的限制(空间、持久性、需要用户交互)或依赖于特定的运行时环境/API
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部