powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Неверное отображение значения
47 сообщений из 47, показаны все 2 страниц
Неверное отображение значения
    #39552073
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. Подскажите, пожалуйста, как правильным образом отображать значение поля типа datetime в гриде, я в свойстве Displayformat поля ставлю dd.mm.yyyy hh:MM:ss, при работе приложения всё отображает правильно, но при входе в режим редактирования поля, значение отображается в каком-то непонятном виде, если установить Editmask, то тоже показывается ввод по маске, а мне хотелось, чтобы при переходе в этот режим корректно отображалась дата и время. Заранее спасибо.
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552084
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968чтобы при переходе в этот режим корректно отображалась дата и время
А сейчас как отображается?
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552090
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И какие компоненты используются (что за грид)?
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552094
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при отображении 09.11.2017 14:06:50 - это правильно,
а при входе в редактирование становится 2017-11-09 14:06:50 14:06:50 (почему-то время дважды) и формат даты сменился
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552273
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сравни DisplayFormat и EditFormat у "проблемного" поля.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552312
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У поля ADOQuery, также как и у Columns[i] грида нет такого свойства как EditFormat
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552322
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Компонент dbgrideh
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552339
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13.11.2017 15:43, patrick1968 пишет:
> нет такого свойства как EditFormat

ну значит EditMask, или что-то подобное.
чЮдес на свете не бывает.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552384
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там у dbgrideh вообще-то DateEdit-контрол должен появляться с выбором из календаря (а не обычное текстовое поле с вводом по маске). Может тип колонки неправильно определился в датасете? Надо щелкнуть по датасету, выбрать Fields, выбрать нужное поле (если нет, то добавить в список все поля через add all fields), после чего посмотреть класс у поля -- он должен быть TDateField быть.

Вот так:
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552389
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в EditMask вписать шаблон даты, то при в ходе в редактирование вместо даты я вижу 10.__.__, но это также не интересно, может шаблон какой другой долженн быть а не !99.99.00;1;_
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552408
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удали колонку (Column) из грида и добавь заново.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552449
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что только не перепробовал - бесполезно
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552484
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чудес не бывает. Выкладывай архив с проектом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552492
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблемы с форматом даты надо решать на уровне SQL-запроса, а не приложения.
Надо в SQL-запросе установить нужный формат функцией DATEFORMAT (или подобной - не
знаю какой диалект SQL используется в БД, но в любом есть функция форматирования даты)...
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552495
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968при входе в редактирование становится 2017-11-09 14:06:50 14:06:50
в настройках системы небось такой формат впилил. Проверь.
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552662
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не думаю, что запрос здесь как-то влияет, вот его вид:

SET DATEFORMAT dmy;

SELECT sh.ShiftID, CAST(sh.OutTime as DATETIME) OutTime, sh.CarID, c.RegNum, sh.OutDriverID,
(d.FirstName + ' ' + SUBSTRING(d.LastName, 1,1) + '.' + SUBSTRING(d.SecondName, 1, 1) + '.') as OutDriverName, sh.OutUser, u.USERNAME as OUTUSERNAME,
sh.OutRun, CAST(sh.InTime as DATETIME) InTime, sh.InDriverID,(d1.FirstName + ' ' + SUBSTRING(d1.LastName, 1,1) + '.' + SUBSTRING(d1.SecondName, 1, 1) + '.') as InDriverName,
sh.InRun, sh.InUser, u1.USERNAME as INUSERNAME, sh.ShiftCash, sh.CashUser, u2.USERNAME as CASHUSERNAME, sh.ShiftOnBoard
FROM dbo.Shifts sh left outer join dbo.Cars c on (c.CarID = sh.CarID)
left outer join dbo.Drivers d on (d.DriverID = sh.OutDriverID)
left outer join dbo.Drivers d1 on (d1.DriverID = sh.InDriverID)
left outer join dbo.USERS u on (u.USERID = sh.OutUser)
left outer join dbo.USERS u1 on (u1.USERID = sh.InUser)
left outer join dbo.USERS u2 on (u2.USERID = sh.CashUser
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552669
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iПроблемы с форматом даты надо решать на уровне SQL-запроса, а не приложения.
Надо в SQL-запросе установить нужный форматОга, конечно. А на клиенте конечно же выкусывать дату из строки.
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552674
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968SET DATEFORMAT dmy;

SELECT sh.ShiftID, CAST(sh.OutTime as DATETIME) OutTime
OutTime - строковое поле в формате dmy? Прикольно. Но проблема, скорей всего, всетаки в системном формате даты на клиенте, как kdv уже писал.
Если проверишь его и ничего не заметишь необычного - смени на другой, и посмотри на результат.
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552686
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему это строковое поле? CAST(sh.OutTime as DATETIME) OutTime, просто если в запросе написать sh.OutTime, то при открытии ADOQuery будет ошибка, в связи с этим и приходится таким образом извращаться (поле типа datetime еще раз преобразовывать в datetime), хотя в данном запросе set dateformat никак не влияет, он так остался с предыдущего запроса
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552694
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а настройки формата на клиенте самые обыкновенные, вот

Модератор: Вложение удалено.
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552743
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968> если в запросе написать sh.OutTime, то при открытии ADOQuery будет ошибка

Текст ошибки какой ?

Проверь на новом (чистом) проекте -
увидишь, что всё работает правильно.
И скриншоты научись прикладывать
правильно (обрезать лишнее).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552762
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас уже точный текст ошибки не воспроизведу, но что-то вроде "Неверный тип поля, ожидался widestring а в реалиях datetime"после того как в запросе вместо поля поставил преобразование CAST ошибка исчезла
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552767
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем вспоминать, когда можно убрать cast и проверить?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552821
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968Сейчас уже точный текст ошибки не воспроизведу, но что-то вроде "Неверный тип поля, ожидался widestring а в реалиях datetime"после того как в запросе вместо поля поставил преобразование CAST ошибка исчезлаЭто потому, что поле на форме оформлено как TDateTimeField, а в базе оно - строка.
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552934
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iПроблемы с форматом даты надо решать на уровне SQL-запроса, а не приложения.Что за чушь? А в приложении вызывать StrToDateTime если опять понадобится дата?
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552969
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_d7iПроблемы с форматом даты надо решать на уровне SQL-запроса, а не приложения.Что за чушь? А в приложении вызывать StrToDateTime если опять понадобится дата?
Да, именно так.
В БД дата хранится в формате даты. При выдаче преобразовывается в строку.
В приложении делайте с ней что угодно, при записи в БД опять преобразовываете в строку...
И нет никаких проблем.
Потому что формат даты (числовой) в БД совсем не обязательно совпадает с таковым
в приложении (в т.ч. и в самой ОС).
Поэтому прием-передачу даты в БД надо делать в строковом формате.
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552972
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7i> В БД дата хранится в формате даты.
d7i> ... при записи в БД опять преобразовываете в строку...
d7i> Поэтому прием-передачу даты в БД надо делать в строковом формате.

Жесть какая-то...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39552974
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7i...формат даты (числовой) в БД совсем не обязательно совпадает с таковым
в приложении (в т.ч. и в самой ОС)...
А должен совпадать?
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553025
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустамd7i> В БД дата хранится в формате даты.
d7i> ... при записи в БД опять преобразовываете в строку...
d7i> Поэтому прием-передачу даты в БД надо делать в строковом формате.

Жесть какая-то...

Никакая не жесть...
Я 20 лет работаю с SQL-базами и не имею никаких проблем с датами,
используя данный принцип.
А в приложении надо немного ручками и головой поработать, а не просто тащить в проект
чужие компоненты и потом удивляться что там что-то странно работает.
Есть проблемы с календарем - напиши свой.
Календарь (DatePicker) использую самописный и не имею с ним никаких проблем.

P.S. Впрочем я не дельфист, а работаю на С++...
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553029
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
14.11.2017 18:43, d7i пишет:
> Я 20 лет работаю с SQL-базами и не имею никаких проблем с датами

дай угодаю, МыСКЛ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553031
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iПри выдаче преобразовывается в строку.
В приложении делайте с ней что угодно, при записи в БД опять преобразовываете в строку...
И нет никаких проблем.
Счастливые люди. Проблем не имеют. И, главное, работы не боятся. Труд - дело благородное. Да и любой владелец облэнерго тебе спасибо скажет за сжигание лишней электроэнергии при конвертации сюда-туда-туда-сюда-сюда-туда-сюда-туда (извиняюсь, если какую-то итерацию упустил) полей DATETIME каждой записи. Всем хорошо.
Жаль, так трудиться на благо всем не для меня - мне лень.
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553036
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Справедливости ради надо сказать, что тот же SQLite даты в виде строк хранит в базе, а потом на лету преобразует из строки в реальную дату и обратно. Самая популярная база данных в мире, в т.ч. поголовно на смартфонах используется. И никто не жалуется на производительность.
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553039
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
14.11.2017 18:52, JaDi пишет:
> Справедливости ради надо сказать, что тот же SQLite даты в виде строк хранит в базе

он вообще ВСЁ хранит в виде строк.
ибо govno ist.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553043
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDi...SQLite даты в виде строк хранит в базе, а потом на лету преобразует из строки в реальную дату и обратно...
Кто-кто на лету преобразует? :)
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553045
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий14.11.2017 18:43, d7i пишет:
> Я 20 лет работаю с SQL-базами и не имею никаких проблем с датами

дай угодаю, МыСКЛ?


Не угадал.
WATCOM, SyBase.
Предки MSSQL, кстати...
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553049
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
14.11.2017 18:59, d7i пишет:

> Не угадал.
> WATCOM

не знаю такой СУБД
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553050
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiСправедливости ради надо сказать, что тот же SQLite даты в виде строк хранит в базе, а потом на лету преобразует из строки в реальную дату и обратно. Самая популярная база данных в мире
DBF тоже даты в виде строк хранил, если память не изменяет.
И тоже "самой популярной базой данных в мире" был
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553051
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
14.11.2017 19:06, YuRock пишет:
> DBF тоже даты в виде строк хранил, если память не изменяет.

он изначально вообще ВСЁ так хранил.
это уже гораздо позжеЕ, в эпоху ВижуалФоксПро ввели нативные типы.
но от поддержки старого формата не отказались и поныне.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553052
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7i...Я 20 лет работаю с SQL-базами...
...
P.S. Впрочем я не дельфист, а работаю на С++...

20 лет назад никакого Watcom уже не было... шел бы ты ... Страуструпа читать...
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553073
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7i> Я 20 лет работаю с SQL-базами и не имею никаких проблем с датами, используя данный принцип.

Я ж говорю - жесть... Просто ради интереса - я всё правильно
понял - Вы в запросе делаете cast(sstringdatefield as datetime)?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553079
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамПросто ради интереса - я всё правильно понялЯ так понял, что он делает наоборот
d7iВ БД дата хранится в формате даты. При выдаче преобразовывается в строку.
Код: sql
1.
DATE_FORMAT(DateTimeField, '%Y-%m-%d %H:%i:%s')
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553082
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
14.11.2017 18:59, d7i пишет:

> WATCOM, SyBase.
> Предки MSSQL, кстати...

И давно это Watcom стал предком M$SQL ;) ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553085
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_> В БД дата хранится в формате даты. При выдаче преобразовывается в строку.

А, ну да. AsString туда, и cast(field as varchar) (или Format) оттуда. 20 лет...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553092
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам20 лет...20 тысяч МегаВатт...
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553097
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДJaDi...SQLite даты в виде строк хранит в базе, а потом на лету преобразует из строки в реальную дату и обратно...
Кто-кто на лету преобразует? :)
Библиотека, работающая с базой. Конечный разработчик их, конечно, в виде дат видит.
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553100
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim200014.11.2017 18:59, d7i пишет:

> WATCOM, SyBase.
> Предки MSSQL, кстати...

И давно это Watcom стал предком M$SQL ;) ?


Ну, не прямые, но крестные точно.

WATCOM - SyBase
-----------------------
Initially created by Watcom as Watcom SQL.
Version 3: 1992
Watcom acquired by Powersoft in 1993; Watcom SQL shipped with their visual programming environment PowerBuilder
Version 4: 1994 (Stored procedures, triggers)
PowerSoft and Sybase merged in 1995: Watcom SQL was renamed SQL Anywhere.
Version 5: 1995 (SQL Remote data replication; graphical administration tools)
Version 6: 1998. Renamed Adaptive Server Anywhere. (multi-processor support, Java objects in the database)
.....
Исторически первым и самым известным продуктом Sybase является реляционная СУБД SQL Server, впоследствии получившая наименование Adaptive Server Enterprise.

Выпущенный в 1988 году продукт SQL Server 1.0 был создан совместно с Microsoft и Ashton-Tate (англ.) для платформы OS/2, на основе кодов Sybase SQL Server для Unix и VAX/VMS. Ashton-Tate после поглощения компанией Borland в 1991 году прекратила сотрудничество, а Sybase и Microsoft совместно выпускали новые версии продукта, реализуя их, соответственно, под именами Sybase SQL Server и Microsoft SQL Server.

Sybase и Microsoft в 1996 году приняли решение прекратить совместное развитие продукта, и самостоятельно развивать каждый свою ветку. Таким образом, появились две различных СУБД с общим наследием в виде процедурного языка Transact-SQL и архитектуры обработки данных: Sybase Adaptive Server Enterprise и Microsoft SQL Server.
----------------------------------------
Итого: WATCOM сделал WATCOM SQL - SyBase выкупил и переименовал в SQL Anywhere 5.0 (кстати, в файле БД SyBase
SQL Anywhere 5.5 так и осталась подпись Copyright (c) 1987, 1994 WATCOM International Corp.). Затем вел с Microsoft
совместную разработку (используя наработки WATCOM), что впоследствие превратилось в Sybase Adaptive Server Enterprise и Microsoft SQL Server...

Такая вот история.
...
Рейтинг: 0 / 0
Неверное отображение значения
    #39553128
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
14.11.2017 20:21, d7i пишет:

> Ну, не прямые, но крестные точно.

Максимум - соседи по лестничной клетке. А историю можно было не писать,
я её и так прекрасно знаю ;).

> International Corp.). Затем вел с Microsoft
> совместную разработку (используя наработки WATCOM), что впоследствие
> превратилось в Sybase Adaptive Server Enterprise и Microsoft SQL Server...

А вот это глупость. ASE/MSSQL - это совсем другой продукт, исторически
никак не связанный с SA. Собственно, это прекрасно заметно, если хоть
немного поработать с ними обоими...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
47 сообщений из 47, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Неверное отображение значения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]