我的一个存储过程中有一个输入参数为image类型,现在问题来了:
1.在VB中对应的数据类型为什么? --DataTypeEnum.?
2.因为这个参数,是要存入一张图片,当图片存在时,我怎样把图片赋予这个参数--cmd.Parameters.Item("@image").Value = ?
 而这个图片有可能不存在,这时cmd.Parameters.Item("@image").Value = ??

解决方案 »

  1.   

    还有SQLServer中的数据类型与VB中的DataTypeEnum的对应关系是怎样的?
    如 nvarchar--DataTypeEnum.adBSTR or adVarWChar(好象不对,我试了,会截断我的字符串)
    ntext--?
      

  2.   

    应该不可以
    因为存储过程中,你只能使用insert into 语法来插入数据
    这种方式无法插入图像数据只能使用这种方式addnew,update'保存文件到数据库中
    Sub s_SaveFile()
        Dim iStm As ADODB.Stream
        Dim iRe As ADODB.Recordset
        Dim iConcStr As String
        
        '数据库连接字符串
        iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
            ";Data Source=F:\csdn_vb\database\保存图片\img.mdb"
        Dim iConc As ADODB.Connection
        Set iConc = New ADODB.Connection
        
        iConc.Open iConcStr
        '读取文件到内容
        Set iStm = New ADODB.Stream
        With iStm
            .Type = adTypeBinary    '二进制模式
            .Open
            .LoadFromFile App.Path + "\com.doc"
        End With
        
        '打开保存文件的表
        Set iRe = New ADODB.Recordset
        With iRe
            .Open "select * from img", iConc, 1, 3
            .AddNew         '新增一条记录
            .Fields("photo") = iStm.Read
            .Update
        End With
        
        '完成后关闭对象
        iRe.Close
        iStm.Close
    End Sub
      

  3.   

    1.在VB中对应的数据类型为什么? --DataTypeEnum.?只有这种类型了adBinary,adLongVarBinary,adVarBinary
      

  4.   

    在SQLServer中的下列数据类型在VB中相应的对应类型是什么?
      image -- adBinary ? or adLongVarBinary ? or adVarBinary 
      nvarchar--adBSTR ? or adVarWChar ?
      ntext --?
      

  5.   

    你直接这样使用吧,不需要指定类型
        Dim Cmd_Tjjl As Command
        Set Cmd_Tjjl = New Command
        Cmd_Tjjl.ActiveConnection = Cn_Sql
        Cmd_Tjjl.CommandType = adCmdStoredProc
        Cmd_Tjjl.CommandText = "提交记录" Cmd_Tjjl.Parameters.refresh
    Cmd_Tjjl.Parameters("@zwrq")=Format(Zwrq.Value, "yyyy-mm-dd")
    Cmd_Tjjl.Parameters("@zh")=Zh.Text
    .....
    Cmd_Tjjl.Parameters("@bz2")=Bz2.Text
    Cmd_Tjjl.Parameters("@czy")='11'
        
             Cmd_Tjjl.Execute