Dim FileP As String  '文件路径
 Dim adoconn As New ADODB.Connection                'Connection 对象代表了打开与数据源的连接。
 Dim adocomm As New ADODB.Command                   'Command 对象定义了将对数据源执行的指定命令。
  Dim iStm As ADODB.Stream
 Dim sql As String
Dim rs As ADODB.Recordset
Dim mstream As ADODB.Stream
Set rs = New ADODB.Recordset
rs.Open " select CWLCAD from SO_cadDetail  where cFuncBarCode ='" & objName & "'", adoconn, adOpenKeyset, adLockOptimistic
'Set rs =  New ADODB.Recordset(adoconn, " select CWLCAD from SO_cadDetail  where cFuncBarCode ='" & objName & "'")
If Err Then
    MsgBox Err.Description, vbCritical, "错误1"
  End If
  
Set mstream = New ADODB.Stream
mstream.Type = adTypeBinary
mstream.OpenIf Err Then
    MsgBox Err.Description, vbCritical, "错误2"
  End If
  
mstream.Write rs.Fields("CWLCAD").Value
mstream.SaveToFile FileP, adSaveCreateOverWriteIf Err Then
    MsgBox Err.Description, vbCritical, "错误3"
  End If
  
rs.Close
'adoconn.Close If Err Then
    MsgBox Err.Description, vbCritical, "错误4"
    
  End If
 iStm.Close

解决方案 »

  1.   

    后来用这个出现,“对于局部变量,Text,IMage类型无效”
    Sub updateDB(fileP As String, objName As String)
    On Error Resume Next
    'Dim objName  '条码
    'Dim fileP As String  '文件路径
     Dim adoconn As New ADODB.Connection                'Connection 对象代表了打开与数据源的连接。
     Dim adocomm As New ADODB.Command                   'Command 对象定义了将对数据源执行的指定命令。
      Dim iStm As ADODB.Stream
     Dim sql As String
    Dim rs As ADODB.Recordset
    Dim mstream As ADODB.Stream
    Dim adoPar As ADODB.Parameters     sql = "declare @CWLCAD image   update SO_cadDetail set CWLCAD =@CWLCAD,CJPG =null,Ccad=null ,cadoto =0  where cFuncBarCode ='" & objName & "'  "
        ' sql = "  update SO_cadDetail set CWLCAD =@CWLCAD,CJPG =null,Ccad=null ,cadoto =0  where cFuncBarCode ='" & objName & "'  "
     sql = sql + " insert into DLinvcaddetailreplace(replacetype ,id,ids,[type])  select 3,ID,IDS,'SO' from SO_cadDetail where cFuncBarCode ='" & objName & "'  " Set mstream = New ADODB.Stream
     mstream.Type = adTypeBinary
     mstream.Mode = adModeReadWrite
     mstream.Open
     mstream.LoadFromFile (fileP)If Err Then
        MsgBox Err.Description, vbCritical, "错误0"
      End If
     Set adocomm = New ADODB.Command
     With adocomm
         .CommandText = sql
         Set adoPar = .Parameters
         adoPar.Append .CreateParameter("@CWLCAD", adLongVarBinary, adParamInput, 700000)
         adoPar.Item(0).Value = mstream.Read()If Err Then
        MsgBox Err.Description, vbCritical, "错误1"
      End If    Set .ActiveConnection = adoconn
         .Execute
        
         If Err Then
        MsgBox Err.Description, vbCritical, "错误2"
      End If
     End With
     
    End Sub