Концерт ADO Stream в двоичном формате - PullRequest
0 голосов
/ 22 ноября 2018

Это код, который я использую для загрузки файла в базу данных с использованием VBA, но этот цикл можно запустить только один раз.Во время второго цикла он выдаст ошибку, ошибка:

В этом контексте операция не разрешена

Кто-нибудь может подсказать, что мне делать?Ошибка в строке adoStream.Type = adTypeBinary

Dim stCon As String 'SQL Connection string
Dim stProcName As String 'Stored Procedure name

Dim strCmd As String

Dim adoStream               As Object
Dim adocmd                  As Object
Dim strFilePath             As String
Dim adoCon                  As Object

Set adoCon = CreateObject("ADODB.Connection")
Set adoStream = CreateObject("ADODB.Stream")
Set adocmd = CreateObject("ADODB.Command")

adoCon.CursorLocation = adUseClient
adoCon.Open "Provider=SQLOLEDB; " & _
            "Data Source=#########; " & _
            "Initial Catalog=#######;" & _
            "User ID=#######; Password=########;"

For Each fl In fld.Files    
    If fl.name Like Mask Then
        strInput = fl.name
        strFilePath = fld.path & "\" & fl.name

        MsgBox (strFilePath)

        adoStream.Type = adTypeBinary
        adoStream.Open
        adoStream.LoadFromFile strFilePath 'It fails if file is open

        With adocmd 
            .CommandText = "INSERT INTO dbo.coc_upload(Data) " & _
                           "VALUES (?)"
            .CommandType = adCmdText
            '---adding parameters
            .Parameters.Append .CreateParameter("@Data", adVarBinary, adParamInput, adoStream.Size, adoStream.Read)
            '---
        End With

        adocmd.ActiveConnection = adoCon
        adocmd.Execute
        adoCon.Close

        MsgBox ("Done")    
    End If      
Next    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...