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

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

глюк или не глюк??? [D7, FB 2.0]


TheEd ©   (2011-01-27 10:21:00) 

Господа мастера, может кто сталкивался, у меня до настоящего момента такого не наблюдалось но глюк престраннейший. Имеем: D7, FB2.0, fIBPlus 6.0.X. Создал базу, в ней ряд таблиц. Имеется 2 хранимые процедуры (p1 и p2), которые на основе входящих параметров и данных из таблиц формируют ряд выходных параметров. При этом ни p1, ни p2 данные не изменяют.
На форме есть пара компонентов TFIBStoredProc (название по памяти пишу, могу ошибиться), которые связаны с p1 и p2 (с именами напр. spP1 и spP2).
Так вот, если в программе вызываем:

 // 1-й вызов p1
 spP1.ParamByName('SomeInputParam1').AsInteger := SomeInt;
 spP1.ParamByName('SomeInputParam2').AsDate := SomeDate;
 spP1.Exec;
 
 // 2-й вызов p1
 spP1.ParamByName('SomeInputParam1').AsInteger := SomeInt;
 spP1.ParamByName('SomeInputParam2').AsDate := SomeDate;
 spP1.Exec;

 // ...

то всё работает. Если же сделаем так:

 // 1-й вызов p1
 spP1.ParamByName('SomeInputParam1').AsInteger := SomeInt;
 spP1.ParamByName('SomeInputParam2').AsDate := SomeDate;
 spP1.Exec;
 
 // 1-й вызов p2
 spP2.ParamByName('SomeInputParam1').AsInteger := SomeInt;
 spP2.ParamByName('SomeInputParam2').AsDate := SomeDate;
 spP2.Exec;

 // 2-й вызов p1
 spP1.ParamByName('SomeInputParam1').AsInteger := SomeInt;
 spP1.ParamByName('SomeInputParam2').AsDate := SomeDate;
  spP1.Exec; // тут исключение !!!

То что жирное вызывает исключение, причём это не исключение, вызванное из p2 на стороне сервера - в IBExpert запускаю эти процедуры в любой комбинации и количестве - всё работает без проблем.

ps.: сломал сегодня всю голову, ночь провозился ничего так и не нашёл. Выручайте!


Anatoly Podgoretsky   (2011-04-05 13:58:00) [1]

> TheEd  (04.04.2011 15:44:12)  [12]

А надо было сразу менять компьютер.


TheEd   (2011-04-04 15:44:00) [2]

Сорри за долгое и глубокое молчание, но глюку я прибил, очень долгими танцами бубном :)
Насколько помню, мозг вынес полностью, в результате переставил всё - делфю, ФИБы, переписал код с нуля, ничего не меняя по сути. И всё заработало.


Anatoly Podgoretsky   (2011-01-28 16:06:00) [3]

Не наше дело задавать вопросы.


Плохиш   (2011-01-28 16:03:00) [4]


> По крайней мере, вопросы позадавал бы наводящие.

Интересно кому помощь нужна?
А пошли бы все партизаны с их дебилкозащитниками в долгое эротическое путешествие.


Johnmen   (2011-01-28 15:54:00) [5]


> Halt   (28.01.11 15:30) [8]
>
> Но от тебя выручалки не дождешься.
> Никогда.

Определенный контенгент спрашивающих - не дождется. И не только от него. Никогда.

> Halt   (28.01.11 15:30) [8]
> По определению.

Где можно прочитать это определение? Ссылку, пожалуйста.


Halt   (2011-01-28 15:30:00) [6]

2 Anatoly Podgoretsky ©   (28.01.11 14:46) [7]

Хотел бы ты, Толя, помочь - помог бы.
По крайней мере, вопросы позадавал бы наводящие.
Или привел ситуацию из личной практики.

Но от тебя выручалки не дождешься.
Никогда.
По определению.

Зачем ты здесь?


Anatoly Podgoretsky   (2011-01-28 14:46:00) [7]


> ps.: сломал сегодня всю голову, ночь провозился ничего так
> и не нашёл. Выручайте!

Тебе выручка не нужна, иначе бы привел подробную информацию.


Johnmen   (2011-01-28 14:29:00) [8]

1. А что делают эти p1 и p2?
2. Какое исключение? Дословно.


Виталий Панасенко(дом)   (2011-01-27 20:28:00) [9]

а текст исключения хоть какой?


TheEd   (2011-01-27 11:20:00) [10]


> сессии commit делать

так используются быстрые транзакции...


> а динамически создавать, разрушать

попробую, но люблю до истины добираться - глючелло потом выплывет где-то ещё :(


12   (2011-01-27 10:43:00) [11]

сессии commit делать

а динамически создавать, разрушать при каждом запуске? Не говорю, что надо так и оставить, просто попробовать.


TheEd   (2011-01-27 10:41:00) [12]

to Ega23:
 Пробовал и так, результат тот же :((((
 Раньше кстати close никогда не делал - изменял входные параметры и делал Exec - всё всегда работало (см. пример 1)...


Ega23   (2011-01-27 10:38:00) [13]

spP1.Close;  ?


Наверх

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