Pelmen писал(а) 24. Июля 2008 :: 08:51:Интересно, а как в запросе указать именованный параметр?
Укажем. Только пойдем чуть другим путем:
Кусок из vbs
Command.CommandType = 4 ' тип adCmdStoredProc
Command.CommandText = "sp_executesql" ' Имя ХП
Query = "IF EXISTS " & vbCr _
& " (SELECT * FROM [IRP].[dbo].Samsung_models WHERE MODEL = @MODEL) UPDATE [IRP].[dbo].Samsung_models
SET TYPE = @TYPE, MODEL = @MODEL, TYPENAME = @TYPENAME WHERE MODEL = @MODEL " & vbCr _
& " ELSE INSERT INTO [IRP].[dbo].Samsung_models (TYPE, MODEL, TYPENAME) VALUES (@TYPE, @MODEL, @TYPENAME)"
Command.Parameters.Append Command.CreateParameter("@stmt", 202, 1, 4000, Query)
'параметр обязателен. На 200 ругалось, пришлось ставить 202
Command.Parameters.Append Command.CreateParameter("@params", 202, 1, 4000, "@TYPE varchar(10), @MODEL varchar(30), @TYPENAME varchar(50)")
'параметр обязателен, внутри объявить переменные
Command.Parameters.Append Command.CreateParameter("@TYPE", 202, 1, 10, "")
Command.Parameters.Append Command.CreateParameter("@MODEL", 202, 1, 30, "")
Command.Parameters.Append Command.CreateParameter("@TYPENAME", 202, 1, 50, "")
Command.Parameters.Item("@TYPE").Value = Value1
Command.Parameters.Item("@MODEL").Value = Value2
Command.Parameters.Item("@TYPENAME").Value = Value3
Чем мы хуже 1С-ки, чтоб забыть про sp_executesql?