Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MS SQL 2000 Delphi 7, дата в MS SQL 2000 храниться integer 
:(
    Опции темы
Berliner
Дата 26.9.2005, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: нет
Всего: 2



Я вроде придумал выход!
думаю сделать так: с помощью dayadd приобразовать данное поле поле к нормальному "виду"(сделаю еще одну таблицу)- подскажите, а к какому виду лучше преобразовать как дату (хранить в каком виде лучше) чтобы можно было вызвать из хранимой процедуры или исполнить запрос.
PM   Вверх
Berliner
Дата 28.9.2005, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: нет
Всего: 2



Не ,такой выход нежалатедьный -создавать таблицу! Надо всетаки конвертнуть дату в нормальный вид
PM   Вверх
Vet
Дата 28.9.2005, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



Надо определить, как это число получается, если дата преобразуется в него. Тогда и проблем не будет smile
PM MAIL   Вверх
Vet
Дата 28.9.2005, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



А собственно, в чем проблема-то? Если в базе хранится количество дней, прошедших после определенной даты, то
Код

ADOQuery1.SQL.Add('Select * from Currency where DayDate = ' + IntToStr(Trunc(DateTimePicker1.Date)));

Вот он, твой integer.

Если же читаешь дату из базы как целое число, то можно ее преобразовать в нормальный вид
Код

DecodeDate(YourDataAsInteger, Year, Month, Day);

Это из DateUtils
PM MAIL   Вверх
Berliner
Дата 29.9.2005, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: нет
Всего: 2



Вот что мне выслали разработчики базы данной как это прикрутить к моему запросу?

Код

function SQLToDelphiDate(aDate: Integer): TDateTime;
begin
 Result:=aDate+2;
end;

function DelphiToSQLDate(aDate: TDateTime): longint;
begin
 Result:=Round(Int(aDate))-2;
end;



я так понял что одна функция для перекодировки даты из числа в дату а другая из даты в число

PM   Вверх
Vet
Дата 29.9.2005, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



Цитата
я так понял что одна функция для перекодировки даты из числа в дату а другая из даты в число

Правильно smile
К запросу:
Код

ADOQuery1.SQL.Add('Select * from Currency where DayDate = ' +
 IntToStr(DelphiToSQLDate(DateTimePicker1.DateTime)));


Из запроса:
Код

DateTimePicker1.DateTime := SQLToDelphiDate(ADOQuery1.Fields[0].AsInteger)

PM MAIL   Вверх
Berliner
Дата 30.9.2005, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: нет
Всего: 2



Спасибо работает!
Код

function DelphiToSQLDate(aDate: TDateTime): longint;
begin
 Result:=Round(Int(aDate))-2;
end;


Вот только не пойму смысл этого кода!
PM   Вверх
Vet
Дата 30.9.2005, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



Цитата
Вот только не пойму смысл этого кода!

Зачем прибавлять и отнимать 2 - это надо спросить у разработчиков.
А насчет функции - от переменной типа TDateTime берется целая часть, т.е. количество дней и округляется. Можно было сделать проще:
Код

function DelphiToSQLDate(aDate: TDateTime): longint;
begin
 Result := Trunc(aDate) - 2;
end;

PM MAIL   Вверх
Berliner
Дата 30.9.2005, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: нет
Всего: 2



Цитата
Зачем прибавлять и отнимать 2 - это надо спросить у разработчиков
думаю из за того с какой даты начинается отсчет времени у MS и у Борланда(там разница вроде день или два(писалось это на форуме
PM   Вверх
Vet
Дата 2.10.2005, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



Ну если ты базу используешь только в своей проге, то смысла в этих преобразованиях никакого. При записи в БД из даты вычел 2, при чтении прибавил 2. И ничего не изменилось smile
PM MAIL   Вверх
НурболКазбеков
Дата 26.10.2005, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 21.10.2005

Репутация: нет
Всего: нет



Подскажите, пожалуйста, Как в Delphi c помощью Word-а (WordDocument или WordApplication) просмотреть doc-файлы, которые хранятся в блоб-полях smile . Заранее спасибо.Если можно пример небольшой. smile
PM MAIL   Вверх
offline
Дата 26.10.2005, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: 7
Всего: 7



Цитата
Подскажите, пожалуйста, Как в Delphi c помощью Word-а (WordDocument или WordApplication) просмотреть doc-файлы, которые хранятся в блоб-полях smile . Заранее спасибо.Если можно пример небольшой. smile

http://forum.vingrad.ru/index.php?showtopic=67193&st=15
PM MAIL   Вверх
НурболКазбеков
Дата 26.10.2005, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 21.10.2005

Репутация: нет
Всего: нет



kirilllius Спасибо большое,, ты мне помог. Все отлично. smile
Но появилась еще одна проблема. Мне надо открывать вордовский документ с базы (с твоей помощью получилось), но когда я редактирую и закрываю документ, запрашивает о сохранении. Нажимаю Ок, но изменение нигде не сохраняется, ни в базе, ни в оригинале (в самом документе). smile
PM MAIL   Вверх
offline
Дата 26.10.2005, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: 7
Всего: 7



НурболКазбеков

Смотри ответ в своей теме smile

http://forum.vingrad.ru/index.php?showtopic=67193&st=15
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.