Проблема при работа с image
LOR
Дата: 26.01.2005 10:39:57
Извините за беспокойство.
ХП выглядит так:
ALTER PROCEDURE dbo.ins_image_steward
@stew_id smallint,
@stew_image image
AS
UPDATE steward
SET stew_image = @stew_image
WHERE stew_id = @stew_id
Клиентская часть:
Dim fs As New FileStream(ImageFile.FileName, FileMode.OpenOrCreate, FileAccess.Read)
Dim MyData(fs.Length) As Byte
fs.Read(MyData, 0, fs.Length)
fs.Close()
Server.Parameters.Clear()
Server.CommandText = "ins_image_steward"
Server.CommandType = CommandType.StoredProcedure
Server.Parameters.Add("@stew_id", StewID)
Server.Parameters.Add("@stew_image", MyData)
Connect.Open()
Server.ExecuteNonQuery() - здесь выдается ошибка
Connect.Close()
Выдает ошибку : A severe error occured on the current command.
The results, if any, should be discarded.
Пожалуйста, помогите с этим разобраться
.
Va1entin
Дата: 26.01.2005 11:16:01
Я подобное делал с обычным ADO,
но тоже не работало, пока не установил
тип параметра varbinary.
LOR
Дата: 26.01.2005 12:23:05
а где его нужно установить?
если в ХП вместо Image то не работает - выдает ту же самую ошибку.
hDrummer
Дата: 26.01.2005 12:55:01
попробуйте примерно так -
SqlParameter wP = new SqlParameter("@par", SqlDbType.Image);
wP.Direction = ParameterDirection.Input;
wP.Value = ...
sda.SelectCommand.Parameters.Add(wP); |
Va1entin
Дата: 26.01.2005 13:02:31
ХП написана правильно.
Для ADO
dim conn
dim connStr
dim rs
connStr = "<строка подключения>"
set conn = Server.CreateObject("ADODB.Connection")
conn.open connStr
dim cmd
set cmd = Server.CreateObject("ADODB.Command")
cmd.CommandText = "<ХП>"
cmd.CommandType = 4
cmd.Parameters.Append cmd.CreateParameter("@id",3,1,4,CLng(1))
cmd.Parameters.Append cmd.CreateParameter("@blob",205,1,100000,fileData)
cmd.ActiveConnection = conn
set rs=cmd.execute
set cmd = Nothing
set rs = Nothing
conn.close
set conn = nothing
|
Для ADO.NET как-нибудь так
'декларации
com = New SqlCommand
com.Connection = con
com.CommandType = CommandType.StoredProcedure
com.CommandText = "<ХП>"
com.Parameters.Add("@id", SqlDbType.Int)
com.Parameters.Add("@blob", SqlDbType.Varbinary)
com.Parameters.Item("@id").Value = id
com.Parameters.Item("@blob").Value = blob
|
LOR
Дата: 26.01.2005 15:56:40
Пробую. Та же ошибка. А можно прислать весь код?
Sa
Дата: 26.01.2005 16:12:19
Нужно, можете прикрепить текстовый файл к своему сообщению.
LOR
Дата: 27.01.2005 09:16:25
После внесенных изменений выглядит так.
Хранимая процедура:
ALTER PROCEDURE dbo.ins_image_steward
@stew_id smallint,
@stew_image Image
AS
UPDATE steward
SET stew_image = @stew_image
WHERE stew_id = @stew_id
Клиентская часть:
Private Sub btnImageNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImageNew.Click
If ImageFile.ShowDialog() = DialogResult.OK Then
Dim fs As New FileStream(ImageFile.FileName, FileMode.OpenOrCreate, FileAccess.Read)
Dim MyData(fs.Length) As Byte
fs.Read(MyData, 0, fs.Length)
fs.Close()
Server.Parameters.Clear()
Server.CommandText = "ins_image_steward"
Server.CommandType = CommandType.StoredProcedure
Server.Parameters.Add("@stew_id", SqlDbType.SmallInt)
Server.Parameters.Add("@stew_image", SqlDbType.VarBinary)
Server.Parameters.Item("@stew_id").Value = StewID
Server.Parameters.Item("@stew_image").Value = MyData
Connect.Open()
Server.ExecuteNonQuery() - ошибка здесь
Connect.Close()
End If
End Sub
Выдается ошибка: A severe error occured on the current command.
The results, if any, should be discarded.
Va1entin
Дата: 27.01.2005 09:32:27
А попробуйте для отладки вызвать через
Server.ExecuteNonQuery()
другую процедуру,
лучше всего без параметров.
В вашем скрипте не видно деклараций
Connect и Server.
Server имеет тип SQLCommand?
Connect имеет тип SQLConnection?
Где эти объекты инициализируются?
Где команде приписывается соединение?
LOR
Дата: 27.01.2005 12:59:57
Да, эти объекты именно такие. Настройка - через окно свойств.