Форум: "Начинающим";
Текущий архив: 2007.06.24;
Скачать: [xml.tar.bz2];
Внизничего не понимаю!!!!! Найти похожие ветки
← →
stud © (2007-05-30 18:56) [0]есть база ms sql 2000,
есть ХП, выполняю эту ХП из менеджера и своей программы (ADO) с одинаковыми параметрами - получаю разные результаты!
причем вношу изменения в процедуру - такое ощущение что программа не их не видит и все результаты старые выдает (до изменения).
что это может быть??????
← →
Desdechado © (2007-05-30 19:19) [1]другой сервер
другая схема с данными
← →
Jan1 (2007-05-30 19:28) [2]
> есть ХП, выполняю эту ХП из менеджера и своей программы
> (ADO) с одинаковыми параметрами - получаю разные результаты!
>
уверен что такие же параметры? профайлер смотрел?
← →
Kostafey © (2007-05-30 19:29) [3]Было дело.
В приложении было 2 подключения к БД.
Одно поменял, другое забыл.
Полчаса бился голофой в стол. Вспомнил;)
Исправил, отправился в нирвану ;)
← →
ЮЮ © (2007-05-31 03:46) [4]>и своей программы (ADO)
какой компонент? Не используешь ли один и тот же компонент для вызова разных ХП? Какой сераиспак на сервере?
Вот с чем я столкунулся на практике:
1) Имеет место ошибка в сервере:
http://support.microsoft.com/kb/834720/EN-US/
Исправлена в SP4. У нас стоял только SP3.
2) в одной транзакции выполнялись несколько ХП.
В рамках транзакции возникало Zero Divide, сокрытое от глаз по причине 1)
В ходе многочасовой трассировки удалось выяснить, что причиной всему использованеие одного экземпляра TADOCommand для выполнения разных SQL предложений. При повторном его использовнии на серевере обнаружено исполнение сначала предыдущего, а затем ожидаемого предложения. Причем вызываемые внутри первого предложения SP вызывала UDF логика работы которой не соответствала значениям параметров, которые оно должнв была получить.
← →
stud © (2007-05-31 08:42) [5]сервер естественно тот который нужен.
уже несколько раз проверял.
компонент адосторедпроц. удалял, кидал новый - результат тот же.
параметры одинаковые. вызывается только одна хп.
похоже на то, что из программы вызывается старая версия хп???
тока откуда оно берется?
← →
ЮЮ © (2007-05-31 09:15) [6]> похоже на то, что из программы вызывается старая версия
> хп???
Неоткуда ей взятся старой.
Толька другая
1) с другой БД
2) есть две
dbo.ProcName
<user>.ProcName
Самая простая проверка - переименование той, которую правишь. Если программа по-преднему её "видит", значит - другая
← →
sniknik © (2007-05-31 10:54) [7]> что причиной всему использованеие одного экземпляра TADOCommand для выполнения разных SQL предложений.
> При повторном его использовнии на серевере обнаружено исполнение сначала предыдущего, а затем ожидаемого предложения.
ничего не путаешь? обычно такими повторами TADOQuery грешит, в силу его специфики + привычек программиста в написания кода с Add и одновременным забыванием Clear...
а для TADOCommand это надо постараться ... CommandText:= CommandText + #13#10 + NewSql; такого и спьяну не напишешь...
чето там у вас не то было.
← →
ЮЮ © (2007-05-31 11:09) [8]>такими повторами TADOQuery грешит, в силу его специфики + привычек программиста в написания кода с Add и одновременным забыванием Clear...
>чето там у вас не то было.
Всё было именно так как сказано.
Есть соединение, класс типа TADOConnection. У него метод Exeс().
Использовался компонент TADOCommand, создаваемый в конструкторе. Какие там к черту Add, там нет SQL.
При выполнении в рамках одной транзакции цепочки
Exec(EXEC procName1 :p1 :p2);
Exec(EXEC procName2 :p1 :p2);
Exec(EXEC procName1 :p1 :p2);
Exec(EXEC procName2 :p1 :p2);
такая фигня и наблюдалась. В отладчике я вижу один EXEC ... в Command, а в профайлере - цепочку вызовов, которую замыкает нужный вызов.
При создании локального TADOCommand в методе Exeс все стало работать нормально.
← →
stud © (2007-06-01 10:10) [9]както само рассосалось...........
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.06.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.042 c