Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C将数据从SQL图像字段保存到pdf、msg、xls、txt文件_C#_Sql_.net - Fatal编程技术网

C# 使用C将数据从SQL图像字段保存到pdf、msg、xls、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

我有一个DB格式的表,其中有一个Image类型的字段。image类型的字段存储从aspx应用程序加载的AttachmentSup中的数据,这些数据可以是pdf、xls、msg、txt等。该表还有一个字段存储附件名称和扩展类型

我必须将该表中所有行的附件保存回文件系统

我已尝试以下操作,但我没有执行以下操作的权限

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的方法吗?