Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:在sqlserver2008中的varbinary(MAX) 类型的文件,如何取出来呀?

1楼
ycwk 发表于:2024/11/8 17:38:00
在sqlserver2008中的varbinary(MAX) 类型的文件,如何取出来呀?
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


用python代码已实现,现在我需要用foxtable把他上传的文件提取出来。谢谢!

import pyodbc

# 数据库连接字符串
conn_str = (
    r'DRIVER={SQL Server};'
    r'SERVER=172.16.14.14;'
    r'DATABASE=collectdata;'
    r'UID=sa;'
    r'PWD=12345678'

)

# 连接到数据库
conn = pyodbc.connect(conn_str)
cursor = conn.cursor()

# 执行查询,假设你的表名为your_table,binary字段名为your_binary_field
cursor.execute("s elec t ItemFile from dbo.test where ID=1")

# 获取查询结果
rows = cursor.fetchall()

# 遍历结果集
for row in rows:
    # row[0] 是binary字段的值
    binary_data = row[0]

    # 指定要保存的文件路径和文件名
    file_path = 'd:\salarysurvey.xlsx'

    # 打开文件准备写入
    with open(file_path, 'wb') as file:
        # 写入binary数据
        file.write(binary_data)

# 关闭数据库连接
cursor.close()
conn.close()

[此贴子已经被作者于2024/11/9 8:57:14编辑过]
2楼
有点蓝 发表于:2024/11/9 8:40:00
把二进制列的帮助都看一看:http://www.foxtable.com/webhelp/topics/2952.htm
3楼
ycwk 发表于:2024/11/11 10:29:00
以下代码是想在按下ctrl +c 的时候把文件复制在剪贴板中,现在文件已经能从二进制列中取出来了, 但是无法复制到剪贴板中,请问代码哪里有问题?


Dim cname As String = e.Table.cols(e.Table.colsel).name 
Dim TableName As String = e.Table.name
'msgbox(TableName)


If cname = "FileName" Then
      Dim dr As DataRow = Tables("文件收发管理表").Current.DataRow
      Dim fl As String = ProjectPath & dr("FileName")
   ' MessageBox.show(fl) 
      
  If e.Control = True AndAlso e.KeyCode = Keys.C Then '按下ctrl+C
     MessageBox.show("按下") 
     If dr.SQLLoadFile("FileUpload", fl) Then '如果提取文件成功
       'Dim Proc As New Process '打开文件
       'Proc.File = fl
       'Proc.Start()
           '以下三行为将文件路径复制到剪贴板中
           Dim ls As New System.Collections.Specialized.StringCollection
           ls.add(fl)
           MessageBox.Show(fl)
           My.Computer.Clipboard.SetFileDropList(ls)
         

           
     Else
       Messagebox.Show("附件提取失败,可能并不存在附件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
     End If 
  End If
End If 
4楼
有点蓝 发表于:2024/11/11 10:32:00
没有办法。只能保存为文件
5楼
ycwk 发表于:2024/11/11 10:35:00
这段代码我以前用过啊,可以按ctrl+c 把文件复制到剪贴板中,这样在接下来再按ctrl+v的时候,可以复制到任何路径。
6楼
ycwk 发表于:2024/11/11 10:35:00
上述代码执行的时候复制的是fileName列的内容,而不是执行的    上述代码,怎么让其按ctr+c后执行代码,而不是复制格子中的内容?
[此贴子已经被作者于2024/11/11 11:32:04编辑过]
共6 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.