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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2013, 19:04   #1
Kamuist
Пользователь
 
Аватар для Kamuist
 
Регистрация: 15.05.2009
Сообщений: 18
По умолчанию Проблема с датой и с ADOquery

Доброго времени суток всем, написал прогу...ну как почти написал
И так с начала....База на SQL Server 2008 R2 прога соответвенно на delphi 7
столкнулся с проблемой региональных настроек тобишь в sql дата в виде yyyy-MM-dd в DatatimePicker в виде dd-MM-yyyy вроде как бы написал процедурку чтоб дата переводилась нужный пикеру формат но это глупый Brute Force т.е.

Код:
var a:string;
a:=DBGrid1.Fields[2].AsVariant;
a:=a[9] + a[10] + '.' + a[6] + a[7] + '.' + a[1] + a[2] + a[3] +a[4];
DateTimePicker1.Date:=strToDate (a);
в добавок такая фигня работает только в одну сторону, при изменении записи в таблице дата записывается в формате dd-MM-yyyy, соответственно если я захочу опять изменить запись при получении даты выходит ошибка плюс это работает на время сессии после завершения программы даты в sql опять становятся в виде yyyy-MM-dd
я понимаю что нужна функция перевода даты, но с помощью гуглежки так и не понял как её написать

Вторая проблема при написании проги использовал ADOTable для связи с Grid на событие DBGrid1CellClick написал получение данных из таблицы в edit-ы Picker-ы и DBLookUpCmBobox-ы после чего начал наводить так сказать марафет, ставить ADOquery написал запрос что бы все красиво выглядело с псевдонимами с фамилиями вместо id-шников и эта схема перестала работать, значения получаю только из первой строки на которую тыкну после чего значения не меняются

на работе есть sql сервер тоже 2008 ток не r2 попробовал там создать новый проект на тестовой виртуалке с бекапом рабочей базы, вытащил тада грид adoquery написал такую же процедуру получения данных и там все работает и дата в грид получается сразу в формате dd-MM-yyyy хотя ничего про дату не писал....
все дальше я в ступоре
очень прошу объяснить что я не так делаю, указать верный путь...
p.s. я новичок не судите строго)
Kamuist вне форума Ответить с цитированием
Старый 01.04.2013, 19:23   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Обратите внимание вот на это свойство датапикера:
Изображения
Тип файла: jpg DTP.JPG (37.7 Кб, 82 просмотров)
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 01.04.2013, 19:26   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вообще с датой-временем нет ни каких проблем. Что на SQL-сервере в типе DateTime, что в делфи в типе TDateTime формат хранения одинаков - число с плавающей точкой, целая часть порядковый номер дня, дробная время в милисекундах. То, на что вы бочку катите, всего лишь формат отображения-ввода. И в TSQL и в дельфи есть куча возможностей для отображения даты в удобном виде
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.04.2013, 19:34   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

А вообще говоря, формат даты между ее представлением внутри БД и ее представлением снаружи (в визуальном компоненте формы) должен без всяких дополнительных процедур преобразовываться. Ради интереса только что проверил на акцессе - СУБД понимает, что дата в виде "01.04.2013" - это то же самое, что "2013.04.01" внутри таблицы.

И кстати говоря, в панели управления проверьте "Язык и региональные стандарты" - какой там формат даты? Вполне себе возможно, что это система наводит тень на плетень
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 01.04.2013, 19:48   #5
Kamuist
Пользователь
 
Аватар для Kamuist
 
Регистрация: 15.05.2009
Сообщений: 18
По умолчанию

если не использовать ни каких процедур то выдает вот это

Код:
DateTimePicker1.DateTime:=dm.Sotr.Fields[2].AsDateTime;
регионнальные стд стоит русский dd-MM-yyyy

Последний раз редактировалось Kamuist; 01.04.2013 в 19:51.
Kamuist вне форума Ответить с цитированием
Старый 01.04.2013, 19:55   #6
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

А так если?

Код:
DateTimePicker1.DateTime:=dm.Sotr.Fields[2].value;
ПыСы. Для добавления картинки в пост перейдите кнопкой в расширенный режим сообщения и вверху найдите скрепку "Управление вложениями".
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 01.04.2013, 20:23   #7
Kamuist
Пользователь
 
Аватар для Kamuist
 
Регистрация: 15.05.2009
Сообщений: 18
По умолчанию

если так
Код:
DateTimePicker1.DateTime:=dm.Sotr.Fields[2].value;
то:
Изображения
Тип файла: jpg 123.jpg (35.9 Кб, 76 просмотров)
Kamuist вне форума Ответить с цитированием
Старый 01.04.2013, 20:39   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Какой тип поля в базе?
eval вне форума Ответить с цитированием
Старый 02.04.2013, 06:11   #9
Kamuist
Пользователь
 
Аватар для Kamuist
 
Регистрация: 15.05.2009
Сообщений: 18
По умолчанию

ааааааааа пасаны да этож капец как все просто было прям перед носом, в базе тип даты стоял Date поставил DateTime и все заработало
Kamuist вне форума Ответить с цитированием
Старый 02.04.2013, 06:15   #10
Kamuist
Пользователь
 
Аватар для Kamuist
 
Регистрация: 15.05.2009
Сообщений: 18
По умолчанию

а как быть с Query? не подскажите?
Kamuist вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с датой ZaramothРещьфкфя Visual C++ 0 19.09.2012 07:37
VB 6.0 проблема с временем и датой Vovka91 Помощь студентам 5 19.12.2011 06:24
Проблема с Датой в Excel Vitjajj Microsoft Office Excel 9 07.07.2011 22:56
отсутствует взаимосвязь между датой поступления товара и датой отгрузки Forget Microsoft Office Access 0 13.02.2011 14:10
Проблема с датой и временем Amen PHP 8 17.10.2009 22:11