Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

Что не так ?   Найти похожие ветки 

 
gds   (2003-10-16 17:12) [0]

Ув.люди помогите решить возникшую ситуацию :

...
Form1.IBTable3Data.AsDateTime:=Date;
Form1.IBTable3Vremia.AsDateTime:=Time;
...
Form1.IBTable3.Post;
Form1.IBTransaction1.Commit;
...

Этот фрагмент программы прекрасно выполнялся в среде Делфи5 и не вызывал нареканий.. После установки Делфи6.. Form1.IBTable3Vremia.AsDateTime:=Time; начала вызывать ошибку: ["0.57895715" is not a valid TimeStamp.] .. хотя вышестоящая команда присваивания текущей даты выполняеться как и раньше, не пойму: что ж не так ему с временем? У кого есть какие идеи - буду благодарен. Дополнительная информация: ( Var IBTable3Vremia: TTimeField; Тип поля в БД - Time, БД Interbase.. Сервер БД - FireBird.. К базе обращаюсь посредством компонент IBX.) Пробовал выводить значение Label1.Caption:=TimeToStr(Time); Увидел то, что и ожидал - текущее время.. Что же не так не понимаю?


 
MsGuns   (2003-10-16 17:29) [1]

На вскидку.
Попробуй так:
Form1.IBTable3Data.AsString:=DateToStr(Date);
Form1.IBTable3Vremia.AsString:=TimeToStr(Time);


 
gds   (2003-10-16 17:31) [2]

Пробовал ) Глухо.. Ошибка таже..


 
Alex_Bredin   (2003-10-16 17:54) [3]

TDateTimeField encapsulates the fundamental behavior common to Date-time fields. Date-time fields contain combined date and time information, sometimes called timestamps. TDateTimeField introduces new properties to convert between date-time values and other data types, and to format the value of a date-time field for display.

Note: Data-time values accessed through dbExpress use TSQLTimeStampField instead of TDateTimeField

Дело по-видимому в этом.Надо приводить время к целому типу.


 
stud   (2003-10-16 17:59) [4]

а какой диалект БД. типы date time меньше по длине чем timestamp
может попробовать
Form1.IBTable3Vremia.AsTime:=Time;
а вообще лучше это делать через запросы и в запросах через параметры


 
gds   (2003-10-16 18:00) [5]

Form1.IBTable3Vremia.AsSQLTimeStamp:=DateTimeToSQLTimeStamp(Time); вызывает ту же ошибку.. к тому же обрати внимание, что Form1.IBTable3Data.AsDateTime:=Date; работает нормально без всяких преобразований.


 
stud   (2003-10-16 18:01) [6]

с датой проще округлил до целого вот тебе и дата


 
Alex_Bredin   (2003-10-16 18:04) [7]

а если gettime вместо time?


 
gds   (2003-10-16 18:05) [8]

РЕПЛИКА gds © (16.10.03 18:00)ИСПРАВЛЕНА :Form1.IBTable3Vremia.AsSQLTimeStamp:=DateTimeToSQLTimeStamp(Time); вызывает ошибку [Cannot access field "Vremia" as type SQLTimeStamp.] .. к тому же обрати внимание, что Form1.IBTable3Data.AsDateTime:=Date; работает нормально без всяких преобразований.

stud .AsTime нет такого ) - пробовал сам ) и через AsVariant AsString AsValue ))


 
gds   (2003-10-16 18:05) [9]

диалект 3


 
gds   (2003-10-16 18:07) [10]

чувствую, что надо интсалить 5ый и править в нем (((((((


 
gds   (2003-10-16 18:14) [11]

простите за ламерский вопрос,
параметры чего вписать? там их три ))
Form1.IBTable3Vremia.AsDateTime:=GetTime();


 
gds   (2003-10-16 18:16) [12]

function getTime(uColumnNumber: Word; pData: Pointer; var pbIsNull: LongBool)


 
kostik78ua   (2003-10-16 18:25) [13]

К сожалению не смогу протестировать (нету Делфи 6), но пару советов:
1. ...AsFloat := Time;
2.
var d: TDateTime;
d := Time;
...AsDateTime := d;
3.
var t: TTimeStamp;
t := DateTimeToTimeStamp(Time);
...AsDateTime := t;


 
gds   (2003-10-17 11:22) [14]

.. Это просто наваждение не дает мне покоя!! Значит так создаю таблицу в IBConsole:
CREATE TABLE "PROBA"
(
"NOPER" INTEGER NOT NULL,
"DATA" DATE,
"VREMIA" TIME,
PRIMARY KEY ("NOPER")
);

После чего обращаюсь к ней через IBTable и не могу присвоить полю VREEMIA значение времени - ничего не выходит ошибка таже ["число" is not a valid TimeStamp].. хотя в гриде связанным датасет с ИБТейбл верно отображаеться введенное мною значение.. но грид показывает что запись находиться в режиме вставки [*] и поститься ну никак не желает.. Что это такое?? ПОчему в Делфе5 ВСЕ РАБОТАЕТ, а в мною используемой 6ой не хочет .. !!! Даже таким образом: IBTable1.FieldByName("VREMIA"):=StrToTime("16:00:00"); Более того если вносить изменения прямо в гриде, оно тоже ругаеться тем же матом.. Что это за глюка? Попробуйте сами.. (Хотя из оболочки IBConsole это поле редактируеться так же прекрасно как и остальные два..)


 
gds   (2003-10-17 11:26) [15]

gds © (17.10.03 11:22) [14] ИСПРАВЛЕНО: .. Даже таким образом: IBTable1.FieldByName("VREMIA").AsDateTime:=StrToTime("16:00:00"); ...


 
kaif   (2003-10-17 12:09) [16]

А из под Delphi5 ты с Firebird работал? И все работало в IBX?
Если да, то ошибка (логически) в IBX где-то. Поставь апдейт IBX. Или пошагово попытайся найти, где это происходит в IBX-ах и почему.


 
gds   (2003-10-17 12:18) [17]

ДА под делф5 я работал с тем же сервером БД. Просто здесь дело принципа.. Не хочеться ставить делф5, чтобы дописать новую функцию.( .. говоря откровенне он по началу ругалс я и на денежные поля (при том что в 5ом все было Ок) .. но я нашел, что ему мешало.. А вот с этой проблемой никак.. и дико то, что даже стандртный грид, для работы и правки таблиц ИнтерБейса вызывает ошибку.. Это просто маразм.


 
gds   (2003-10-17 12:20) [18]

есть конечно вариант - изменить поле базы с тайм допустим на стринг.. но ведь это ж противоестественно ((( Хочеться докопаться до сути.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.034 c
3-40942
AD_infiniTUM
2003-10-17 15:36
2003.11.13
Нужны ли для ADO какие-либо библиотеки?


14-41921
kaif
2003-10-19 17:10
2003.11.13
Как грамотно писать: компонент или компонента?


14-42132
undert
2003-10-22 00:27
2003.11.13
Хамы!


14-42108
Незнайка
2003-10-23 02:04
2003.11.13
Хотел узнать термин


1-41208
Deedlit
2003-11-02 09:18
2003.11.13
Как получить имя класса компонента?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский