| 
| 
 | Вопрос # 5 243/ вопрос открыт / | 
 |  Приветствую, уважаемые эксперты! нужно сделать запрос на выборку данных базы Access по текущей дате, все дело в том что Delphi я в принципе не знаю, я только подключил базу, думаю запрос на кнопку поставить, а как запрос по текущей дате сделать, подскажите используюDBGrid
 DataSource
 ADOConnection
 ADOQuery
 
 вот примерный код запроса
 Приложение:Переключить в обычный режим procedure TForm1.Button1Click(Sender: TObject);begintryADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('SELECT * FROM AUTO ???? ');ADOQuery1.Active:=True;excepton e:Exception doend;end;
|  |   Вопрос задал: dimka (статус: Посетитель)Вопрос отправлен: 29 апреля 2011, 21:10
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: min@y™ ADOQuery1.SQL.Add('SELECT * FROM AUTO WHERE dt=''30.04.2011''');Как же ты мне надоел...
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 30 апреля 2011, 20:10
 
 |  
 Мини-форум вопросаВсего сообщений: 38; последнее сообщение — 1 мая 2011, 16:56; участников в обсуждении: 3. Страницы: [1] [2] [Следующая »]  
|   | min@y™ (статус: Доктор наук), 29 апреля 2011, 22:11 [#1]:Написать на Delphi СУБД, не шаря в программировании - это, ИМХО, unreal. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | dimka (статус: Посетитель), 29 апреля 2011, 22:24 [#2]:Посмеялся, теперь  помоги, я немного щарю, в инсте проходил С и т.д.  SQL тоже чуть больше знаю, я просто в делфи не работал. |  
|   | min@y™ (статус: Доктор наук), 29 апреля 2011, 22:46 [#3]:А я в универе не проходил ни delphi, ни с/с++, ни SQL. Я вообще на инженера-конструктора учился. Будем дальше смеяться? Я базами данных занимался один единственный раз лет эдак 9 назад. И то в образовательных целях (делать было нефиг).
 Если не шаришь в delphi, даже не пытайся сделать это на delphi. Лучше попроси кого-нить сделать это за тебя. Хотя, если у тебя есть пару лет времени, то почти реально поднять и такую задачу. Книжку могу посоветовать.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | dimka (статус: Посетитель), 29 апреля 2011, 22:49 [#4]:Да я уже почти разобрался, мне толь правильно запрос составить. |  
|   | Егор (статус: 10-ый класс), 30 апреля 2011, 05:14 [#5]:если не можешь составить запрос, то тогда надо базы данных учить. и это дополнительно к дельфи 
 
 SELECT * FROM AUTO WHERE имя_поля_с_датой=27.01.2011какая база данных? access? в некоторых случаях дату надо брать в кавычки, в других - в решётки
 
 SELECT * FROM AUTO WHERE имя_поля_с_датой='27.01.2011' // так
SELECT * FROM AUTO WHERE имя_поля_с_датой="27.01.2011" // или так
SELECT * FROM AUTO WHERE имя_поля_с_датой=#27.01.2011# // или вот так Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  
|   | dimka (статус: Посетитель), 30 апреля 2011, 09:33 [#6]:Спасибо, но этот запрос будет работать только на заданную в нем дату 27.01.2011, а как сделать чтобы он автоматически в запрос подставлял текущею дату, например седня это 27.01.2011, а завтра 28.01.2011, постоянно изменять запрос? Да Access, Delphi 7.0
 |  
|   | min@y™ (статус: Доктор наук), 30 апреля 2011, 10:08 [#7]: Цитата (dimka): Спасибо, но этот запрос будет работать только на заданную в нем дату 27.01.2011, а как сделать чтобы он автоматически в запрос подставлял текущею дату, например седня это 27.01.2011, а завтра 28.01.2011, постоянно изменять запрос? Ну есть же функции Date() и DateToStr(). Вот и воспользуйся.
 
 ADOQuery1.SQL.Add('SELECT * FROM AUTO WHERE имя_поля_с_датой=' + DateToStr(Date()));Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | dimka (статус: Посетитель), 30 апреля 2011, 12:27 [#8]:Ага огромное спасибо! Попробую сделать! |  
|   | dimka (статус: Посетитель), 30 апреля 2011, 16:56 [#9]:Еще один вопрос, а как прописать запрос по дате но дату нужно задавать, использовать Edit? |  
|   | min@y™ (статус: Доктор наук), 30 апреля 2011, 17:09 [#10]: Цитата (dimka): использовать Edit?  Можно, но лучше DateTimePicker или Calendar.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | dimka (статус: Посетитель), 30 апреля 2011, 17:29 [#11]:Спасиб, но следом естественно будет вопрос как? И у меня ошибку выдает синтаксическую, и просто дату пробовал тоже не пошло SELECT * FROM AUTO WHERE имя_поля_с_датой=#27.01.2011# и не "", а с '' вообще не запустилось, может где в коде ошибка? procedure TForm1.Button10Click(Sender: TObject);
 begin
 try
 ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.Add('SELECT * FROM AUTO WHERE D_TRANS=' + DateToStr(Date()));
 ADOQuery1.Active:=True;
 except
 on e:Exception do
 end;
 end;
 |  
|   | min@y™ (статус: Доктор наук), 30 апреля 2011, 17:39 [#12]:Кто выдаёт ошибку: компилятор или SQL? И в каком случае? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | dimka (статус: Посетитель), 30 апреля 2011, 17:47 [#13]:Он запускается, базу подключил, она выводиться, а когда нажимаю на кнопку запроса, выводит ошибку |  
|   | dimka (статус: Посетитель), 30 апреля 2011, 17:50 [#14]:Текст ошибки "Число содержит синтаксическую ошибку в запросе D_TRANS=30.04.2011" |  
|   | min@y™ (статус: Доктор наук), 30 апреля 2011, 18:01 [#15]: Цитата (dimka): Текст ошибки "Число содержит синтаксическую ошибку в запросе D_TRANS=30.04.2011"  Ну, я думаю, это значит, что число содержит синтаксическую ошибку в запросе. Ты уверен, что запрос должен выглядеть именно так, а не как-нибуд вот эдак:
 D_TRANS=#30.04.2011#
 D_TRANS="30.04.2011"
 D_TRANS='30.04.2011'
 D_TRANS=30/04/2011
 D_TRANS=#2011/30/04#
 D_TRANS=30042011
 D_TRANS=20113004
 и т.д?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | dimka (статус: Посетитель), 30 апреля 2011, 18:05 [#16]:Млин да я ж не знаю, мне нужна текущая дата как вы писали D_TRANS=' + DateToStr(Date())); думаю что то типа этого? |  
|   | min@y™ (статус: Доктор наук), 30 апреля 2011, 18:19 [#17]:Тебе прежде всего надо узнать, какой формат должен быть у этой даты для запроса. DateToStr(Date()) вернёт строку с датой в формате, который задан в региональных настройках windows в панели управления (в данном случае - 30.04.2011). А вот SQL-сервер может требовать эту строку с датой в каком угодно формате, например в одном из тех, что я привёл выше. Читай документацию, а то мне телепатор за неуплату отключили. Или экспериментируй, авось наткнёшься на правильный формат. Одинарные кавычки, для начала, попробуй. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | dimka (статус: Посетитель), 30 апреля 2011, 18:38 [#18]:'30.04.2011' на это ошибку сам компилятор выдает, 30/04/201 и 30042011 запрос проходит но остается пустая таблица, думаю он не как дату проверяет, а просто как тест, единственное на вот это "30.04.2011" пишет другое ошибка SQL несоответствие типов данных, а так запрос если не по дате то работает. |  
|   | min@y™ (статус: Доктор наук), 30 апреля 2011, 18:46 [#19]: Цитата (dimka): '30.04.2011' на это ошибку сам компилятор выдает Я ж сказал, телепатор оключен за неуплату! Когда ж вы, чайники, @#$%$, поймёте, что самое важное в ошибке, которую выдал комплятор, - ЭТО ТЕКСТ ОШИБКИ, #%^$%^%^&*$$!!!! Или ты думаешь, что я даже без телепатора догадаюсь???!!!!
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | dimka (статус: Посетитель), 30 апреля 2011, 18:57 [#20]:Извиняюсь, вот это он пишет на одинарных кавычках в комптляторе [Error] Unit1.pas(169): Missing operator or semicolon
 [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
 На "30.04.2011" ошибка SQL " Несоответствие типов данных в выражении условия отбора "
 на все остальные " Дата содержит синтаксическую ошибку в выражении запроса "D_TRANS=#30.04.2011#" "
 |  Страницы: [1] [2] [Следующая »]  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |