C# 使用C将数据从SQL图像字段保存到pdf、msg、xls、txt文件
我有一个DB格式的表,其中有一个Image类型的字段。image类型的字段存储从aspx应用程序加载的AttachmentSup中的数据,这些数据可以是pdf、xls、msg、txt等。该表还有一个字段存储附件名称和扩展类型 我必须将该表中所有行的附件保存回文件系统 我已尝试以下操作,但我没有执行以下操作的权限C# 使用C将数据从SQL图像字段保存到pdf、msg、xls、txt文件,c#,sql,.net,C#,Sql,.net,我有一个DB格式的表,其中有一个Image类型的字段。image类型的字段存储从aspx应用程序加载的AttachmentSup中的数据,这些数据可以是pdf、xls、msg、txt等。该表还有一个字段存储附件名称和扩展类型 我必须将该表中所有行的附件保存回文件系统 我已尝试以下操作,但我没有执行以下操作的权限 DECLARE @ObjectToken INT EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT EXEC sp_OASetPr
DECLARE @ObjectToken INT
EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT
EXEC sp_OASetProperty @ObjectToken, 'Type', 1
EXEC sp_OAMethod @ObjectToken, 'Open'
EXEC sp_OAMethod @ObjectToken, 'Write', NULL, Content
EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, 'c:/file.msg', 2
EXEC sp_OAMethod @ObjectToken, 'Close'
EXEC sp_OADestroy @ObjectToken
任何人都可以让我知道如何保存所有附件到文件系统使用C。我正在考虑建立一个Windows窗体应用程序与保存按钮 在SQL server上执行此命令需要sa权限
sp_configure
‘show advanced options’, 1
GO
reconfigure
GO
如果您只想使用快速脏方法处理文件,请使用VBS和ADO:
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = 1 ' = adTypeBinary
BinaryStream.Open
Dim UUIDARRAY()
Redim UUIDARRAY(1000)
strConnection = "Driver={SQL Server};Server=<servername>;Database=<databasename>;Uid=<username>;Pwd=<userpasswor>;"
Set cn = CreateObject("ADODB.Connection")
cn.ConnectionString = strConnection
cn.Open
If cn.State = 1 Then
Set objrs=cn.execute( "Select <data> FROM <table> where <something>" )
Dim error
While not (objrs is nothing)
set field = objrs.Fields(0)
chunk_data = field.GetChunk(65536)
BinaryStream.Write chunk_data
Set objrs = objrs.NextRecordSet
Wend
cn.close
BinaryStream.SaveToFile "binarydata.bin", 2 '= adSaveCreateOverWrite'
else
wscript.echo "Could not connect"
end if
只需使用此脚本并用相关信息替换所有脚本。您是否配置了xp\u cmdshell?请看这个:正如我所说,我没有特殊权限。我需要一种方法从表中读取图像字段的内容,并使用C将其写入文件。我没有SA权限。你能建议一种使用C的方法吗?