Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2011, 16:50   #1
Серёга Русич
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 31
Восклицание SQL-запросы

Доброго времени суток!
Народ, у меня такой вопрос, а точнее три:


1.
Как организовать поиск по DBGrid'у, чтобы он выводил в DBGrid только те записи, значение которых содержится в текстовом поле? (например, если в Edit1 написано 111, то на экран выведутся все записи, в любых полях которых есть 111)

2.
Как вывести в DBGrid записи, у которых значение поля Sled_Vstrecha равно сегодняшней дате (DateToStr(Now))?
Код:
ADOQuery1.sql.Text:='SELECT * FROM Clients WHERE Sled_Vstrecha Like'+#39+'%'+Edit1.Text+'%'+#39;
Код вроде как правильный и ошибок не выдаёт, но визуально в DBGride ничего не происходит

3.
Как присвоить текстовым полям значения из выделенной сторки в DBGrid'е (Edit1.Text:=первое поле выделенной строки из DBGrida, Edit1.Text:=второе поле выделенной строки из DBGrida и т.д.)

Если вас не сильно затруднит, подскажите пожалуйста как это всё можно сделать
Серёга Русич вне форума Ответить с цитированием
Старый 11.05.2011, 17:08   #2
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Здравствуйте
1. Используйте LIKE в SQL запросе аналогично как в Вашем пункте 2.
2. Возможно Вы не делаете
Код:
 ADOQuery1.Active := False;
 ADOQuery1.sql.Text:='SELECT * FROM Clients WHERE Sled_Vstrecha Like'+#39+'%'+Edit1.Text+'%'+#39;
 ADOQuery1.Active := True;
3. Используйте DBEdit привязанный к тому-же набору данных
До свидания

Добавка
И что у Вас за символы #39+'%'+? Если у Вас MS Access, то нужно дату обрамлять символами #, возможно придётся использовать функцию Format.

Последний раз редактировалось OlegVE; 11.05.2011 в 17:50.
OlegVE вне форума Ответить с цитированием
Старый 11.05.2011, 19:17   #3
Серёга Русич
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 31
По умолчанию

Цитата:
2. Возможно Вы не делаете
Код:
ADOQuery1.Active := False;
 ADOQuery1.sql.Text:='SELECT * FROM Clients WHERE Sled_Vstrecha Like'+#39+'%'+Edit1.Text+'%'+#39;
 ADOQuery1.Active := True;
Не помогает

Цитата:
И что у Вас за символы #39+'%'+?
Это вроде код кавычек, в примере так было

Цитата:
1. Используйте LIKE в SQL запросе аналогично как в Вашем пункте 2.
3. Используйте DBEdit привязанный к тому-же набору данных
Большое спасибо за совет! пойду пробовать
Серёга Русич вне форума Ответить с цитированием
Старый 11.05.2011, 19:29   #4
Серёга Русич
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 31
По умолчанию

Цитата:
3. Используйте DBEdit привязанный к тому-же набору данных
Подскажите пожалуйста, как привязать DBEdit именно к выделенной записи (по умолчанию он выбирает самую первую)?
Серёга Русич вне форума Ответить с цитированием
Старый 11.05.2011, 19:33   #5
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Если у Вас DBEdit будут привязаны к тому-же набору данных (DataSource) что и DBGrid то при перемещении по DBGrid в DBEdit будут автоматически изменяться данные на текущие для DBGrid, как Вы и запрашивали.

Последний раз редактировалось OlegVE; 11.05.2011 в 19:39.
OlegVE вне форума Ответить с цитированием
Старый 11.05.2011, 19:54   #6
Серёга Русич
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 31
По умолчанию

хм, точно, глюк какой-то, заново поставил едиты - заработало. Спасибо
Серёга Русич вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БД и SQL запросы kuzmich БД в Delphi 1 15.11.2010 12:01
SQL запросы dymych Помощь студентам 9 21.06.2010 08:38
SQL запросы akimov_aleks БД в Delphi 3 21.04.2010 05:42
SQL-запросы SEMEon SQL, базы данных 21 05.01.2010 09:25
sql запросы wolf950 БД в Delphi 2 28.11.2008 21:26