Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.03.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.009 c
3-16900
AndrewK
2003-02-14 19:28
2003.03.06
Программное добавление логина и пользователя в базу данных


3-16966
line
2003-02-17 01:15
2003.03.06
Установка пароля на существующую таблицу Paradox


1-16992
ZaM2000
2003-02-24 15:54
2003.03.06
Эмуляция DoubleClick на определенном item е ListView


6-17215
OxOTHuK
2003-01-14 22:00
2003.03.06
Поток или не поток! вот в чем вопрос!


3-16932
Сергей
2003-02-16 01:39
2003.03.06
clientdataset





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский