|
Вопрос # 5 243/ вопрос открыт / |
|
Приветствую, уважаемые эксперты! нужно сделать запрос на выборку данных базы Access по текущей дате, все дело в том что Delphi я в принципе не знаю, я только подключил базу, думаю запрос на кнопку поставить, а как запрос по текущей дате сделать, подскажите использую
DBGrid
DataSource
ADOConnection
ADOQuery
вот примерный код запроса
Приложение: Переключить в обычный режим- procedure TForm1.Button1Click(Sender: TObject);
- begin
- try
- ADOQuery1.SQL.Clear;
- ADOQuery1.SQL.Add('SELECT * FROM AUTO ???? ');
- ADOQuery1.Active:=True;
- except
- on e:Exception do
- end;
- 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™ (статус: Доктор наук), 30 апреля 2011, 19:07 [#21]:
Понятно. Всё дело в том, что в паскале строки ограничиваются апострофами: 'строка символов'. Чтобы вставить апостроф в строку, его нужно указывать дважды: 'апостроф тут --->''' , либо явно указать его код символа: 'апостроф тут --->'#39'<-- апостроф тут' .
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
dimka (статус: Посетитель), 30 апреля 2011, 19:25 [#22]:
Если я правильно понял то должно быть так ADOQuery1.SQL.Add('SELECT * FROM AUTO WHERE dt=''30.04.2011''');
Он компилируется но выдает ошибку SQL "Несоответствие типов данных в выражении условия отбора"
|
|
dimka (статус: Посетитель), 30 апреля 2011, 19:27 [#23]:
тут dt=''30.04.2011'''); не кавычки о по два апострофа
|
|
min@y™ (статус: Доктор наук), 30 апреля 2011, 19:31 [#24]:
ADOQuery1.SQL.Add('SELECT * FROM AUTO WHERE dt=''30.04.2011''');
Как же ты мне надоел...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 30 апреля 2011, 19:32 [#25]:
Чтоб не путаться в количествах апострофов, используй код #39.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
dimka (статус: Посетитель), 30 апреля 2011, 19:36 [#26]:
Спасибо!
|
|
min@y™ (статус: Доктор наук), 30 апреля 2011, 19:40 [#27]:
Цитата (dimka):
Спасибо!
Чо, помогло?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
dimka (статус: Посетитель), 30 апреля 2011, 19:48 [#28]:
Да запрос проходит, большое спасибо, извиняюсь за свою неграмотность!
|
|
min@y™ (статус: Доктор наук), 30 апреля 2011, 20:10 [#29]:
Цитата (dimka):
извиняюсь за свою неграмотность!
Боюсь, что это только начало...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
dimka (статус: Посетитель), 1 мая 2011, 13:23 [#30]:
Здравствуйте еще раз! Переделал запрос на текущую дату, так все работает:
procedure TForm1.Button11Click(Sender: TObject);
begin
try
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM AUTO WHERE dt = ');
ADOQuery1.Parameters.ParamByName('D ').Value := Date; ADOQuery1.Open;
except
on e:Exception do
end;
end;
Подскажите, а как сделать что бы в запрос подставлялась дата заданная с клавиатуры?
|
|
dimka (статус: Посетитель), 1 мая 2011, 16:05 [#31]:
Не подскажете как запретить редактирование таблицы нажатием кнопки думал чето типа этого
DBGrid1.Options(dgEditing)=false;
но это не работает
|
|
min@y™ (статус: Доктор наук), 1 мая 2011, 16:30 [#32]:
Цитата (dimka):
Подскажите, а как сделать что бы в запрос подставлялась дата заданная с клавиатуры?
Я ж тебе сказал, какими компонентами пользоваться.
Цитата (dimka):
Не подскажете как запретить редактирование таблицы нажатием кнопки думал чето типа этого DBGrid1.Options(dgEditing)=false; но это не работает
Сам-то понял, что написал? TDBGrid.Options - это множество.
Я предупреждал, что это только начало. Если не шаришь в delphi, не берись писать сложные вещи. На данном этапе тебе придётся изучить паскалевские множества.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
dimka (статус: Посетитель), 1 мая 2011, 16:34 [#33]:
Да спасибо все разобрался вот это работает:
DBGrid1.Options := DBGrid1.Options - [dgEditing];
Все уже закончил лабораторную, все работает спасибо!
|
|
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™ (статус: Доктор наук), 1 мая 2011, 16:39 [#35]:
Интересно, а ты понимаешь, что у тебя делает этот кусок кода? 
except
on e:Exception do
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 1 мая 2011, 16:40 [#36]:
Цитата (dimka):
Да спасибо все разобрался вот это работает: DBGrid1.Options := DBGrid1.Options - [dgEditing];
А почему в следующем посте вместо минуса стоит плюс?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
dimka (статус: Посетитель), 1 мая 2011, 16:47 [#37]:
Понятия не имею что это за кусок кода, я в Deplhi четвертый день только разбираюсь, в другом + это мне надо было что бы если выборка по заданной дате была, то запретить редактирование, а если по текущей то редактировать можно, дату ввожу через Edit, не знаю может и не правильно, но блин все работает как и хотелось
|
|
min@y™ (статус: Доктор наук), 1 мая 2011, 16:56 [#38]:
Цитата (dimka):
Понятия не имею что это за кусок кода, я в Deplhi четвертый день только разбираюсь
Я ФШОКЕ!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Страницы: [« Предыдущая] [1] [2]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|