У меня есть этот код, работающий для окна поиска моего приложения, к сожалению, когда он ищет или фильтрует, он проверяет каждую строку в базе данных, а затем, когда искомое слово найдено, он отображает его на tlabels,
procedure Tspcb.dccolbtnClick(Sender: TObject);
begin
zdctable.First;
while not zdctable.EOF do
begin
if (zdctable.FieldByName('Collector').AsString = dcedit.Text)
then begin
cn.Caption := zdctable.FieldByName('Client_Name').AsString;
col.Caption := zdctable.FieldByName('Collector').AsString;
pay.Caption := zdctable.FieldByName('Daily_Payment').AsString;
date.Caption := zdctable.FieldByName('Date').AsString;
ddate.Caption := zdctable.FieldByName('Due_Date').AsString;
id.Caption := zdctable.FieldByName('ID').AsString;
la.Caption := zdctable.FieldByName('Loan').AsString;
tc.Caption := zdctable.FieldByName('Total_Collectibles').AsString;
end;
ShowMessage('click ok for next profile');
zdctable.Next;
end;
end;
что я хочу сделать, так это проверить строки, в которых есть искомое слово, а не искать каждую строку в базе данных.
Мне нужна помощь в анализе этого кода, я всего лишь новичок, который учится использовать Delphi 7 и программировать.
благодарю вас
zdctable.First
. Вы возвращаетесь к началу набора данных каждый раз, когда нажимаете кнопку, что, естественно, не позволит вам увидеть какие-либо другие строки, кроме первого совпадения. Нажмите кнопку->Перейти к первому ряду->Найти первое совпадение->Нажмите кнопку->Перейти к первому ряду->Найти первое совпадение->Нажмите кнопку... Затем см. справку оTDataSet.FindFirst
иTDataSet.FindNext
, чтобы полностью удалить цикл. - person Ken White   schedule 11.04.2013MastApp
. Вы должны найти его в папке Demos (не помню, где это было на D7, но вы должны найти его в меню «Пуск»). Глядя на то, что он делает и как он это делает, он должен дать вам хорошие отправные точки. Кроме того, вы можете поискать учебник по Delphi в Google. :-) - person Ken White   schedule 11.04.2013