Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ничего не понимаю!!!!!


stud ©   (2007-05-30 18:56:00) 

есть база ms sql 2000,
есть ХП, выполняю эту ХП из менеджера и своей программы (ADO) с одинаковыми параметрами - получаю разные результаты!
причем вношу изменения в процедуру - такое ощущение что программа не их не видит и все результаты старые выдает (до изменения).
что это может быть??????


stud   (2007-06-01 10:10:00) [1]

както само рассосалось...........


ЮЮ   (2007-05-31 11:09:00) [2]

>такими повторами 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с все стало работать нормально.


sniknik   (2007-05-31 10:54:00) [3]

> что причиной всему использованеие одного экземпляра TADOCommand для выполнения разных SQL предложений.
> При повторном его использовнии на серевере обнаружено исполнение сначала предыдущего, а затем ожидаемого предложения.
ничего не путаешь? обычно такими повторами TADOQuery грешит, в силу его специфики + привычек программиста в написания кода с Add и одновременным забыванием Clear...
а для TADOCommand это надо постараться ... CommandText:= CommandText + #13#10 + NewSql; такого и спьяну не напишешь...

чето там у вас не то было.


ЮЮ   (2007-05-31 09:15:00) [4]

> похоже на то, что из программы вызывается старая версия
> хп???

Неоткуда ей взятся старой.
Толька другая
1) с другой БД
2) есть две
 dbo.ProcName
 <user>.ProcName

Самая простая проверка - переименование той, которую правишь. Если программа по-преднему её "видит", значит - другая


stud   (2007-05-31 08:42:00) [5]

сервер естественно тот который нужен.
уже несколько раз проверял.
компонент адосторедпроц. удалял, кидал новый - результат тот же.
параметры одинаковые. вызывается только одна хп.
похоже на то, что из программы вызывается старая версия хп???
тока откуда оно берется?


ЮЮ   (2007-05-31 03:46:00) [6]

>и своей программы (ADO)

какой компонент? Не используешь ли один и тот же компонент для вызова разных ХП? Какой сераиспак на сервере?

Вот с чем я столкунулся на практике:

1) Имеет место ошибка в сервере:
http://support.microsoft.com/kb/834720/EN-US/
Исправлена в SP4. У нас стоял только SP3.

2)  в одной транзакции выполнялись несколько ХП.

В рамках транзакции возникало Zero Divide, сокрытое от глаз по причине 1)
В ходе многочасовой трассировки удалось выяснить, что причиной всему использованеие одного экземпляра TADOCommand для выполнения разных SQL предложений. При повторном его использовнии на серевере обнаружено исполнение сначала предыдущего, а затем ожидаемого предложения. Причем вызываемые внутри первого предложения SP вызывала UDF логика работы которой не соответствала значениям параметров, которые оно должнв была получить.


Kostafey   (2007-05-30 19:29:00) [7]

Было дело.
В приложении было 2 подключения к БД.

Одно поменял, другое забыл.

Полчаса бился голофой в стол. Вспомнил;)
Исправил, отправился в нирвану ;)


Jan1   (2007-05-30 19:28:00) [8]


> есть ХП, выполняю эту ХП из менеджера и своей программы
> (ADO) с одинаковыми параметрами - получаю разные результаты!
>

уверен что такие же параметры? профайлер смотрел?


Desdechado   (2007-05-30 19:19:00) [9]

другой сервер
другая схема с данными


Наверх

Титульная страница Поиск, карта сайта Написать письмо