Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.05.2013, 07:08
Ludo Ludo вне форума
Прохожий
 
Регистрация: 14.05.2013
Сообщения: 15
Версия Delphi: Delphi 7
Репутация: 10
Сообщение Вывод даты из БД в TsDateEdit

Здравствуйте!
Есть таблица в которой есть поля dat_beg (тип date) и dat_end (тип date). Необходимо вывести их из БД в TsDateEdit.

StoredProc - это TADOStoredProc

Вот так выводит только дату, а месяц и год - остается пустым.
Код:
TsDateEdit.Text:=DataModule1.StoredProc.FieldByName('dat_end').AsString;

А так
Код:
TsDateEdit.Text:=FormatDateTime( 'dd/mm/yyyy',DataModule1.StoredProc.FieldByName('dat_beg').AsDateTime);
ошибка class EConvertError with message "2013-05-07" is not a valid date and time.
Ответить с цитированием
  #2  
Старый 22.05.2013, 10:13
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Ludo
Здравствуйте!
Есть таблица в которой есть поля dat_beg (тип date) и dat_end (тип date). Необходимо вывести их из БД в TsDateEdit.

StoredProc - это TADOStoredProc

Вот так выводит только дату, а месяц и год - остается пустым.
Код:
TsDateEdit.Text:=DataModule1.StoredProc.FieldByName('dat_end').AsString;

А так
Код:
TsDateEdit.Text:=FormatDateTime( 'dd/mm/yyyy',DataModule1.StoredProc.FieldByName('dat_beg').AsDateTime);
ошибка class EConvertError with message "2013-05-07" is not a valid date and time.
Судя по ошибке у тебя поле 'dat_beg' не является ни полем типа "Дата/Время" ни даже полем содержащим корректную "Дату/Время". Проверь у себя какого в действительности типа поле 'dat_beg'.
Кроме того не мешало бы уточнить, что такое TsDateEdit. Разве это что-то стандартное и общеизвестное?
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Ludo (22.05.2013)
  #3  
Старый 22.05.2013, 11:13
Ludo Ludo вне форума
Прохожий
 
Регистрация: 14.05.2013
Сообщения: 15
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Вывод даты из БД в TsDateEdit

У меня sDateEdit находится на вкладке AlphaAdditional и отображается как календарь.

Я использую MS SQL Server 2008 R2 для хранения данных. При создании таблицы, куда даты записываются, а в последующем извлекаются указала тип date из возможных (date, datetime, datetime2(7) и datetimeofset(7))

Что посоветуете?
Ответить с цитированием
  #4  
Старый 22.05.2013, 11:54
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Ludo
У меня sDateEdit находится на вкладке AlphaAdditional и отображается как календарь.
У себя ни в Delphi7 ни в DelphiXE2 я такой вкладки не нашёл - значит это нестандартные компоненты.

Цитата:
Сообщение от Ludo
Я использую MS SQL Server 2008 R2 для хранения данных. При создании таблицы, куда даты записываются, а в последующем извлекаются указала тип date из возможных (date, datetime, datetime2(7) и datetimeofset(7))

Что посоветуете?
Если поле действительно типа даты, то нужно делать примерно так:
Код:
  DateTimePicker1.Date:=DataModule1.StoredProc.FieldByName('dat_beg').AsDateTime;
Здесь я использовал стандартную компоненту TDateTimePicker с закладки Win32, так как ни закладки AlphaAdditional ни компонентов с этой закладки в стандартной поставке Delphi не существует и соответственно у меня их нет.
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Ludo (22.05.2013)
  #5  
Старый 22.05.2013, 12:09
Ludo Ludo вне форума
Прохожий
 
Регистрация: 14.05.2013
Сообщения: 15
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Код:
  DateTimePicker1.Date:=DataModule1.StoredProc.FieldByName('dat_beg').AsDateTime;

ошибка class EConvertError with message "2013-05-07" is not a valid date and time.

Создам новую структуру таблицы с полем даты (тип datetime). Попробую еще так
Ответить с цитированием
  #6  
Старый 22.05.2013, 12:13
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Ludo
Код:
  DateTimePicker1.Date:=DataModule1.StoredProc.FieldByName('dat_beg').AsDateTime;

ошибка class EConvertError with message "2013-05-07" is not a valid date and time.
Значит это поле не типа "дата/время", а скорее всего типа "строка".
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Ludo (22.05.2013)
  #7  
Старый 22.05.2013, 12:16
Ludo Ludo вне форума
Прохожий
 
Регистрация: 14.05.2013
Сообщения: 15
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Значит это поле не типа "дата/время", а скорее всего типа "строка".

скорее всего..
Код:
 FormMain.DEditDocUpdDatBeg.Text:=DataModule1.StoredProc.FieldByName('dat_beg').AsString;

дату я получаю, ну без месяца и года((
Ответить с цитированием
  #8  
Старый 22.05.2013, 12:29
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Ludo
скорее всего..
Код:
 FormMain.DEditDocUpdDatBeg.Text:=DataModule1.StoredProc.FieldByName('dat_beg').AsString;

дату я получаю, ну без месяца и года((
Значит нужно либо делать это поле типа "дата/время", либо "вручную" переводить строку в тип TDateTime.
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Ludo (22.05.2013)
  #9  
Старый 22.05.2013, 16:21
Ludo Ludo вне форума
Прохожий
 
Регистрация: 14.05.2013
Сообщения: 15
Версия Delphi: Delphi 7
Репутация: 10
Радость

poli-smen, это свершилось ура!

пришлось новую таблицу создать с типом поля (datetime).

Вот так вывожу в приложение

Код:
FormMain.DEditDocUpdDatBeg.Text:=FormatDateTime( 'dd/mm/yyyy',DataModule1.StoredProc.FieldByName('dat_beg').AsDateTime);

Спасибо за дельные советы и примеры!!!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:10.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter