Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
MS Access

Как правильно передать значение даты в SQL ? (используя ADOQuery)

13.10.2023, 10:29. Показов 1383. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть переменная myDate:TDateTime ;
Хочу получить текущую дату и время
myDate:=StrToDateTime(formatdatetime('dd/mm/yy hh:mm:ss',now()));

В запросе хочу одно значение передать параметром,а другое(время) передать сразу.
Delphi
1
2
3
4
t:=  'INSERT INTO SensorValues(CharacteristicTemperature,Time) VALUES(:varCharacteristicTemperature,' + DateToStr(myDate) + ')';
ADOQuery1.SQL.Text:=t;
ADOQuery1.Parameters.ParamByName('varCharacteristicTemperature').Value := Str;
ADOQuery1.ExecSQL;
пробовала и второй параметр передавать
Delphi
1
ADOQuery1.Parameters.ParamByName('varTime').DataType:=myDate;
понимаю,что типы данных не сходятся.

Поэтому, как правильно сделать?

в первом варианте, скорее всего не так передается время. Может необходимо еще #?


Пробую так:


Delphi
1
2
3
4
5
t:=  'INSERT INTO SensorValues(CharacteristicTemperature,Time) VALUES(:varCharacteristicTemperature,:varTime)';
ADOQuery1.SQL.Text:=t;
ADOQuery1.Parameters.ParamByName('varCharacteristicTemperature').Value := Str;
ADOQuery1.Parameters.ParamByName('varTime').Value:=DateToStr(myDate);
ADOQuery1.ExecSQL;
Ошибка синтаксиса.
мне надо дополнительно кавычки сделать??
Миниатюры
Как правильно передать значение даты в SQL ? (используя ADOQuery)  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.10.2023, 10:29
Ответы с готовыми решениями:

Как можно передать значение начальной даты и конечной даты из JS
Здравствуйте уважаемые! Нужна Ваша помощь, никак не могу разобраться. Есть .aspx страница где формируется JqGrid таблица в зависимости от...

Формат даты в SQL-запросе (компонент ADOQuery)
Помогите разобраться! Есть таблица в Access, одно из полей которой имеет тип "дата". Как сделать выборку записей по временному...

Как передать значение даты в БД
Здравствуйте, у меня такой вопрос, как можно передать дату из этого поля: <p><big>Дата рождения:</big></p> ...

8
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
13.10.2023, 12:04  [ТС]
Ребята,супер!)
Я придумала лазейку)
В таблице БД сделаю значение по умолчанию)
0
Модератор
 Аватар для D1973
9916 / 6453 / 2455
Регистрация: 21.01.2014
Сообщений: 27,389
Записей в блоге: 3
13.10.2023, 12:57
Цитата Сообщение от OdinNastya Посмотреть сообщение
Хочу получить текущую дату и время
myDate:=StrToDateTime(formatdatetime('dd/mm/yy hh:mm:ss',now()));

Delphi
1
myDate := Now;
Добавлено через 2 минуты
А вообще DateTime в Access передаются каким-то перректальным методом - в обрамлении #
0
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
13.10.2023, 13:09  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
в обрамлении #
буду знать,спасибо
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,659
Записей в блоге: 21
13.10.2023, 13:26
возвращаемся к теме параметров
и надо ли для них помнить, как в аксессе формируется дата и ставить ли перед ней решетку ?
0
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
13.10.2023, 14:37  [ТС]
krapotkin, Вообще, если мы используем дату в запросе VBA, то дату должны перевести в строку.
Visual Basic
1
2
3
4
' преобразовывает дату в строку символов #....#
Public Function FdateStr(par As Date) As String
    FdateStr = "#" & DatePart("m", par) & "/" & DatePart("d", par) & "/" & DatePart("yyyy", par) & "#"
End Function
Код этот рабочий 100%
0
 Аватар для Beltar
823 / 438 / 38
Регистрация: 05.05.2022
Сообщений: 3,010
13.10.2023, 16:14
То же самое в Delphi может выглядеть примерно так:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
FSAcc:=FS;
FSAcc.ShortDateFormat:='mm/dd/yyyy';
FSAcc.LongDateFormat:='mm/dd/yyyy';
FSAcc.DateSeparator:='/';
 
procedure TDM.SetMainFilter(T1, T2: TDateTime; const Tb:String; Q:TFDQuery);
var S:String;
begin
if TMode.Server then //БД MS SQL Server
  S:='Select * From '+Tb+
    ' Where Время Between '''+DateTimeToStr(T1,FS)+''' and '''+DateTimeToStr(T2,FS)+''''
    else   S:='Select * From '+TB+' Where Время Between #'+ // БД Access
      DateTimeToStr(T1,FSAcc)+'# and #'+DateTimeToStr(T2,FSAcc)+'#';
S:=S+' Order By Время ';
OpenFDQuery(Q,S);
end;
Так смысл параметров в том, чтобы не переводить. Есть драйвер к конкретной БД, он знает, как там все оформлять. Т. е. с параметрами я, по идее, смогу написать эту конструкцию без if'а и настроек преобразования.

Delphi
1
2
3
4
5
  S:='Select * From '+Tb+
    ' Where Время Between :T1 and :T2 '+
  ' Order By Время ';
Q.ParamByName('T1').Value:=T1;
Q.ParamByName('T2').Value:=T2;
Но я упертый, и у меня написано так, как написано. Да и код из-за телег присвоения параметров получается не короче.
0
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
14.10.2023, 15:06  [ТС]
Beltar, лично мне интересно, а Delphi не умер?
Мы изучали С/С++. Те, кто изучал Delphi, говорили, что преподы им говорили, что никто не пишет на нем. А я как поняла у вас много проектов на этом языке.
0
 Аватар для Beltar
823 / 438 / 38
Регистрация: 05.05.2022
Сообщений: 3,010
14.10.2023, 17:51
Я не знаю ни одного человека, который пишет на Java. Жаба мертва. Да и на Питоне тоже, точнее одного, но он неадекватен. Я тогда на питоновский форум пришел, интересоваться инструментарием для изучения, пока просматривал наткнулся на одну тему, где некая особа после питона открыла для себя волшебный C++ Builder, в котором, оказывается, можно UI делать по щелчку, этот неадекват наехал на нее, что надо не компоненты на форму кидать, а программы писать. Стало смешно. Потом он и на меня так же наехал.

Тут, на самом деле, очень серьезный вывод, почему я считаю, что обучение программированию надо начинать либо с Delphi, либо с MS Visual Studio, например, на C#, просто человеку сразу демонстрируются весьма универсальные системы, в которых можно и за часик, а то и минуты накидать простейшее приложение с удобным UI, так и делать что-то архисложное. И все это из коробки, а не "собери конструктор, что просто Hello World написать".

Последняя версия Delphi 11.3 выпущена в феврале этого года, 12-ая в бете. Каждый год новая версия, а иногда 2 в год. Раз выпускают - значит покупают достаточно, чтобы развивать. Оно же сейчас под массу разных ОС позволяет разрабатывать. Кроме того, есть мнение, что для разработки под винду в плане скорости Delphi до сих пор TOP 1, профессионалы же, работавшие со сложными проектами могут найти массу примеров, где Delphi был лучше .NET, или наоборот. Есть области, где Delphi хороший выбор, есть, где не очень, или вообще не применяется.

А мне просто нравится, т. к. я пишу на чем хочу, могу себе позволить, вот приду туда, где пишут на чем-то другом, буду писать на чем там пишут. Может там будет Pure Basic. А Си-подобные языки я не люблю. Во-1, сам Си штука страшная при массе синтаксических конструкций, превращающихся в синтаксически правильные, в случае опечатки в 1 символе. Во-2, C# - это та же Delphi, только с прокладкой из .NET.

Представил, как подрались Java с Python'ом...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.10.2023, 17:51
Помогаю со студенческими работами здесь

Как передать значение из dateTimePicker в запрос sql Microsoft SQL Server
Здравствуйте! Подскажите пожалуйста,как правильно передать значения из dateTimePicker в запрос sql ? Я пока что не очень силен во всем...

Как передать значение одной даты в другую?
Здравствуйте. Существует две даты, одна хранится в значение int и переводится в дату при выводе, другая это просто дата. Первая показывает...

Как правильно передать переменную в sql запрос
function frr(){ var $tt = $('#par_cat').val(); } <?php $query1 = "SELECT * FROM `rubric` WHERE `id_rubric` = 2"; ?> ...

Как правильно преобразовать дату и передать ее в таблицу SQL?
Здравствуйте! Подскажите пожалуйста как правильно преобразовать дату и передать ее в таблицу SQL. У меня написано так: DateTime date_Time...

Как правильно передать данные из таблицы DataGridView в SQL базу данных
Здравствуйте. Есть таблица DataGridView которая содержит данный которые добавляет пользователь или загружает из файла. Как мне правильно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru