-
TheEd (27.01.11 10:21) [0]Господа мастера, может кто сталкивался, у меня до настоящего момента такого не наблюдалось но глюк престраннейший. Имеем: 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.: сломал сегодня всю голову, ночь провозился ничего так и не нашёл. Выручайте! -
spP1.Close; ?
-
TheEd (27.01.11 10:41) [2]to Ega23:
Пробовал и так, результат тот же :((((
Раньше кстати close никогда не делал - изменял входные параметры и делал Exec - всё всегда работало (см. пример 1)... -
12 © (27.01.11 10:43) [3]сессии commit делать
а динамически создавать, разрушать при каждом запуске? Не говорю, что надо так и оставить, просто попробовать. -
TheEd (27.01.11 11:20) [4]
> сессии commit делать
так используются быстрые транзакции...
> а динамически создавать, разрушать
попробую, но люблю до истины добираться - глючелло потом выплывет где-то ещё :( -
Виталий Панасенко(дом) (27.01.11 20:28) [5]а текст исключения хоть какой?
-
1. А что делают эти p1 и p2?
2. Какое исключение? Дословно. -
Anatoly Podgoretsky © (28.01.11 14:46) [7]
> ps.: сломал сегодня всю голову, ночь провозился ничего так
> и не нашёл. Выручайте!
Тебе выручка не нужна, иначе бы привел подробную информацию. -
Halt (28.01.11 15:30) [8]2 Anatoly Podgoretsky © (28.01.11 14:46) [7]
Хотел бы ты, Толя, помочь - помог бы.
По крайней мере, вопросы позадавал бы наводящие.
Или привел ситуацию из личной практики.
Но от тебя выручалки не дождешься.
Никогда.
По определению.
Зачем ты здесь? -
> Halt (28.01.11 15:30) [8]
>
> Но от тебя выручалки не дождешься.
> Никогда.
Определенный контенгент спрашивающих - не дождется. И не только от него. Никогда.
> Halt (28.01.11 15:30) [8]
> По определению.
Где можно прочитать это определение? Ссылку, пожалуйста. -
Плохиш © (28.01.11 16:03) [10]
> По крайней мере, вопросы позадавал бы наводящие.
Интересно кому помощь нужна?
А пошли бы все партизаны с их дебилкозащитниками в долгое эротическое путешествие. -
Anatoly Podgoretsky © (28.01.11 16:06) [11]Не наше дело задавать вопросы.
-
TheEd (04.04.11 15:44) [12]Сорри за долгое и глубокое молчание, но глюку я прибил, очень долгими танцами бубном :)
Насколько помню, мозг вынес полностью, в результате переставил всё - делфю, ФИБы, переписал код с нуля, ничего не меняя по сути. И всё заработало. -
Anatoly Podgoretsky © (05.04.11 13:58) [13]> TheEd (04.04.2011 15:44:12) [12]
А надо было сразу менять компьютер.