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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2015, 11:25   #11
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Цитата:
в функции TIBXSQLVAR.GetAsDateTime на месте миллисекунд стоит 0!
TIBXSQLVAR.SetAsDateTime
что то как то странно
lomastr_ вне форума Ответить с цитированием
Старый 03.04.2015, 09:56   #12
Gregor
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 208
По умолчанию

А вы посмотрите исходник
интенсивно гуглю прежде чем задать вопрос
Gregor вне форума Ответить с цитированием
Старый 03.04.2015, 10:54   #13
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

какой исходник?
вы говорите проблема в гет а правите сет, и как такое понимать?
lomastr_ вне форума Ответить с цитированием
Старый 03.04.2015, 11:28   #14
Gregor
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 208
По умолчанию

IBSQL.pas . Я не говорю что проблема в Get или в Set конкретно, я говорю что миллисекунды не учитываются.
вот кусок из файла

Код:
SQL_TIMESTAMP: begin
        FGDSLibrary.isc_decode_date(PISC_QUAD(FXSQLVAR.sqldata), @tm_date);
        try
          result := EncodeDate(Word(tm_date.tm_year + 1900), Word(tm_date.tm_mon + 1),
                              Word(tm_date.tm_mday));
          if result >= 0 then
            result := result + EncodeTime(Word(tm_date.tm_hour), Word(tm_date.tm_min),
                                          Word(tm_date.tm_sec), 0)
          else
            result := result - EncodeTime(Word(tm_date.tm_hour), Word(tm_date.tm_min),
                                          Word(tm_date.tm_sec), 0)
        except
          on E: EConvertError do begin
            IBError(ibxeInvalidDataConversion, [nil]);
          end;
        end;
      end;
      else
        IBError(ibxeInvalidDataConversion, [nil]);
    end;
Соответственно в Set заполняется структурв в которой отсуттствуют миллисек.

Если у вас другое решение, с удовольствием посмотрю на него
интенсивно гуглю прежде чем задать вопрос

Последний раз редактировалось Stilet; 03.04.2015 в 11:53.
Gregor вне форума Ответить с цитированием
Старый 03.04.2015, 11:54   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
другое решение, с удовольствием посмотрю на него
Строкой передавать... Не лучшее решение, но раз компонент так прикалывается...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.04.2015, 12:02   #16
Gregor
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 208
По умолчанию

строкой? а ежели формат даты на сервере не совпадет с тем который вы передаете строкой?
интенсивно гуглю прежде чем задать вопрос
Gregor вне форума Ответить с цитированием
Старый 03.04.2015, 12:34   #17
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Цитата:
SQL_TIMESTAMP
а это что?
у меня нет возможности посмотреть исходники, но предлагал попробовать Value, или посмотреть где и почему не учитывают
если строкой то формируйте по формату исо
lomastr_ вне форума Ответить с цитированием
Старый 03.04.2015, 12:46   #18
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

tm_date: TCTimeStructure

в этой структуре не предусмотрены милисекунды, а конвертирование из неё идет. Халтурщики
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.04.2015, 13:22   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а ежели формат даты на сервере не совпадет с тем который вы передаете строкой?
Ну да. Есть такая печалька. Но вот видишь и так ни "так" и этак плохо.
Цитата:
или посмотреть где и почему не учитывают
Что, по прежнему внимательность чтения темы откладывается в пользу флуда без причины?
Цитата:
Халтурщики
Может в ранних IB не было миллисекунд? может это для совместимости оставили?
Кстати я когда-то для Оракла дату-вермя записывал как Double. Тоже были сложности с временем (но другие), а так проканывало.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дата и время с точностью до миллисекунды alexchromets Общие вопросы по Java, Java SE, Kotlin 4 11.02.2013 11:46
Вывод текущего времени формата H:M:S:MS, где MS - миллисекунды Gypsy Помощь студентам 5 13.01.2010 18:05