Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.01.2008, 00:50
JIexa JIexa вне форума
Прохожий
 
Регистрация: 02.09.2007
Сообщения: 38
Репутация: 10
Восклицание БД Запрос с одного окна другому...

Я хочу сделать 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  
Старый 10.01.2008, 16:38
vlad19 vlad19 вне форума
Прохожий
 
Регистрация: 03.06.2007
Сообщения: 20
Репутация: 10
По умолчанию

ты не правильно пишеш запрос с оператором 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  
Старый 10.01.2008, 20:06
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
Восклицание

Цитата:
Сообщение от JIexa
Я хочу сделать SQL запрос из одного окна ...
Код:
...
begin
Form2.Query.Close;
Form2.Query.SQL.Add('SELECT * FROM liceym.db WHERE Fam, Name, Clas LIKE "'+ Fam + '","'+ Name + '","'+ Clas + '"');
Form2.Query.Open;
end;
...

Ты немножко не так записал! Исправь на:
Код:
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;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:27.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter