以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 在sqlserver2008中的varbinary(MAX) 类型的文件,如何取出来呀? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194093) |
-- 作者:ycwk -- 发布时间:2024/11/8 17:38:00 -- 在sqlserver2008中的varbinary(MAX) 类型的文件,如何取出来呀? 在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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2024/11/9 8:40:00 -- 把二进制列的帮助都看一看:http://www.foxtable.com/webhelp/topics/2952.htm |
-- 作者: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
|
-- 作者:有点蓝 -- 发布时间:2024/11/11 10:32:00 -- 没有办法。只能保存为文件 |
-- 作者:ycwk -- 发布时间:2024/11/11 10:35:00 -- 这段代码我以前用过啊,可以按ctrl+c 把文件复制到剪贴板中,这样在接下来再按ctrl+v的时候,可以复制到任何路径。 |
-- 作者:ycwk -- 发布时间:2024/11/11 10:35:00 -- 上述代码执行的时候复制的是fileName列的内容,而不是执行的 上述代码,怎么让其按ctr+c后执行代码,而不是复制格子中的内容?
[此贴子已经被作者于2024/11/11 11:32:04编辑过]
|