Привет всем!
Бьюсь уже два дня над неожиданно всплывшей проблемой в одном из старых своих
скриптов.
Скрипт получает от пользователя номер вида: 911011, и затем:
1. Ищет этот номер в таблице
2. Вставляет в другую таблицу этот номер и еще кое-какие данные.
Все это работает на DBI + DBD::ODBC + MSSQL2005 + ActivePerl 5.10
На некоторых данных обнаружил что DBD выдает ошибку:

[Mon Dec 21 12:19:10 2009] inv.pl: DBD::ODBC::st execute failed:
[Microsoft][ODBC SQL Server Driver]Недопустимое значение точности
(SQL-HY104) at WebDB.pm line 122, <CFG> line 10.

В первом случае решением проблемы оказалось замена конструкции:
$sth->prepare('здесь код с знакоместами ? ? ?');
$sth->execute($var1,$var2,...);
на код без знакомест, т.е.:
$sth->prepare('здесь код $var1 $var2');
$sth->execute();

А во втором случае имеем дело с SP, И такая замена не помогает...
Сделал trace - (в аттаче)...

Что за ошибка - помогите идентифицировать?
Все типы входных параметров совпадают с типами БД, то есть везде вообще
только цифры, которые идут в int поля.
Удивляет еще и то что случается такое раз от разу на SQL2000, а на 2005 на
данный момент валится каждый раз.
Задача запустить все это именно на 2005.
Спасибо.


Attachment: trace.log
Description: Binary data

--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org
  • [Moscow.pm] Глюки... Павел Купцов

Ответить