Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 6
1

Ошибка при добавлении в БД: "list index out of bounds(0)"

26.01.2012, 19:01. Показов 1359. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TfmProduct.miAddClick(Sender: TObject);
begin
   fmNewProduct.ShowModal;
   if fmNewProduct.ModalResult=mrOk then
   begin
     try
   dmMy.DCOMConnection1.appserver.smUpdateProduct (0,
   fmNewProduct.edName.Text,
   fmNewProduct.edMg.Text);
   except
     MessageDlg('Ошибка записи в БД', mtError,[mbOk],0)
      end;
   dmMy.cdsProduct.Refresh;
   end;
end;
 Комментарий модератора 
Используйте теги кодов
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2012, 19:01
Ответы с готовыми решениями:

List index out of bounds (0) delphi при добавлении данных
Добрый день уважаемы форумчане, столкнулся с такой проблемой, при добавлении данных в таблицу...

При запросе из 2 таблиц ошибка list index out of bounds 1
Добрый вечер. делаю запрос из двух табли stud и rod. текс программы...

RadioGroup: ошибка List index of bounds (-1) при снятии галочки
***Дополнение radio_gr_cfg это CheckListBox Вопрос вроде и прост но понять не могу почему так,...

Ошибка при создании неквадратной матрицы: List index (10) out of bounds
Сформируйте двумерный массив K(10,12) из случайных чисел, принадлежа-щих отрезку . Определите в...

Ошибка list index out of bounds (0) при открытии данного фрейма
Ошибка list index out of bounds (0) при открытии данного фрейма. Что делать? frame51.Show;...

8
86 / 86 / 24
Регистрация: 27.02.2010
Сообщений: 397
26.01.2012, 20:04 2
Вы выложили следствие проблемы, а не причину.
Причину, думаю, ищите в процедуре smUpdateProduct()
Судя по характеру ошибки - обращение к нулевому элементу пустового списка экземпляра класса потомка tstrings.
1
912 / 877 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
26.01.2012, 20:49 3
Надо убрать защищенную секцию - она мешает диагностике бага, маскируя реальную ошибку. Попробуйте так и ловите реальную ошибку:
Delphi
1
2
3
4
5
6
7
8
procedure TfmProduct.miAddClick(Sender: TObject);
begin
  if fmNewProduct.ShowModal.ModalResult=mrOk then
  begin
    dmMy.DCOMConnection1.appserver.smUpdateProduct(0, fmNewProduct.edName.Text, mNewProduct.edMg.Text);
    dmMy.cdsProduct.Refresh;
  end;
end;
ну и лучше сразу ловить внутри метода smUpdateProduct
1
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 6
26.01.2012, 21:39  [ТС] 4
Вроде бы процедура правильная
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TMy_Server.smUpdateProduct(ID: Integer; const Name,
  Mg: WideString);
begin
     if ibspUpdateProduct.Transaction.InTransaction then
      ibspUpdateProduct.Transaction.Commit;
      ibspUpdateProduct.Params[0].Value:=ID;
      ibspUpdateProduct.Params[1].Value:=Name;
      ibspUpdateProduct.Params[2].Value:=Mg;
      ibspUpdateProduct.ExecProc;
      if ibspUpdateProduct.Transaction.InTransaction then
      ibspUpdateProduct.Transaction.Commit;
0
912 / 877 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
26.01.2012, 22:03 5
Delphi
1
2
3
ibspUpdateProduct.Params[0].Value:=ID;
ibspUpdateProduct.Params[1].Value:=Name;
ibspUpdateProduct.Params[2].Value:=Mg;
Musia, а у вас там точно 3 параметра в запросе?
0
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 6
26.01.2012, 22:13  [ТС] 6
вроде бы да
новичок в дельфи, тяжело увидеть ошибки)
0
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
27.01.2012, 04:51 7
Musia,
Цитата Сообщение от Musia Посмотреть сообщение
вроде бы да
А если посмотреть код процедуры в БД которую вы дергаете?
А то как-то чувствуется неуверенность в том что вы пишите...
0
1496 / 1238 / 244
Регистрация: 04.04.2011
Сообщений: 4,362
27.01.2012, 11:15 8
Delphi
1
2
3
      ShowMessage('Число параметров '+IntToStr(ibspUpdateProduct.Params.Count));
         ...
      ibspUpdateProduct.Params[0].Value:=ID;
0
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 6
27.01.2012, 13:32  [ТС] 9
вот процедура в БД
create procedure "UpdateProduct" (inID integer,
inName varchar(100),
inMg varchar(10))
as
begin
if (:inID=0) then
insert into "Product" values (:inID, :inName, :inMg);
else
update "Product"
set "Name"=:inName,
"Mg"=:inMg"
where ID=:inID;
end;
0
27.01.2012, 13:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2012, 13:32
Помогаю со студенческими работами здесь

При запуске программы появляется ошибка: list index out of bounds (0)
но к сожалению файл не читает и выдает такую ошибку, сама программа запускается Вот что выдает в...

Ошибка : Estringlisterror with message list index out of bounds(0) при работе с циклом
Здравствуйте,подскажите пожалуйста в чем может быть проблема... Задали в университете написать...

Ошибка List index out of bounds(2)
В чем ошибка? void __fastcall TForm2::Button2Click(TObject *Sender) { if (flag) { ...

Ошибка: list index out of bounds -1
Нужно ввести в StringGrid1 И StringGrid2 вещественные числа , потом присвоить массивам у меня...

Ошибка: List Index Out Of Bounds
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru