-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
1

Выборка

08.09.2012, 20:21. Показов 3267. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть вот такая часть кода с SQL запросом
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TFPrivateCard.Button1Click(Sender: TObject);
begin
  FSearch.Show;
  FSearch.ActiveControl:=FSearch.FindEdit;
  if FPrivateCard.RadioButton1.Checked=True then  //Поиск по фамилии
    begin
      FSearch.Label3.Caption:='Фамилия студента:';
      FData.ADOTStudents.FieldByName('Фамилия');
       With FData.ADOQuery1 do
         begin
           Active:=false;
           SQL.Clear;
           SQL.Add('SELECT *');
           SQL.Add('FROM "Личные данные студентов"');
           SQL.Add('WHERE Фамилия LIKE '''+FSearch.FindEdit.Text+'''');
           Active:=true;
           SQL.Add('WHERE Фамилия LIKE '''+FSearch.FindEdit.Text + '%' + '''');
         end;
      KeyFind:='Фамилия';
      FPrivateCard.ActiveControl:=DBEdit2;
      Exit;
    end;
По идее программа должна искать фамилию уже по первым вводимым символам. Но почему-то этого не происходит...Правильно ли всё написано?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.09.2012, 20:21
Ответы с готовыми решениями:

Выборка из Combobox, причем выборка должна быть частичной
Добрый день. Подскажите пожалуйста как реализовать такого рода задачу: Есть 4 Combobox, в...

Выборка из БД
В наличии: close; SQL.Clear; SQL.Add('SELECT '); SQL.Add(' u.IdUser...

Выборка сумм
Нужно выбрать суммы значений из одной таблицы и вставить итоги в другую таблицу. Как это сдлеать?...

Выборка из БД в combobox
Сделал выборку категорий из БД в combobox таким об разом: procedure...

12
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
09.09.2012, 19:42 2
Первая ошибка, посмотрите внимательно на эту часть кода:
Цитата Сообщение от AXS Посмотреть сообщение
Delphi
1
2
3
SQL.Add('WHERE Фамилия LIKE '''+FSearch.FindEdit.Text+'''');
 Active:=true;
 SQL.Add('WHERE Фамилия LIKE '''+FSearch.FindEdit.Text + '%' + '''');
Добавлено через 3 минуты
И, объясните, для чего Exit в конце процедуры?
1
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
09.09.2012, 21:13  [ТС] 3
А можно прям указать на данную ошибку?) Так сказать ткнуть носом)) Просто посмотреть на данную часть кода мне не поможет...
0
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
10.09.2012, 17:56 4
Попробуйте так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TFPrivateCard.Button1Click(Sender: TObject);
begin
  FSearch.Show;
  FSearch.ActiveControl:=FSearch.FindEdit;
  if FPrivateCard.RadioButton1.Checked=True then  //Поиск по фамилии
    begin
      FSearch.Label3.Caption:='Фамилия студента:';
       With FData.ADOQuery1 do
         begin
           Active:=false;
           SQL.Clear;
           SQL.Add('SELECT *');
           SQL.Add('FROM "Личные данные студентов"');
           SQL.Add('WHERE Фамилия LIKE "%' + FSearch.FindEdit.Text + '%"');
           Active:=true;
         end;
      FPrivateCard.ActiveControl:=DBEdit2;
    end;
1
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
11.09.2012, 18:52  [ТС] 5
Спасибо за помощь, попробую))
0
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
13.09.2012, 20:30  [ТС] 6
На ваш вариант кода выдаёт ошибку. А если прописать вот так

('WHERE Фамилия LIKE ' '%'+FSearch.FindEdit.Text + '%' ' ');

То ошибки нет, но ничего не ищет...
Миниатюры
Выборка  
0
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
13.09.2012, 20:56 7
Предлагаю выложить проект...
0
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
18.09.2012, 18:18  [ТС] 8
Вот сам проект
Вложения
Тип файла: rar Деканат3исх.rar (950.9 Кб, 24 просмотров)
0
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
18.09.2012, 19:49  [ТС] 9
Для наглядности картинка...В маленькой форме ввожу фамилию, а в большой должны отобразиться все данные, связанные с этой фамилией. Маленькая форма вызывается по кнопке Поиск.
Миниатюры
Выборка  
0
Эксперт Pascal/Delphi
1134 / 615 / 129
Регистрация: 13.02.2009
Сообщений: 3,553
18.09.2012, 20:43 10
Цитата Сообщение от AXS Посмотреть сообщение
Есть вот такая часть кода с SQL запросом
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TFPrivateCard.Button1Click(Sender: TObject);
begin
  FSearch.Show;
  FSearch.ActiveControl:=FSearch.FindEdit;
  if FPrivateCard.RadioButton1.Checked=True then  //Поиск по фамилии
    begin
      FSearch.Label3.Caption:='Фамилия студента:';
      FData.ADOTStudents.FieldByName('Фамилия');
       With FData.ADOQuery1 do
         begin
           Active:=false;
           SQL.Clear;
           SQL.Add('SELECT *');
           SQL.Add('FROM "Личные данные студентов"');
           SQL.Add('WHERE Фамилия LIKE '''+FSearch.FindEdit.Text+'''');
           Active:=true;
           SQL.Add('WHERE Фамилия LIKE '''+FSearch.FindEdit.Text + '%' + '''');
         end;
      KeyFind:='Фамилия';
      FPrivateCard.ActiveControl:=DBEdit2;
      Exit;
    end;
По идее программа должна искать фамилию уже по первым вводимым символам. Но почему-то этого не происходит...Правильно ли всё написано?
копировать и вставит чужие код. это не программирование , Язык надо учить ! смотрите если вы хотите по первым вводимым символам что ADOQuery не выполняет запрос SQL
0
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
18.09.2012, 21:33  [ТС] 11
так надо же на чём-то учиться)) вот и приходится на чьих-то кодах. А статьи про отдельные элементы типа select, from не помогают. Мне нужно в действии так сказать...И всё же прошу показать как это делается с помощью запроса? Наглядный код согласно этому проекту. Буду очень признателен)
0
Эксперт Pascal/Delphi
1134 / 615 / 129
Регистрация: 13.02.2009
Сообщений: 3,553
18.09.2012, 22:29 12
Цитата Сообщение от AXS Посмотреть сообщение
так надо же на чём-то учиться)) вот и приходится на чьих-то кодах. А статьи про отдельные элементы типа select, from не помогают. Мне нужно в действии так сказать...И всё же прошу показать как это делается с помощью запроса? Наглядный код согласно этому проекту. Буду очень признателен)
Вы силку открывали ? мои предыдущие сообщения ? #10 (permalink там все подробно
1
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
19.09.2012, 19:45  [ТС] 13
да, читал. Я для проверки сделал DBGrid чтобы наглядно было видно идёт фильтрация или нет. Так вот. Сам запрос работает, выводит все фамилии и связанные с ними данные по первым вводимым буквам, но проблема не отображения данных в большой форме в соответствии с введённым текстом в маленькой ещё актуальна для меня....
0
19.09.2012, 19:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2012, 19:45
Помогаю со студенческими работами здесь

Выборка из AdoTable
Есть таблица adotable, я её подключаю к Dbgrid1 через datasource как сделать выборку допустим по...

Выборка из Access
Доброго времени суток. База подключена через ADOConnection. Никак не догадаюсь, как подставить...

Выборка в таблице
Суть такова! Допустим имеется форма, а в ней таблица из БД. Как мне сделать так, чтобы клацнув...

Выборка в DBGrid
Здравствуйте. возникла проблема, есть 2 формы. на 1ой форме расположен DBLookupComboBox и кнопка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru