![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| belal |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 23.2.2012 Репутация: нет Всего: нет |
Добрый день! Мне необходимо вывести информацию из таблицы БД Каталог_книг, где есть поля название, автор и др. Ввожу,например, имя автора в Edit1, на кнопке поиска записала код:
ADOQuery1.Active:=False; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT * FROM Каталог_книг where Автор=:avt'); ADOQuery1.Parameters.ParamByName('avt').Value:=Edit1.text; ADOQuery1.Active:=True ; выводится пустая таблица. Пробовала по-разному: ADOQuery1.Active:=False; ADOQuery1.SQL.Add('SELECT * FROM Каталог_книг'); if trim(Edit1.Text)<>'' then ADOQuery1.SQL.Add('where Регистрационный_№ like' + a + '%' + Edit1.Text + '%' + a); if trim(Edit2.Text)<>'' then ADOQuery1.SQL.Add('where Автор like' + a + '%' + Edit2.Text + '%' + a); if trim(Edit3.Text)<>'' then ADOQuery1.SQL.Add('where Название like' + a + '%' + Edit3.Text + '%' + a); ADOQuery1.Active:=True ; Мне советуют использовать параметры. Но я не умею. Помогите пожалуйста, объясните принцип использования параметров в первом коде. Может есть подобный пример? |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Так у тебя параметры и использованы в этой строчке:
Какой там ещё принцип может быть? Проверь, работает ли запрос в самой СУБД. Это сообщение отредактировал(а) Данкинг - 23.2.2012, 11:51 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| belal |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 23.2.2012 Репутация: нет Всего: нет |
Я знаю, что записан параметр - выводится пустая таблица. Как проверять то? Ошибок не выдает Это сообщение отредактировал(а) belal - 23.2.2012, 15:25 |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Выполнить запрос непосредственно в СУБД и проверить, выводятся ли данные. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| belal |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 23.2.2012 Репутация: нет Всего: нет |
Проверила. Данные не выводятся. Может я какое свойство не заполнила? Нужно ли в данном случае заполнять свойства SQL или Parametrs?
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Если данные в самой СУБД не выводятся, то при чём здесь свойства? Ну, хочешь - приложи базу, посмотрим. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| belal |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 23.2.2012 Репутация: нет Всего: нет |
База создана в Access, прикрепить ее не получилось, пишет:"Вы не можете загружать такой тип файлов"
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
А архивнуть?
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| belal |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 23.2.2012 Репутация: нет Всего: нет |
Я пробовала так выводить на кнопке поиска:
Var a:Char; begin a:=#39; ADOQuery1.Active:=False; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT * FROM Каталог_книг'); ADOQuery1.SQL.Add('WHERE Регистрационный_№ like' + a + '%' + Edit1.Text + '%' + a); ADOQuery1.SQL.Add('and Автор like' + a + '%' + Edit2.Text + '%' + a); ADOQuery1.SQL.Add('and Название like' + a + '%' + Edit3.Text + '%' + a); ADOQuery1.Active:=True ; ввожу один из параметров поиска - все работает, но повторно по другому параметру поиска получаю пустую таблицу. Добавлено через 3 минуты и 59 секунд Архивнула Присоединённый файл ( Кол-во скачиваний: 3 )
__________.rar 20,79 Kb |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
В базе ничего особенного не обнаружил.
А параметр только один из трёх может быть выбран или несколько сразу тоже могут быть? Это сообщение отредактировал(а) Данкинг - 23.2.2012, 19:37 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| belal |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 23.2.2012 Репутация: нет Всего: нет |
Можно несколько.
На кнопке "очистить" написала следующее: Edit1.Text:=' '; Edit2.Text:=' '; Edit3.Text:=' '; ADOQuery1.SQL.Clear; Я думаю проблема в том, что повторно он ищет в результате предыдущего запроса. |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| belal |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 23.2.2012 Репутация: нет Всего: нет |
Пишет "ошибка синтаксиса в предложении FROM". Как посмотреть sql запрос перед ADOQuery1.Open?
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Возможно, я не тестил.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| belal |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 23.2.2012 Репутация: нет Всего: нет |
ввожу в Edit1 "1" .Вот что получается:
Select * from Каталог_книг and Регистрационный_№ like %'1'% Это сообщение отредактировал(а) belal - 23.2.2012, 20:37 |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Н-да, тогда так:
Это сообщение отредактировал(а) Данкинг - 23.2.2012, 21:46 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| belal |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 23.2.2012 Репутация: нет Всего: нет |
Попробовала и так. Выводит первый результат, ввожу другую фамилию - пустая таблица.
При пустых Edit выводит всю таблицу. С запросами вроде все в порядке. А повторный поиск никак не получается! Это сообщение отредактировал(а) belal - 24.2.2012, 16:57 |
|||
|
||||
| belal |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 23.2.2012 Репутация: нет Всего: нет |
УРА!!!!!!!!!!!!!!!!!!!!!!!!! Работает!!!!
СПАСИБО БОЛЬШОЕ!!!!!!!!!!!!!!!! |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
И в чём косяк был?
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| belal |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 23.2.2012 Репутация: нет Всего: нет |
В компонентах. Для другого кода, который нашла в интернете, я делала два DataSource и еще ADOTable. А потом забыла убрать. Мой косяк.
Это сообщение отредактировал(а) belal - 24.2.2012, 17:20 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |