Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.06;
Скачать: CL | DM;

Вниз

Я уже не знаю что делать   Найти похожие ветки 

 
Itap ©   (2003-02-14 16:24) [0]

Проблема: данные из TEdit добавить в SQL-запрос
Последний вариант моего решения который тоже не прошёл:
procedure TForm1.Edit18Change(Sender: TObject);
begin
DBGrid1.DataSource:=DataSource1;
Table1.Active:=False;
Table1.TableName:="MainBase.db";
DBGrid1.DataSource:=DataSource2;
Query1.Active:=False;
Query1.SQL.Clear;
Query1.SQL.Add("select Num as Номер");
Query1.SQL.Add(", F as Фамилия");
Query1.SQL.Add(" From MainBase");
Query1.SQL.Add(" where F like ");
Query1.SQL.Add("STRPCopy(b, Edit18.Text);"+"");
Query1.SQL.Add(""%"");
Query1.Active:=True;
end;

Вопрос:Как быть?

Краткое описание: Из поля "F" базы данных "MainBase" (Paradox) необходимо показать фамилии начинающиеся с тех букв которые записываются в Edit18. Запрос должен выполняться при внесении в окно Edit18 какого либо символа.


 
Соловьев ©   (2003-02-14 16:30) [1]


> Query1.SQL.Add("STRPCopy(b, Edit18.Text);"+"");
> Query1.SQL.Add(""%"");

Попробуй в событии Edit18.OnChange
...
Query1.SQL.Add(Edit18.Text+"%");
...



> Query1.SQL.Add("select Num as Номер");

Это не верно.


 
Johnmen ©   (2003-02-14 16:34) [2]

procedure TForm1.Edit18Change(Sender: TObject);
begin
Query1.Close; Query1.SQL.Clear;
Query1.SQL.Add("select Num as Номер");
Query1.SQL.Add(", F as Фамилия");
Query1.SQL.Add(" From MainBase");
Query1.SQL.Add(" where F like ");
Query1.SQL.Add(""""+STRPCopy(b, Edit18.Text)+"%""");
Query1.Open;
end;


 
Itap ©   (2003-02-14 16:34) [3]

>Query1.SQL.Add(Edit18.Text+"%");
Ведь в запросе символы идут под типом PChar а в Edit они как TString возникает проблема с типами

> Query1.SQL.Add("select Num as Номер");
>Это не верно.

В Paradox разрешается использование русских заголовков, вернее их переименование про запросах


 
Stas ©   (2003-02-14 16:35) [4]

Попробуй использовать оператор lIke


 
Itap ©   (2003-02-14 16:40) [5]

Johnmen - спасибо,попробую
Я думаю получиться. Только сейчас заметил что в моём исходном тексте после строки: Query1.SQL.Add("STRPCopy(b, Edit18.Text) стоит ";" которой там явно не должно быть.


 
Itap ©   (2003-02-14 16:41) [6]

>Stas ©
>Попробуй использовать оператор lIke

На его основе какраз и основан запрос


 
Соловьев ©   (2003-02-14 16:43) [7]


> procedure TForm1.Edit18Change(Sender: TObject);
> begin
> DBGrid1.DataSource:=DataSource1;
> Table1.Active:=False;
> Table1.TableName:="MainBase.db";
> DBGrid1.DataSource:=DataSource2;

Зачем это делать каждый раз при изменении Edit18.Text?

> Itap © (14.02.03 16:34)
> >Query1.SQL.Add(Edit18.Text+"%");
> Ведь в запросе символы идут под типом PChar а в Edit они
> как TString возникает проблема с типами

У меня все работатет, может, ты чего-то не пишешь?


 
stas ©   (2003-02-14 16:44) [8]

to Itap
Прошу прощения запарился...


 
Itap ©   (2003-02-14 16:51) [9]

>Соловьев ©
> DBGrid1.DataSource:=DataSource1;
> DBGrid1.DataSource:=DataSource2;
>Зачем это делать каждый раз при изменении Edit18.Text?
Просто в базе используется 2 DataSource поэтому приходиться делать такие переприсвоения



 
Chubais ©   (2003-02-14 16:51) [10]

мда....


 
Соловьев ©   (2003-02-14 16:57) [11]


> Просто в базе используется 2 DataSource поэтому приходиться
> делать такие переприсвоения

Это понятно, но зачем в OnChange?????


 
Itap ©   (2003-02-14 17:00) [12]

>Соловьев
>Это понятно, но зачем в OnChange?????
Да, наверное правильно - перепишу


 
Соловьев ©   (2003-02-14 17:06) [13]

И лучше используй параметризированые запросы будет на порядок быстрее.


 
НАХАЛ   (2003-02-15 01:00) [14]


> Chubais ©

Ну...


 
Itap ©   (2003-02-16 15:33) [15]

>Соловьев ©
А ведь ты был прав, прошёл вариант:
procedure TForm1.Edit18Change(Sender: TObject);
begin
Query1.Close; Query1.SQL.Clear;
Query1.SQL.Add("select Num as Номер");
Query1.SQL.Add(", F as Фамилия");
Query1.SQL.Add(" From MainBase");
Query1.SQL.Add(" where F ");
Query1.SQL.Add("Like """ + Edit18.Text + "%""");
Query1.Open;
end;



Страницы: 1 вся ветка

Текущий архив: 2003.03.06;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.022 c
6-17216
neodiX
2003-01-13 01:25
2003.03.06
Что за ошибка, в чем причина?


1-17132
boolean
2003-02-21 15:39
2003.03.06
Как сделать, чтобы ListView фокусироваля на последней записи?


8-17207
Delchiv
2002-11-14 02:47
2003.03.06
Векторизация растра


1-17125
district
2003-02-22 16:28
2003.03.06
Как автоматически конвертнуть, например, tagMSG в TWMChar


1-17169
ЮРИЙ_К
2003-02-21 10:51
2003.03.06
Подключаем манифест к своей проге. Однако не все прекрасно 8-(((