![]() |
|
|
#1
|
||||
|
||||
|
Привет программистам
![]() Такой вопрос. Я в своей программе хочу сделать поиск. На форме есть таблица (подключена к бд в 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
|
||||
|
||||
|
Код:
with Query do begin
Close;
SQL.Clear;
SQL.Add('SELECT *');
SQL.Add('FROM 'Таблица заказов'');
SQL.Add('WHERE 'Код'='+Edit3.Text);
Open;
end; |
|
#3
|
||||
|
||||
|
Что-то не получается... если правильно поняла, то код для кнопки должен выглядеть так:
Код:
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;Последний раз редактировалось Sk@zk@, 11.01.2010 в 19:02. |
|
#4
|
|||
|
|||
|
Учи синтаксис..)
Код:
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
|
||||
|
||||
|
Спасибо
Одной ошибкой стало меньше![]() Теперь ругается на другое: Illegal character in input file 'T'($D2) Illegal character in input file 'a'($E0) Illegal character in input file 'K'($CA) На сколько я понимаю там как-то в скобках надо по другому название таблицы и столбца выделить... только как? |
|
#6
|
||||
|
||||
|
Так попробуйте:
Код:
ADO.Query1SQL.Add('SELECT *');
ADO.Query1SQL.Add('FROM [Таблица заказов]');
ADO.Query1SQL.Add('WHERE [Код]='+Edit3.Text); |
|
#7
|
||||
|
||||
Так программа запускается) но при нажатии на кнопку выкидывает ошибку: "Несоответствие типов данных в выражении условия отбора". В базе данных у поля стоит тип - текстовое. Если поменять на числовое, то ошибку не выкидывает, но снова ничего не происходит(и не ищет и ошибки не выкидывает). Но с числовым у меня не работает другая кнопка на удаление(а если стоит текстовое - работает). |
|
#8
|
|||
|
|||
|
тема похожая, задам вопроса тут
![]() как мне по числовому полю выбрать записи к примеру начинающие на 4. если поле текстовое то тогда понятно делаю Код:
Like '4%' |
|
#9
|
||||
|
||||
|
Код:
WHERE CAST (ИМЯ_ПОЛЯ AS CHAR) like '4%' |
|
#10
|
|||
|
|||
|
да именно так
Спосибо. |