With cmdMod_I   'Prepare insert
   .CommandText = "Insert Into DirDocRight (CompCd,DirOrDoc,DirDocCode,IDNumber,DirDocRight,TrsUserID)" & _
                   " Values('" & sOpCompCd & "','C',?,?,?,'" & UCase(sTrsUser) & "')"
   .CreateParameter , adChar, adParamInput, 25
   .CreateParameter , adChar, adParamInput, 12
   .CreateParameter , adChar, adParamInput, 12
   .ActiveConnection = cnMod
End

解决方案 »

  1.   

    -----列實例給你看
    Dim   cmdMod_D As New ADODB.Command
    With cmdMod_D  'Prepare Delete
       .CommandText = "Delete From DirDocRight Where CompCd='" & sOpCompCd & "' And DirOrDoc='C' And DirDocCode=?"
       .CreateParameter , adChar, adParamInput, 25
       .ActiveConnection = cnMod
    End With
         cmdMod_D.Parameters(0).Value = “dddd"
         cmdMod_D.Execute
      

  2.   

    那长度呢,我怎么设置呢,就用len()吗?Text的长度是很大的啊.怎么办
      

  3.   

    -------------我的表結構---------
    create  table tb(cc  text null,dd varchar(20) null)   -----這裡的text長度不需要給定
    -----------------------------------------------------------------
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Command
    Dim sql As String
    sql = "provider=sqloledb.1;user id=sa;pwd=123;initial catalog=test5;data source=be122"
    cn.ConnectionString = sql
    cn.Open
    With rs
       .CommandText = "insert into tb(cc,dd) values(?,'dd')"
       .CreateParameter , adChar, adParamInput, 16   ---------16就是長度足夠長了
       .ActiveConnection = cn
    End With
    rs.Parameters(0).Value = "ppppppppppppppppppppppppppppp"
    rs.Execute--------------------------------------------------------
      

  4.   

    多谢回答,可是我的VB里还是出错了,当传入的值的长度大于16时就说传入了错误的类型值.所以我就把这个长度设置成了2147483647,这个我看了SqlServer里的说明说是Text类型的数据的长度最大就是这个字符数,所以我就这样使用了.不过,总是感觉不是很好.