Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 243

/ вопрос открыт /

Приветствую, уважаемые эксперты! нужно сделать запрос на выборку данных базы Access по текущей дате, все дело в том что Delphi я в принципе не знаю, я только подключил базу, думаю запрос на кнопку поставить, а как запрос по текущей дате сделать, подскажите использую
DBGrid
DataSource
ADOConnection
ADOQuery

вот примерный код запроса

Приложение:
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3. try
  4. ADOQuery1.SQL.Clear;
  5. ADOQuery1.SQL.Add('SELECT * FROM AUTO ???? ');
  6. ADOQuery1.Active:=True;
  7. except
  8. on e:Exception do
  9. end;
  10. end;


dimka Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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™

min@y™ (статус: Доктор наук), 30 апреля 2011, 19:07 [#21]:

Понятно. Всё дело в том, что в паскале строки ограничиваются апострофами: 'строка символов'. Чтобы вставить апостроф в строку, его нужно указывать дважды:
'апостроф тут --->'''
, либо явно указать его код символа:
'апостроф тут --->'#39'<-- апостроф тут'
.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
dimka

dimka (статус: Посетитель), 30 апреля 2011, 19:25 [#22]:

Если я правильно понял то должно быть так ADOQuery1.SQL.Add('SELECT * FROM AUTO WHERE dt=''30.04.2011''');
Он компилируется но выдает ошибку SQL "Несоответствие типов данных в выражении условия отбора"
dimka

dimka (статус: Посетитель), 30 апреля 2011, 19:27 [#23]:

тут dt=''30.04.2011'''); не кавычки о по два апострофа
min@y™

min@y™ (статус: Доктор наук), 30 апреля 2011, 19:31 [#24]:

ADOQuery1.SQL.Add('SELECT * FROM AUTO WHERE dt=''30.04.2011''');
Как же ты мне надоел...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 30 апреля 2011, 19:32 [#25]:

Чтоб не путаться в количествах апострофов, используй код #39.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
dimka

dimka (статус: Посетитель), 30 апреля 2011, 19:36 [#26]:

Спасибо!
min@y™

min@y™ (статус: Доктор наук), 30 апреля 2011, 19:40 [#27]:

Цитата (dimka):

Спасибо!

Чо, помогло?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
dimka

dimka (статус: Посетитель), 30 апреля 2011, 19:48 [#28]:

Да запрос проходит, большое спасибо, извиняюсь за свою неграмотность!
min@y™

min@y™ (статус: Доктор наук), 30 апреля 2011, 20:10 [#29]:

Цитата (dimka):

извиняюсь за свою неграмотность!

Боюсь, что это только начало... :(
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
dimka

dimka (статус: Посетитель), 1 мая 2011, 13:23 [#30]:

Здравствуйте еще раз! Переделал запрос на текущую дату, так все работает:

procedure TForm1.Button11Click(Sender: TObject);
begin
try
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM AUTO WHERE dt = :D');
ADOQuery1.Parameters.ParamByName('D ').Value := Date; ADOQuery1.Open;
except
on e:Exception do
end;
end;

Подскажите, а как сделать что бы в запрос подставлялась дата заданная с клавиатуры?
dimka

dimka (статус: Посетитель), 1 мая 2011, 16:05 [#31]:

Не подскажете как запретить редактирование таблицы нажатием кнопки думал чето типа этого
DBGrid1.Options(dgEditing)=false;
но это не работает
min@y™

min@y™ (статус: Доктор наук), 1 мая 2011, 16:30 [#32]:

Цитата (dimka):

Подскажите, а как сделать что бы в запрос подставлялась дата заданная с клавиатуры?

Я ж тебе сказал, какими компонентами пользоваться.

Цитата (dimka):

Не подскажете как запретить редактирование таблицы нажатием кнопки думал чето типа этого DBGrid1.Options(dgEditing)=false; но это не работает

Сам-то понял, что написал? TDBGrid.Options - это множество.
Я предупреждал, что это только начало. Если не шаришь в delphi, не берись писать сложные вещи. На данном этапе тебе придётся изучить паскалевские множества.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
dimka

dimka (статус: Посетитель), 1 мая 2011, 16:34 [#33]:

Да спасибо все разобрался вот это работает:
DBGrid1.Options := DBGrid1.Options - [dgEditing];
Все уже закончил лабораторную, все работает спасибо!
dimka

dimka (статус: Посетитель), 1 мая 2011, 16:37 [#34]:

Кстати запрос на текущую дату, вот рабочий вариант:

procedure TForm1.Button3Click(Sender: TObject);
begin
try
DBGrid1.Options := DBGrid1.Options + [dgEditing];
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM AUTO WHERE D_TRANS= : D');
ADOQuery1.Parameters.ParamByName('D').Value := Date;
ADOQuery1.Open;
except
on e:Exception do
end;
end;
min@y™

min@y™ (статус: Доктор наук), 1 мая 2011, 16:39 [#35]:

Интересно, а ты понимаешь, что у тебя делает этот кусок кода? :)
except
  on e:Exception do
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 1 мая 2011, 16:40 [#36]:

Цитата (dimka):

Да спасибо все разобрался вот это работает: DBGrid1.Options := DBGrid1.Options - [dgEditing];

А почему в следующем посте вместо минуса стоит плюс?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
dimka

dimka (статус: Посетитель), 1 мая 2011, 16:47 [#37]:

Понятия не имею что это за кусок кода, я в Deplhi четвертый день только разбираюсь, в другом + это мне надо было что бы если выборка по заданной дате была, то запретить редактирование, а если по текущей то редактировать можно, дату ввожу через Edit, не знаю может и не правильно, но блин все работает как и хотелось
min@y™

min@y™ (статус: Доктор наук), 1 мая 2011, 16:56 [#38]:

Цитата (dimka):

Понятия не имею что это за кусок кода, я в Deplhi четвертый день только разбираюсь

Я ФШОКЕ!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Страницы: [« Предыдущая] [1] [2]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 26 апреля 2026, 00:12
Выполнено за 0.03 сек.