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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2011, 16:46   #1
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
Вопрос FB перестал принимать даты - пишет не может конвертировать формат

Добрый день!
Задача довольно простая - в программе пользователь может выбрать дату (Date), а может пропустить и не указать дату (Null).
Затем нужно послать в БД команду на исполнение хранимой процедуры с параметрами заданными пользователем, в том числе с этой датой.
Проблема такая - если в программе для переменной хранящей дату выставляю тип данных Date - всё работает, но нельзя передать пустое значение Null..
Тк Null необходим для функции очистки поля в БД, тип переменной делаю Variant - Null передаётся нормально, а вот Дата - ошибка см.скрин.
В БД хранимые процедуры принимающие поля имеют тип Date.
Пробовал StrToDate и VarToDateTime - ошибки.
Подскажите, пожалуйста, как решить баг?
Изображения
Тип файла: jpg date_type_sql.jpg (41.3 Кб, 96 просмотров)

Последний раз редактировалось delphicoding; 14.10.2011 в 16:50.
delphicoding вне форума Ответить с цитированием
Старый 15.10.2011, 09:52   #2
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

А как вообще должна выглядеть дата при входе в FB ???
delphicoding вне форума Ответить с цитированием
Старый 15.10.2011, 10:19   #3
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

Вообщем она имеет вид 'ДД.ММ.ГГГГ' но не как у вас на скрике
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 15.10.2011, 10:44   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Проблема такая - если в программе для переменной хранящей дату выставляю тип данных Date - всё работает, но нельзя передать пустое значение Null..
Ну почему же можно, но надо знать какими компонентами вы пользуетесь.
Код:
ADOQuery.ParamByname('dt').Value:=NULL;
Query.Parambyname('dt').clear;
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 15.10.2011, 11:55   #5
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

В Dataset можно записать NULL, с этим проблемы нет. Но увы нельзя передать NULL внутри Delphi через "var D:Date", тк Delphi не умеет работать с Date=null.
То есть чтобы из одного окна данные передать в другую форму в процедуру изменения "SetSettings(edDateField.Date); ", в этой форме объявлять приходится SetSettings(D:Variant), чтобы Delphi не ругался в случае пустого значения.
В общем это очень тупо со стороны Delphi не уметь работать с Null для всех переменных кроме Variant.
delphicoding вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
конвертировать дату в формат MySql NZero Общие вопросы .NET 3 24.12.2010 17:07
Как можно конвертировать цвет Delphi в формат цвета VC++ и VBasic flug Общие вопросы Delphi 1 30.11.2010 17:48
Перестал работать плеер. Что может быть? infrared Софт 3 29.03.2010 13:01
SendMessage - какие значения может принимать второй параметр? TwiX Win Api 1 29.07.2009 03:39
Недопустимый формат файла - перестал открываться файл!? runny Microsoft Office Excel 5 09.01.2009 12:42