Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2011, 12:43   #1
Алекссс
Пользователь
 
Аватар для Алекссс
 
Регистрация: 25.06.2011
Сообщений: 55
Восклицание При поиске возникает ошибка List index out of bounds (-1)

Ребята нужна помощь, не могу сообразить как произвести поиск, вроде как все норм работает а почемуто выдает такое сообщение List index out of bounds (-1) сам код поиска вот:


Код:
procedure TForm5.sBitBtn6Click(Sender: TObject);
var
  ffield :string;
begin
case sRadioGroup1.ItemIndex of
  0: ffield:='NAIMENOVANIE';
  1: ffield:='TAB';
  2: ffield:='NAKLADNAY';
end;
if not datamodule1.sklad.Locate(ffield,form5.sEdit1.Text,[loCaseInsensitive,loPartialKey]) then
showmessage ('Внимание!  '+form5.sEdit1.Text+'   Не найден!');
end;
Плизз помогите!!!!




___________
1) Название темы должно адекватно отражать суть решаемой задачи/проблемы.
На первый раз я исправил.
В дальнейшем темы с подобным названием будут закрываться/удаляться.


2) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)

Не забывайте об этом!

Модератор.
ICQ 566505973 e-mail first_al@mail.ru

Последний раз редактировалось Serge_Bliznykov; 22.07.2011 в 12:53.
Алекссс вне форума Ответить с цитированием
Старый 22.07.2011, 12:56   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

я на 90% уверен, что ошибка возникает НЕ В ДАННОМ кусочке кода..

поставьте точки останова на первый оператор процедуры и на последний...
пройдитесь в отладчике. На какой строке возникла ошибка?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.07.2011, 12:58   #3
Алекссс
Пользователь
 
Аватар для Алекссс
 
Регистрация: 25.06.2011
Сообщений: 55
По умолчанию

У меня всего пока 4 записи в базе, вот я пробую найти одну из них, и получается вот такая ошибка. Если можно посоветуйте что сделать.

А вообще он указывает что ошибка тут
Код:
 if not datamodule1.sklad.Locate(ffield,form5.sEdit1.Text,[loCaseInsensitive,loPartialKey]) then
showmessage ('Внимание!  '+form5.sEdit1.Text+'   Не найден!');
ну поможет кто?

я пробовал точки остановы и ошибка тут
Код:
if not datamodule1.sklad.Locate(ffield,form5.sEdit1.Text,[loCaseInsensitive,loPartialKey])
ICQ 566505973 e-mail first_al@mail.ru

Последний раз редактировалось Stilet; 22.07.2011 в 16:13.
Алекссс вне форума Ответить с цитированием
Старый 22.07.2011, 13:21   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

прошёлся поиском..

а уж не используете ли Вы часом связь "Master-Detail" на форме?!!
и какого типа датасет datamodule1.sklad ?
с ним что-то связано? Он с чем-то связан?

может быть, Вам проще выложить исходники проекта + тестовая базка?..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.07.2011, 13:24   #5
Алекссс
Пользователь
 
Аватар для Алекссс
 
Регистрация: 25.06.2011
Сообщений: 55
По умолчанию

Код:
unit Unit5;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, sEdit, Buttons, sBitBtn, sGroupBox, Grids, DBGrids,
  acDBGrid, DBCtrls, sDBMemo, sLabel, ExtCtrls, sPanel, ComCtrls,
  sPageControl, sSkinManager, ImgList, sRadioButton, DB;

type
  TForm5 = class(TForm)
    sSkinManager1: TsSkinManager;
    sPanel2: TsPanel;
    sDBGrid1: TsDBGrid;
    sPanel5: TsPanel;
    sRadioGroup1: TsRadioGroup;
    sGroupBox1: TsGroupBox;
    sBitBtn1: TsBitBtn;
    sBitBtn2: TsBitBtn;
    sBitBtn3: TsBitBtn;
    sBitBtn5: TsBitBtn;
    sBitBtn4: TsBitBtn;
    sBitBtn6: TsBitBtn;
    sEdit1: TsEdit;
    sPanel3: TsPanel;
    sLabel12: TsLabel;
    sPanel4: TsPanel;
    DBImage1: TDBImage;
    sDBMemo1: TsDBMemo;
    ImageList1: TImageList;
    sRadioButton1: TsRadioButton;
    sRadioButton2: TsRadioButton;
    sRadioButton3: TsRadioButton;
    procedure sBitBtn1Click(Sender: TObject);
    procedure sBitBtn2Click(Sender: TObject);
    procedure sBitBtn3Click(Sender: TObject);
    procedure sBitBtn5Click(Sender: TObject);
    procedure sBitBtn4Click(Sender: TObject);
    procedure sBitBtn6Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form5: TForm5;

implementation

uses modul, Unit2, Unit3, titl;

{$R *.dfm}

procedure TForm5.sBitBtn1Click(Sender: TObject);
begin
datamodule1.sklad.Append;
vvod_tovar:=tvvod_tovar.Create(owner);
end;

procedure TForm5.sBitBtn2Click(Sender: TObject);
begin
if Application.MessageBox(PChar('Óäàëèòü çàïèñü? '), 'Âíèìàíèå', MB_OKCANCEL)=id_OK then
datamodule1.sklad.Delete;  //ûâàïâàï
end;

procedure TForm5.sBitBtn3Click(Sender: TObject);
begin
vvod_tovar:=tvvod_tovar.Create(owner);
end;

procedure TForm5.sBitBtn5Click(Sender: TObject);
begin
form3.QuickRep1.Preview;
end;

procedure TForm5.sBitBtn4Click(Sender: TObject);
begin
form3.QuickRep2.Preview;
end;

procedure TForm5.sBitBtn6Click(Sender: TObject);
var
ffield :string;
begin
// âûáðàòü ïîëå ïîèñêà
case sRadioGroup1.ItemIndex of
0: ffield:='NAIMENOVANIE';
1: ffield:='TAB';
2: ffield:='NAKLADNAY';
end;
 // âûïîëíèòü ïîèñê
if not datamodule1.sklad.Locate(ffield,form5.sEdit1.Text,[loCaseInsensitive,loPartialKey]) then
showmessage ('Âíèìàíèå!  '+form5.sEdit1.Text+'   Íå íàéäåí!');
end;

procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
datamodule1.sklad.Close;
end;

procedure TForm5.FormShow(Sender: TObject);
begin
datamodule1.sklad.Open;
end;

end.
ссори все не выложу у меня трафик(((( а там много веса

нечитаемый текст там не имеет особого значения)

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
прошёлся поиском..

а уж не используете ли Вы часом связь "Master-Detail" на форме?!!
и какого типа датасет datamodule1.sklad ?
с ним что-то связано? Он с чем-то связан?

может быть, Вам проще выложить исходники проекта + тестовая базка?..
С datamodule1.sklad еще связана другая форма, но там при входе она открывает sklad а при выходе с формы закрывает

Или Сергей (если не ошибаюсь) может что вы посоветуете как сделать поиск по одному из трех параметров по выбору

if not datamodule1.sklad.Locate(ffield,for m5.sEdit1.Text,[loCaseInsensitive,loPartialKey]) если я убираю loCaseInsensitive,loPartialKey то он не показывает ошибки но и не находит нечего
ICQ 566505973 e-mail first_al@mail.ru

Последний раз редактировалось Stilet; 22.07.2011 в 16:15.
Алекссс вне форума Ответить с цитированием
Старый 22.07.2011, 15:26   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

пока не вижу особого криминала...

запакуйте исходники формы datamodule1.pas и datamodule1.dfm в архив и выложите архив на форуме ("Расширенный режим - Управление вложениями".)...
Архив полулится пара килобайт - меньше объемом, чем постить сюда текст модуля.. - если Вы за траффик переживаете...


p.s. не создавайте сообщения друг за другом - если что сказать/добавить - нажимайте кнопка "Правка" на своём крайнем сообщении и дописывайте
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.07.2011, 15:34   #7
Алекссс
Пользователь
 
Аватар для Алекссс
 
Регистрация: 25.06.2011
Сообщений: 55
По умолчанию

вот архив datamodul
Вложения
Тип файла: zip datamodule.zip (3.4 Кб, 8 просмотров)
ICQ 566505973 e-mail first_al@mail.ru
Алекссс вне форума Ответить с цитированием
Старый 22.07.2011, 16:03   #8
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

А выделенное - не ошибка?
Locate(ffield,for m5.sEdit1.Text,[loCaseInsensitive,loPartialKey])
ReportCube вне форума Ответить с цитированием
Старый 22.07.2011, 16:06   #9
Алекссс
Пользователь
 
Аватар для Алекссс
 
Регистрация: 25.06.2011
Сообщений: 55
По умолчанию

Не знаю, но он не выдиляет это как ошибку, может тоже задать как к примеру flalue: string? тогда как мне задать form5.sEdit1.text

var fvalue: string;
begin

fvalue:=floattostr(form5.sEdit1.tex t);

так?
ICQ 566505973 e-mail first_al@mail.ru

Последний раз редактировалось Алекссс; 22.07.2011 в 16:12.
Алекссс вне форума Ответить с цитированием
Старый 22.07.2011, 16:19   #10
Алекссс
Пользователь
 
Аватар для Алекссс
 
Регистрация: 25.06.2011
Сообщений: 55
По умолчанию

Может Вы знаете как поиск такой сделать что бы выбирать из трех возможных вариантов
ICQ 566505973 e-mail first_al@mail.ru
Алекссс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему ошибка 'List index out of bounds (0)'? WandererX Общие вопросы Delphi 7 20.06.2010 11:17
Ошибка List Index out of bounds Rapala Помощь студентам 1 03.05.2010 17:33
Ошибка List index of bounds(1) Blue Heron Помощь студентам 5 17.03.2010 00:38
ошибка:List index out of bounds tanek Помощь студентам 7 26.12.2009 20:38
Ошибка List index out of bounds(0) при использовании запроса AdoQuery ArtInt БД в Delphi 14 15.04.2009 18:35