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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.01.2010, 17:38
Аватар для Sk@zk@
Sk@zk@ Sk@zk@ вне форума
Прохожий
 
Регистрация: 18.12.2009
Сообщения: 12
Репутация: 10
По умолчанию Поиск по Таблице

Привет программистам
Такой вопрос. Я в своей программе хочу сделать поиск. На форме есть таблица (подключена к бд в Access с помощью ADO), она нормально отображает записи. Внизу располагаю TEdit и кнопку. По задумке - при вводе в поле кода (такое поле в таблице есть) и нажатии на кнопку в таблице должна оставаться только одна строчка (у которой код соответствует запросу). Поставила ADOQuery и связала с AdoConnection, в SQL написан такой код:
Код:
Select *
From [Таблица заказов]

Код для кнопки такой:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
begin
ADOQuery1.SQL.Clear;
  str:='Select * from [Таблица заказов] Where Код='''+Edit3.Text+'''';
  ADOQuery1.SQL.Add(str);

  ADOQuery1.close;
  ADOQuery1.open;

end;
При нажатии на кнопку ничего не происходит... вообще
Собственно вопрос - что делаю не правильно?
Ответить с цитированием
  #2  
Старый 11.01.2010, 17:57
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Код:
  with Query do begin
   Close;
   SQL.Clear;
   SQL.Add('SELECT *');
   SQL.Add('FROM 'Таблица заказов'');
   SQL.Add('WHERE 'Код'='+Edit3.Text);
   Open;
  end;
Попробуй так...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #3  
Старый 11.01.2010, 18:59
Аватар для Sk@zk@
Sk@zk@ Sk@zk@ вне форума
Прохожий
 
Регистрация: 18.12.2009
Сообщения: 12
Репутация: 10
По умолчанию

Что-то не получается... если правильно поняла, то код для кнопки должен выглядеть так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
with ADOQuery1 do
begin
   ADOQuery1.Close;
   SQL.Clear;
   ADO.Query1SQL.Add('SELECT *');
   ADO.Query1SQL.Add('FROM 'Таблица заказов'');
   ADO.Query1SQL.Add('WHERE 'Код'='+Edit3.Text);
   ADOQuery1.Open;
  end;
Ругается на первую строчку, пишет "Declaration expected but 'with' found"... ну и дальше тоже ошибки выкидывает...

Последний раз редактировалось Sk@zk@, 11.01.2010 в 19:02.
Ответить с цитированием
  #4  
Старый 11.01.2010, 19:38
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Учи синтаксис..)
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  with ADOQuery1 do
    begin
    ADOQuery1.Close;
    SQL.Clear;
    ADO.Query1SQL.Add('SELECT *');
    ADO.Query1SQL.Add('FROM 'Таблица заказов'');
    ADO.Query1SQL.Add('WHERE 'Код'='+Edit3.Text);
    ADOQuery1.Open;
    end;
end;
Ответить с цитированием
  #5  
Старый 11.01.2010, 20:36
Аватар для Sk@zk@
Sk@zk@ Sk@zk@ вне форума
Прохожий
 
Регистрация: 18.12.2009
Сообщения: 12
Репутация: 10
По умолчанию

Спасибо Одной ошибкой стало меньше
Теперь ругается на другое:
Illegal character in input file 'T'($D2)
Illegal character in input file 'a'($E0)
Illegal character in input file 'K'($CA)
На сколько я понимаю там как-то в скобках надо по другому название таблицы и столбца выделить... только как?
Ответить с цитированием
  #6  
Старый 11.01.2010, 20:51
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Так попробуйте:
Код:
  ADO.Query1SQL.Add('SELECT *');
    ADO.Query1SQL.Add('FROM [Таблица заказов]');
    ADO.Query1SQL.Add('WHERE [Код]='+Edit3.Text);
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #7  
Старый 11.01.2010, 21:21
Аватар для Sk@zk@
Sk@zk@ Sk@zk@ вне форума
Прохожий
 
Регистрация: 18.12.2009
Сообщения: 12
Репутация: 10
По умолчанию

Так программа запускается) но при нажатии на кнопку выкидывает ошибку: "Несоответствие типов данных в выражении условия отбора". В базе данных у поля стоит тип - текстовое. Если поменять на числовое, то ошибку не выкидывает, но снова ничего не происходит(и не ищет и ошибки не выкидывает). Но с числовым у меня не работает другая кнопка на удаление(а если стоит текстовое - работает).
Ответить с цитированием
  #8  
Старый 12.01.2010, 10:15
Babuca Babuca вне форума
Прохожий
 
Регистрация: 09.08.2009
Сообщения: 27
Репутация: 10
По умолчанию

тема похожая, задам вопроса тут
как мне по числовому полю выбрать записи к примеру начинающие на 4.
если поле текстовое то тогда понятно делаю
Код:
Like '4%'
Ответить с цитированием
  #9  
Старый 12.01.2010, 10:32
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Код:
WHERE
CAST (ИМЯ_ПОЛЯ AS CHAR) like '4%' 
не проверял, но вроде так.
Ответить с цитированием
  #10  
Старый 12.01.2010, 10:35
Babuca Babuca вне форума
Прохожий
 
Регистрация: 09.08.2009
Сообщения: 27
Репутация: 10
По умолчанию

да именно так Спосибо.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter