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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2011, 16:18   #1
vladislav_m
Пользователь
 
Регистрация: 29.03.2011
Сообщений: 62
По умолчанию sql запрос

добрый день..

подскажите как грамотно сделать, ятоб в запрос попадала дата из DBDateTimeEditeh?

пишу так..

Код:
Adoquery1.Active;
Adoquery1.SQL.Text := 'SELECT [ID_Номера]  FROM   [Бронирование] WHERE [Дата бронирования] = ' + 'DBDAteTimeEditeh1.Text';
Adoquery1.Open;
vladislav_m вне форума Ответить с цитированием
Старый 24.04.2011, 17:51   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

категорически рекомендую в данном случае использовать параметрический запрос. И дату передавать в качестве параметра.

да, кстати, у Вас бред написан... т.к.:
1) Active - это свойство типа boolean
2) когда меняешь запрос, Query должно быть (желательно) в состоянии Active := false;
3) Adoquery1.Active := false; тоже самое, что Adoquery1.Close;
Adoquery1.Active := true тоже самое, что Adoquery1.Open;

Последний раз редактировалось Serge_Bliznykov; 24.04.2011 в 17:54.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.04.2011, 18:00   #3
vladislav_m
Пользователь
 
Регистрация: 29.03.2011
Сообщений: 62
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
категорически рекомендую в данном случае использовать параметрический запрос. И дату передавать в качестве параметра.

да, кстати, у Вас бред написан... т.к.:
1) Active - это свойство типа boolean
2) когда меняешь запрос, Query должно быть (желательно) в состоянии Active := false;
3) Adoquery1.Active := false; тоже самое, что Adoquery1.Close;
Adoquery1.Active := true тоже самое, что Adoquery1.Open;
ну новичку свойственно допускать ошибки))

немного модернизировал свой запрос

Код:

Adoquery1.Close;
Adoquery1.SQL.Text := 'SELECT [ID_Номера]  FROM   [Бронирование] WHERE [Дата бронирования]= :pDate1';
Adoquery1.Parameters.ParamByName('pDate1').Value:=DBdateTimeEditeh1.DateTimeFormat;
Adoquery1.Open;
выскакивает "приложение использует для текущей операции значение неверного т%so438па"
vladislav_m вне форума Ответить с цитированием
Старый 24.04.2011, 18:09   #4
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

присоединяюсь к совету...
только учти что тут дата выглядит как mm/dd/yyyy, т.е месяц/день/год и в запросе дату нужно заключить в # #

Код:
   var
      y, m, d : Word ;
      dt : String ;
begin
   DecodeDate(StrToDate(DBDAteTimeEditeh1.Text), y, m, d);
   dt := IntToStr(m) + '/' + IntToStr(d) + '/' + IntToStr(y) ;
   AdoQuery1.Close ;
   AdoQuery1.SQL.Text := 'SELECT [ID_Номера]  FROM   [Бронирование] WHERE [Дата бронирования] = ''' + dt + '''' ;
   AdoQuery1.Open;
end;
Gulik вне форума Ответить с цитированием
Старый 24.04.2011, 18:20   #5
vladislav_m
Пользователь
 
Регистрация: 29.03.2011
Сообщений: 62
По умолчанию

спасиб, ребята, за помощь и советы.. решил банально просто))

Код:
Adoquery1.Parameters.ParamByName('pDate1').Value:=DBdateTimeEditeh1.DateTimeFormat;
за место DATETimeFormat поставил .text .. в настройках DBDATEtimeediteh поставил формат MM.DD.YYYY. и заработало)
vladislav_m вне форума Ответить с цитированием
Старый 24.04.2011, 20:03   #6
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Зря: DateTimeFormat используется для визуализации. Передавайте в параметр значение DBdateTimeEditeh1.DateTime и проблем не будет вовсе, в нужный для БД формат всё будет преобразовано автоматически
ReportCube вне форума Ответить с цитированием
Старый 24.04.2011, 20:55   #7
vladislav_m
Пользователь
 
Регистрация: 29.03.2011
Сообщений: 62
По умолчанию

Цитата:
Сообщение от ReportCube Посмотреть сообщение
Зря: DateTimeFormat используется для визуализации. Передавайте в параметр значение DBdateTimeEditeh1.DateTime и проблем не будет вовсе, в нужный для БД формат всё будет преобразовано автоматически
да я бы рад) но времени нет всеми эти мелочами заниматься.. мне главное чтоб работало)
vladislav_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
sql запрос viperrr БД в Delphi 1 04.06.2009 22:48
SQL-запрос Dissonance БД в Delphi 5 17.06.2008 07:11
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15