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

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

Ошибка при IBTransaction.Commit - "List index out of bounds (8)" [D7, IB6.x]


Страницы:   1 2

Slonco ©   (2004-09-16 10:55:00) 

Помогите, пожалуйста.
Вставляю запись в таблицу и пытаюсь сделать Commit.
Вроде элементарщина, а не получается ничего. Причем есть исходники аналогичного приложения, где то же самое, та же самая таблица формируется без проблем! Не пойму что не так.

      Может вы уже сталкивались с этой проблемой?

Подробнее:
---------------------------
Debugger Exception Notification
---------------------------
Project ANALYSIS.exe raised exception class EStringListError with message 'List index out of bounds (8)'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help  
---------------------------

Проверку на InTransaction делаю. StartTransaction сделал.
Спасибо.


Slonco   (2004-09-16 16:39:00) [1]

%) ...надо меньше пить... :*)


Рамиль   (2004-09-16 16:35:00) [2]

Slonco   (16.09.04 16:26) [31]
повесил на OnChange компонента DBMemo

:o)


Slonco   (2004-09-16 16:26:00) [3]

Да то не цикл был!
Я просто вызов этой процедуры повесил на OnChange компонента DBMemo. Вышло так, что эта процедура 2 раза вызывалась... или как-то там еще, по хитрому...  %)


Рамиль   (2004-09-16 16:17:00) [4]

А ведь спрашивали насчет циклов!:)


Slonco   (2004-09-16 15:50:00) [5]

>>IBQallrep.Fields[19].AsInteger;
>А с этим все нормально? Есть стока?

Этот я подправил - ничего не дало...
Я понял в чем дело - у меня там рекурсия вышла :)
Прошу простить за потраченное впустую время :(

Всем СПАСИБО!


Sergey13   (2004-09-16 15:42:00) [6]

>IBQallrep.Fields[19].AsInteger;
А с этим все нормально? Есть стока?


Slonco   (2004-09-16 15:38:00) [7]

Все до единой!!!


Sergey13   (2004-09-16 15:29:00) [8]

Все строки пробовал?


Slonco   (2004-09-16 15:21:00) [9]

Попробовал все - без толку.


Slonco   (2004-09-16 15:16:00) [10]

Ладно, попробую...


Sergey13   (2004-09-16 15:14:00) [11]

2[21] Slonco   (16.09.04 15:07)
По очереди давай значение параметру напрямую в коде корректным значением. типа
ParamByName('STOP2').AsInteger      := 12;
Поймешь где ошибка. А она где то здесь. ИМХО


Slonco   (2004-09-16 15:13:00) [12]

И еще. Во время формирования ошибки не может быть - т.к. ExecSQL прогоняется без ошибки - ошибка только после Commit!


Slonco   (2004-09-16 15:07:00) [13]

В списке строк М около 500 строк и s=12, так что 12+16 никак не превысят 500.
Значения все проверил - за пределы НИ ОДНО из них не вышло!

Что делать - ума не приложу :'(


Johnmen   (2004-09-16 12:40:00) [14]

>Sergey13 ©   (16.09.04 12:35) [19]

Ну разве что...:)
Тогда не помешает после формирования текста сделать Prepare.


Sergey13   (2004-09-16 12:35:00) [15]

2[18] Johnmen ©   (16.09.04 12:32)
>1. Зачем параметры в динамически изменяемом запросе ? Смысл ?
Что бы самому потом прочитать то что написал. Иначе башку сломаешь. 8-)


Johnmen   (2004-09-16 12:32:00) [16]

Пара замечаний.
1. Зачем параметры в динамически изменяемом запросе ? Смысл ?
2. Стартовать тр-ию перед ExecSQL.

И, как сказали выше, ошибка в индексе стринглиста. Однозначно !


Danilka   (2004-09-16 12:28:00) [17]

поставь точку останова вот-сюда:
ParamByName('STOP2').AsInteger      := StrToInt(Copy(M[16+s],Pos('=',M[16+s])+1,3));
и посмотри чему у тебя равен s, а также количество строк в M, скорее всего, оно будет меньше чем 16+s.


Sergey13   (2004-09-16 12:27:00) [18]

Например через присваивание такого же значения "левой" переменной.


Slonco   (2004-09-16 12:24:00) [19]

А как смотреть в дебаггере значения параметров? Через очки? Или есть хитрый способ о котором я не знаю?


Sergey13   (2004-09-16 12:19:00) [20]

2[13] Slonco   (16.09.04 12:11)
>Боюсь, что придется отказаться от параметров ради проверки...

Можно и просто в отладчике посмотреть значения. Можно просто по очереди отключать параметры (и поле соответственное), пока ошибка не уйдет.


Страницы:   1 2

Наверх

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