IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Проблема с методом поиска, Проблема с поиском по нескольким записям в БД
сообщение
Сообщение #1


Бывалый
****

Группа: Пользователи
Сообщений: 318
Пол: Мужской

Репутация: -  0  +


всем привет. Сделал бд в делфи ..в ней..имеется две таблицы, одна из них дочерняя , а др родительская, для каждой таблицы сделал две кнопки, которые реализуют поиски разными методами(первый метод-Lookup, второй- Locate), у первой таблице два метода работают нормально, а вот у второй таблицы не работает метод-Lookup--выходит ошибка при нажати кнопки---Variant or safe array index out of bounds...как исправить жту ошибку я не знаю...вот коды:

procedure TForm1.Button1Click(Sender: TObject);
var
GrNumTmp1, GrNumTmp2: Integer;
begin

If CheckBox1.Checked then
begin
DataSource1.DataSet:=Table1;
GrNumTmp1 := StrToInt(Edit1.Text);
GrNumTmp2 := StrToInt(Edit2.Text);
With Table1 do
begin
CancelRange;
SetRange([GrNumTmp1],[GrNumTmp2]);
end;
end else
Table1.CancelRange;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
LookUpResults: Variant;
i: integer;
begin
ListBox1.Clear();
LookUpResults:=Table1.Lookup('Soc_nom', StrToInt(Edit3.Text), 'Famil;Imya; Dolgnost');
If VarIsArray(LookUpResults) then
begin
for i := 0 to 2 do
listbox1.Items.Add(LookUpResults[i]);
end
else
case VarType(LookUpResults) of
varEmpty : listbox1.Items.Add('Пустой результат');
varNull : listbox1.Items.Add('Запись не найдена');
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
LocateResults: Variant;
begin
LocateResults:=Table1.Locate('Soc_nom;Famil;Imya', varArrayof( [1, 'Щеколдин', 'Андрей']),[loCaseInsensitive, loPartialKey]);
Case varType(LocateResults) of
varEmpty : Label6.Caption:='Пустой результат';
varNull : Label6.Caption:='Запись не найдена';
else
Label5.Caption:=LocateResults;
end;
end;

procedure TForm1.Button4Click(Sender: TObject);
var
GrNumTmp3, GrNumTmp4: Integer;
begin

If CheckBox2.Checked then
begin
DataSource2.DataSet:=Table2;
GrNumTmp3 := StrToInt(Edit4.Text);
GrNumTmp4 := StrToInt(Edit5.Text);
With Table2 do
begin
CancelRange;
SetRange([GrNumTmp3],[GrNumTmp4]);
end;
end else
Table2.CancelRange;
end;


procedure TForm1.Button5Click(Sender: TObject);
var
LookUpResults: Variant;
i: integer;
begin
ListBox2.Clear();
LookUpResults:=Table2.Lookup('Kod_lic_ch', StrToInt(Edit6.Text), 'Bank; Soc_nom');
If VarIsArray(LookUpResults) then
begin
for i := 0 to 2 do
listbox2.Items.Add(LookUpResults[i]);--ОШИБКА УКАЗЫВАЕТ СЮДА.
end
else
case VarType(LookUpResults) of
varEmpty : listbox2.Items.Add('Пустой результат');
varNull : listbox2.Items.Add('Запись не найдена');
end;
end;

procedure TForm1.Button6Click(Sender: TObject);

var
LocateResults: Variant;
begin
LocateResults:=Table2.Locate('Kod_lic_ch;N_lic_ch;Bank', varArrayof( ['1', '1', 'Уралсиб']),[loCaseInsensitive, loPartialKey]);
Case varType(LocateResults) of
varEmpty : Label6.Caption:='Пустой результат';
varNull : Label6.Caption:='Запись не найдена';
else
Label11.Caption:=LocateResults;
end;
end;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 155
Пол: Мужской

Репутация: -  0  +


Why not settling on games that is fun and at the same time your earning. Well it'll make suspense because the game is well but dude just try it and it gave me hope while pandemic is real rn. Casino Gambling Strategies
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.04.2024 14:44
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name