![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
формат DateTime в MySQL5 и в Delphi5.5. [D5, MySQL]
Chery © (2004-11-26 19:28:00)Что-то не сопоставляются форматы DateTime в MySQL5 и в Delphi5.5.
Там где использую DateTime не идет транзакция, как только убираю DateTime - все нормально.
Chery (2004-12-02 13:53:00) [1]Значит Вы с таким не сталкивались?
В БД MySQL, в ячейки (поля) формата DateTime, Date, TimeStamp не могу вставить данные с Делфы. Ошибки не выдает. Как мне хотя бы отловить эту "непонятку" ?
sniknik (2004-11-30 20:38:00) [2]ну так научись правильно оперировать, а то ведь не понять тебя.
Chery (2004-11-30 16:59:00) [3]Хорошо, не правильно оперирую понятиями. Но проблема осталась.
Anatoly Podgoretsky (2004-11-30 14:56:00) [4]Что-то не сопоставляются форматы DateTime в MySQL5 и в Delphi5.5.
А никак они и сопостовлять не могут, поскольку такого продукта, как Delphi5.5 просто не существует в природе.
Chery (2004-11-30 14:16:00) [5]Ошибки не выдает, все нормально, тока не записывается в базу. Я подключаюсь к БД в Access (анологичная БД) - все работает. Я думал, может что-то с MySQL - ничего не могу понять, может у кого-то подобное было уже.
sniknik (2004-11-30 12:21:00) [6]вот так должно работать, эта (!!! только эта) строчка правильная.
но подозреваю у тебя и оно не работает, судя по некоторым признакам (очень уж после ответа "да так", напрашивается фраза "а вот и нет, так тоже не хочет", зачем этот вопрос нужен вместо проверки), но раз так то виноват в этом уже другой код. (!!!)
вообше непонятно что и как ты делаеш, зачем к примеру инсерт в BeforePost ([8]), какая связь, какие компоненты, зачем ClientDataSet и сервер(упоминалось), трехзвенка? но тогда где его код и структура? и почему нет провайдера данных в списке используемого.
неясностей много, а ты даже сообщение об ошибке не приводиш ("Нет, не хочет так:" это извини еще один бред, кто не хочет? чего не хочет? кого? и почему?)...
еще раз, возми книгу по базам, почитай (хотя бы для того чтобы вопросы осмыссленно задавать).
Chery (2004-11-30 11:37:00) [7]clPrikaz_Student.FieldByName('Dte_Prikaza').AsDateTime:=Now;
А так?
sniknik (2004-11-30 11:11:00) [8]11 деленное на 11 и деленное на 2004... с чего бы ему хотеть? (кстати вполне легальная дата будет гдето в районе 30.12.1899 0:00:43)
я же ясно написал "переменная DateTime"а не то что ты под этим желаеш видеть (то строку, то бред какойто), не находиш что надо бы книжек почитать? по основам хотябы.
Chery (2004-11-30 10:30:00) [9]Нет, не хочет так:
clPrikaz_Student.FieldByName('Dte_Prikaza').AsDateTime:= 11/11/2004;
sniknik (2004-11-29 20:55:00) [10]> Хорошо, дело не в типах
именно в типах... и очень плохо что их не различаеш, строку с датой путаеш.
> Я уже пробывал с ГГГГ-ММ-ДД. Разницы никакой.
забудь про ГГГГ-ММ-ДД и про ММ-ДД-ГГГГ и про .... остальное того же плана... плана (? хм. ну если только план хороший ;о)))
> Не работает (не добавляет), но когда в BeforePost пишу
> clPrikaz_Student.FieldByName('Dte_Prikaza').AsVariant:=Null;
> То работает. Формат поля даты в базе DATETIME.
раз так работает то и так должно
clPrikaz_Student.FieldByName('Dte_Prikaza').AsDate[Time]:= переменная DateTime;
Chery (2004-11-29 18:52:00) [11]Хорошо, дело не в типах. Дело в том почему у меня не апдейтится?
Я уже пробывал с ГГГГ-ММ-ДД. Разницы никакой.
Вобщем вот:
ДБГрид, DataSource1, ClientDataSet1.
После Пост делаю апдейт: clPrikaz_Student.ApplyUpdates(-1);
На сервере вставляю:
insert into Prikaz_Student
(Kod_Stud, N_Prikaza, Dte_Prikaza, Kod_Prikaza)
values
(:Kod_Stud, :N_Prikaza, :Dte_Prikaza, :Kod_Prikaza)
Не работает (не добавляет), но когда в BeforePost пишу
clPrikaz_Student.FieldByName('Dte_Prikaza').AsVariant:=Null;
То работает. Формат поля даты в базе DATETIME. СУБД: MySQL5, драйвер MyODBC-3.51.10.
sniknik (2004-11-29 13:59:00) [12]> А мне надо дата, только в формате ГГГГ-ММ-ДД.
ктото просто бредит...
неужели нельзя посмотреть исходный тип дататайма? и какой такой у него формат задаваемый строкой? люди!!! ну попытайтась понять, число это не строка у него нет формата! есть только форма представления/преобразования (из той же строки). не можете понять ну хоть поверьте на слово, не врут же вам.
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1101467614&n=1
какой формат у числа 1000000 например?
а если я его задам строкой?
так 1 000 000 или так 1000000.00 или так 1.000.000,00 или еще както, ну число то от этого не изменится...
или вы о том в каком типе представлено? тогда другое дело double от extended отличаются (если не было переопределения типов), но речь о количестве байт в типе а не о формате! (минусов или точек между байтами нет!!! верьте мне)
Chery (2004-11-29 13:19:00) [13]FormatDateTime - возвращает Стринг. А мне надо дата, только в формате ГГГГ-ММ-ДД.
Chery (2004-11-29 12:24:00) [14]Артем1,
Пробовал явно задать (ГГГГ-ММ-ДД):
clPrikaz_Student.FieldByName('Dte_Prikaza').AsVariant:='2004.01.11';
Но тоже самое - не апдейтит.
И второй вопрос: Можно ли средствами Делфи перевести дату в Unix timestamp (удобный для МуСКЛ и ПХП формат)? Может я так решу этот трабл.
Chery (2004-11-29 11:52:00) [15]Я задаю в Делфи дату (дд.мм.гггг) и сохраняю ее в базу МуСКЛ, ApplyUpdates(-1); На сервере:
insert into Prikaz_Student
(Kod_Stud, N_Prikaza, Dte_Prikaza, Kod_Prikaza)
values
(:Kod_Stud, :N_Prikaza, :Dte_Prikaza, :Kod_Prikaza)
И из-за даты не апдейтит. Формат даты в базе DATETIME.
Chery (2004-11-29 10:28:00) [16]Ага, спасибо. А как в Делфи перевисти Дату в 32-битное целое число в виде Unix timestamp.
Term (2004-11-28 19:42:00) [17]ты дату в запрос через параметры передаеШ??? тогда никаких проблем не должно быть,
> нужно использовате преобразование дат, с пом функций форматдате
> или датеформат, преобразование даты в строку...
а это если ты дату пишеш в самом запросе тогда да иначе будут вылетать эксэпшэны
Артем1 (2004-11-28 12:24:00) [18]в МайсСкл дата хранится в формате ГГГГ-ММ-ДД, а в Д по умолчанию ДД-ММ-ГГГГ, нужно использовате преобразование дат, с пом функций форматдате или датеформат, преобразование даты в строку...