![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
List index out of bounds [D6, MSSQL]
Eduard © (2002-06-27 10:20:00)Всем добрый день !!!
Имеется следующая процедура:
procedure TTableFrame.BitBtn1Click(Sender: TObject);
var InValue: string;
begin
case Form1.TreeView1.Selected.AbsoluteIndex of
5,6,7,8,9,10,11,12,13,14,15,16:
begin
if not InputQuery(".....", ".........", InValue) then Exit;
begin
Datamodule1.ADOCommand1.Parameters[Form1.TreeView1.Selected.AbsoluteIndex].Value := InValue; Сабж !!!!!
Datamodule1.ADOCommand1.CommandText := QueryArray[Form1.TreeView1.Selected.AbsoluteIndex+30];
if not DataModule1.ADOConnection1.InTransaction then
DataModule1.ADOConnection1.BeginTrans;
Datamodule1.ADOCommand1.Execute;
DataModule1.ADOConnection1.CommitTrans;
DataModule1.ADODataSet1.Requery();
end;
end;
end;
end;
Так вот, первый раз эта процедура выполняется нормально, во второй почему-то вылетает сабж. Помогите, пожалуйста, разобраться.
Kaban (2002-06-27 15:15:00) [1]я высказал свое мнение, дальше может помочь только отладчик
Eduard (2002-06-27 15:13:00) [2]Не верю, что этого никто не знает !!!
Eduard (2002-06-27 11:17:00) [3]HELP !!!
Eduard (2002-06-27 10:47:00) [4]QueryArray[0..50] - массив строк с запросами.
С ним все нормально, ошибка возникает раньше.
Kaban (2002-06-27 10:42:00) [5]а QueryArray что такое
Eduard (2002-06-27 10:36:00) [6]Не принимает он недопустимых значений !!!! Сто раз отладчиком проверял. Как он может принимать недопустимое значение, если вылазит, допустим, ошибка "List index out of bounds (7)", а параметров в ADOCommand целых 21 !
Самое интересное, что в первый раз эта процедура отрабатывается нормально.
Фикус (2002-06-27 10:30:00) [7]AbsoluteIndex принимает недопустимое значение
Eduard (2002-06-27 10:29:00) [8]Все проверено. Параметров 21 штука, AbsoluteIndex никогда не превышает это значение. Вылазит ошибка независимо от AbsoluteIndex.
Kaban (2002-06-27 10:27:00) [9]во народ. Ошибку перевести трудно
у тебя индекс вылез за пределы массива
Где-то здесь:
Datamodule1.ADOCommand1.Parameters[Form1.TreeView1.Selected.AbsoluteIndex].Value
Datamodule1.ADOCommand1.CommandText := QueryArray[Form1.TreeView1.Selected.AbsoluteIndex+30];