1

これは、フォームの[保存]ボタン内のコードです。VB6.0とMSSQLServer2005を使用しています。

CommonDialog1&2は、画像ボックスに挿入された画像のファイル名を保持します。

Set rs = con.Execute("insert into table1   
values('" & txtbox1.Text & "' , "_  
& " '" & txtbox2.Text & "' , "_     
& " '" & CommonDialog1.FileName & "' , "_    
& " '" & CommonDialog2.FileName & "' , "_  
& " '" & txtbox3.Text & "' )")

データ型varcharからvarbinary(max)への暗黙的な変換は許可されていません。CONVERT関数を使用してこのクエリを実行してください。」-実行時にエラーがポップアップします。

4

2 に答える 2

0
  1. 以下にリストされているパラメーターを使用して、ストアドプロシージャを作成します(なくても実行できますが、私はこの方法を好みます)(名前を変更することをお勧めします)
  2. 行 mCmd.CommandText をストアド プロシージャ名に置き換えます。
  3. 接続文字列を置き換える
  4. テキスト サイズのいずれかが間違っている場合は、パラメータ サイズを修正します
Dim mConn As New ADODB.Connection
Dim mCmd As New ADODB.Command
Dim mStreamCD1 As New ADODB.Stream
Dim mStreamCD2 As New ADODB.Stream

mStreamCD1.Type = adTypeBinary
mStreamCD1.Open
mStreamCD1.LoadFromFile (CommonDialog1.FileName)

mStreamCD2.Type = adTypeBinary
mStreamCD2.Open
mStreamCD2.LoadFromFile (CommonDialog2.FileName)

mConn.Open "Insert your Connection String"
Set mCmd.ActiveConnection = mConn
mCmd.CommandType = adCmdText

mCmd.CommandText = "InsertIntoTable1"
mCmd.Parameters.Append mCmd.CreateParameter("@txtbox1Text", adVarChar, adParamInput, 250, txtbox1.Text)
mCmd.Parameters.Append mCmd.CreateParameter("@txtbox2Text", adVarChar, adParamInput, 250, txtbox2.Text)
mCmd.Parameters.Append mCmd.CreateParameter("@CD1", adVarBinary, adParamInput, mStreamCD1.Size, mStreamCD1.Read)
mCmd.Parameters.Append mCmd.CreateParameter("@CD2", adVarBinary, adParamInput, mStreamCD2.Size, mStreamCD2.Read)
mCmd.Parameters.Append mCmd.CreateParameter("@txtbox3Text", adVarChar, adParamInput, 250, txtbox3.Text)

mCmd.Execute , , adExecuteNoRecords
于 2012-08-15T16:32:49.330 に答える
0

SQLの「INSERT」関数はサブクエリを受け付けないので、CommonDialog1&2のファイル名をCASTで変換してみたら成功しました。

Set rs = con.Execute("insert into table1 values('" & txtbox1.Text & "' , "_
& " '" & txtbox2.Text & "' , "_
& " cast('" & CommonDialog1.FileName & "' as varbinary(max)) , "_
& " cast('" & CommonDialog2.FileName & "' as varbinary(max)), "_

& " '" & txtbox3.Text & "' )")

于 2012-08-15T07:08:04.127 に答える