![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Я хочу сделать SQL запрос из одного окна (в нем нет SQL не DB, просто окно, для поиска..) другому, но вот точно не знаю как.. подскажи мне пожалуйсто и поправьте
....Зарание спасибо! Вот что я намудрил: Код:
procedure TForm13.Button1Click(Sender: TObject);
begin
Fam:=Edit1.text;
Name:=Edit2.Text;
Clas:=Edit3.Text;
if Fam > '' and Name > '' and Clas > '' then
begin
with form2.Query do
begin
Form2.Query.Close;
Form2.Query.SQL.Add('SELECT * FROM liceym.db WHERE Fam, Name, Clas LIKE "'+ Fam + '","'+ Name + '","'+ Clas + '"');
Form2.Query.Open;
end;
if Form2.Query.RecordCount <> 0 then Form2.QSource.DataSet:=Query
else
begin
ShowMessage ('Ничего не было найдено');
Form3DSource.DataSet:=Table;
end;
end;
end;в 3 Edit-а вводим, имя, фамилию и класс, нажимаем кнопку Поиск, и из Формы №4 идет запрос форме №2.... Очень прошу помогите!!! Последний раз редактировалось JIexa, 10.01.2008 в 00:57. |
|
#2
|
|||
|
|||
|
ты не правильно пишеш запрос с оператором Like. Привожу пример на своем поекте. Поиск по двум полям из БД по мере набора букв.
procedure TForm10.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin Poisk.Close; Poisk.SQL.Strings[13] := 'Where (fio Like :a) and (gorod Like :b)'; // половина запроса уже записано в TQuery. Poisk.Prepare; Poisk.Params[0].AsString := Edit1.Text+'%'; Poisk.Params[1].AsString := Edit2.Text+'%'; Poisk.Open; end; Тебе нужно определиться, писать полностью фамилю, имя и класс или ты хочешь сделать поиск по нескольким буквам фамилии или имени или номеру класса. Последнее я думаю предпочтительней. Последний раз редактировалось vlad19, 10.01.2008 в 16:59. |
|
#3
|
||||
|
||||
|
Цитата:
Ты немножко не так записал! Исправь на: Код:
Form1.Query1.Close;
Form1.Query1.SQL.Clear;
Form1.Query1.SQL.Add('SELECT * FROM base.db WHERE (fam LIKE "'+Form2.DBEdit1.Text+') and (nam LIKE "'+Form2.DBEdit2.Text+') and (klas LIKE "'+Form2.DBEdit3.Text+') ');
Form1.Query1.Open;![]() |