Мы используем команду ADODB для выполнения запросов (вызова хранимых процедур) в нашей базе данных SQL Server 2000 с использованием драйвера SQLOLEDB.
На одном из наших серверов у нас возникают проблемы при назначении значений параметров.Вот как это происходит:
Set conn = Server.CreateObject("ADODB.Connection")
conn.CommandTimeout = 0
conn.ConnectionTimeout = 15
conn.Mode = 1 ' adModeRead
conn.ConnectionString = connectionString ' SQLOLEDB
conn.CursorLocation = 3 ' adUseClient
conn.Open
Set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = conn ' previously created connection
cmd.CommandType = 4 ' adCmdStoredProc
cmd.CommandText = "dbo.StoredProcedureName"
cmd.CommandTimeout = 0
cmd.Parameters.Refresh ' Get the parameters info from the database
' Pseudo code here :
Foreach cmd.parameters
cmd.parameters(index).value = somevalue
Next
Этот код фактически работает на нашем производственном сервере, но по каким-то странным причинам он не работает на нашем dev-сервере и генерирует эту ошибку: Приложение использует значениеневерный тип для текущей операции , когда мы присваиваем значение (которое содержит десятичную часть, скажем, строку типа «12.75») параметру типа данных money.
Код точно такой же для devи на прод.Может ли это иметь какое-то отношение к региональным настройкам, языку ADODB, языку ОС или другому компоненту Windows?Поскольку это классический ASP-код, мы уже смотрели на Session.LCID, но они одинаковы на обоих серверах, поэтому мы сейчас ничего не знаем.
Есть идеи?