爱猪的鸟

    <<  JavaScript中Shell、FSO及CommonDialog简单应用示例 | 首页 | 一个时间输入文本框示例  >>
  • 2006-01-15

    通过SQL Server在服务器上存取文件 - [VFP&JSP]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://thornbird313.yourblog.org/logs/511359.html

        前些天改公司的程序,发现员工基本资料表中的照片字段竟是字符型,只保存照片的路径。我们的程序一般是用远程桌面访问,或是把程序所在目录映射为本地盘并运行程序。这样一来,图片只能放在服务器上才能进行显示、打印,且如果采取映射本地盘的方式,每个客户端应该都必须映射为相同的本地盘(或者把照片放在程序所在目录下,保存相对路径)。于是我把照片字段改成text类型,把文件存储到数据库中,不过一个同事不同意我的做法,于是只好作罢。但后来我想到其实可以把照片“上传”到服务器上,需要使用时再“下载”到本地,然后数据库中保存文件在服务器上的实际路径。通过查资料,我知道了可以用 sp_makewebtask 存储过程把查询结果保存到服务器上,遗憾的是它是保存为网页的格式,而不能把文件照原样保存到服务器上。不过无所谓了,只要“下载”时再对文件结构进行分析就可以了,这样一来就可以实现“上传”的功能了。至于“下载”,可以用 BULK INSERT 语句来实现。

        我的思路是这样的:把文件进行编码后保存到 SQL Server 的临时表中,然后执行 sp_makewebtask 存储过程保存文件;使用“上传”的文件时则可以用 BULK INSERT 语句把文件存入临时表中,然后再通过查询得到文件的全部内容,然后进行分析和解码后进行保存。上面两个步骤都需要有足够的权限。这就是我的 ServerFileAccess 类的基本思路,这个类主要有下面几个方法:
            SetConnectString  设置连接字符串
            SetConnectHandle  设置连接句柄
            Connect  与 SQL Server 建立连接
            Disconnect  断掉连接
            UploadFile  把客户端的文件“上传”到服务器上
            GetFileFromServer  获取服务器上的文件
            GetUploadFileFromServer  获取之前“上传”到服务器上的文件
            DownloadFile  “下载”服务器上的指定文件到本地
            DownloadUploadFile  “下载”之前“上传”到服务器上的文件到本地
    下面是 ServerFileAccess 类的代码及演示:

        ServerFileAccess.prg

    DEFINE CLASS ServerFileAccess AS Custom
    
        PROTECTED ConnectString
        PROTECTED ConnectHandle
        PROTECTED Connected
        PROTECTED FLAG_START
        PROTECTED FLAG_END
        PROTECTED ROWTERMINATOR
        
        PROCEDURE Init
            THIS.ConnectString = ""
            THIS.ConnectHandle

    随机文章:

    一段排列组合算法 2007-03-19
    HttpURLConnection应用示例 2006-11-23
    VFP编程访问WMI对象 2006-03-01
    用JAVA画个星条旗 2006-01-09
    文件枚举工具(二) 2005-12-11

    收藏到:Del.icio.us




    Tag:
    引用地址:
    ThornBird 发表于03:26:05 | 编辑 | 继续话题 | 转发 | 推荐

    发表评论

    您将收到博主的回复邮件
    记住我

    搜索

    最新日志

    • 一个自以为不错的创意
    • 利用API绘制拖动边框(二)
    • 利用API绘制拖动边框(一)
    • 表单集合并工具
    • TreeView节点拖放示例
    • 80后程序员找不到工作了?
    • 味道奇怪的鱼
    • 批量下载PNG图片
    • 基层民主选举投票系统
    • 昨晚做了两个奇怪的梦

    最新评论

    • 龙:把 jspSmartUpload.jar 发到我的邮箱...
    • 龙:把 jspSmartUpload.jar 发到我的邮箱...
    • seo软件:站 长 , 这 个 文 章 对 我 有 大 用 处 , ...
    • xx:大侠,请教我一个具体的例子!多谢!!...
    • 111:11
    • 哼着调的小公主:收集学习下
    • ThornBird:我可真笨,可以这样的: LPARAMETERS ...
    • sabrina:钱不是万能的.没钱也是万万不能的....... 钱有时...
    • ThornBird:原来VFP有现成的函数啊,可以把函数D2H改写如下: ...
    • RSS 什么是RSS?
      用IM提醒我内容更新
      订阅到鲜果阅读器
      订阅到Google阅读器
      订阅到抓虾阅读器
    • 博客大巴
      博客大巴指南
      免费注册博客大巴
    Copyright © 2002-2008 BlogBus.com, All Rights Reserved. 博客大巴 版权所有