Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
28.01.2004, 10:48
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
Win2000, MySQL version 4.0.12-max-nt, ODBC driver 3.51, Delphi 6.0 Использую в Delphi связку TUpdateSQL->TDataSetProvider->TClientDataSet->TDataSource->TDBEdit. TUpdateSQL->ModifySQL = "update tabz set dataz = :data_Zakaz, where id = :OLD_id" Ввожу дату в TBEdit (тип поля в MySQL - date, дата вводится в формате 01.01.2004) и при выполнении функции TClientDataSet.ApplyUpdates(0) вылетает ошибка "Project raised exeption class EDBEngineError with message 'Operation not applicable.'. Process stopped. Use Step or Run to continue." и дальше еще одну "Project raised exeption class EDBEngineError with message 'Unable to find record. No key specified'. Process stopped. Use Step or Run to continue.". Дальше в TClientDataSet дата меняется но на сервере в таблице дата остается прежней. При update поле с другим типом данных, кроме date и datetime проблем не возникает. В BDE->Configuration->Drivers->ODBC->MySQL ODBC 3.51 Driver->LANGDRIVER = "Pdox ANSI Cyrillic", BDE->Configuration->System->Formats->Date->SEPARETOR = ".", BDE->Configuration->System->Formats->Date->MODE = 0. Перепробовал уже все варианты, что мог, но дату так и не могу что вставить что заапдейтить. Помогите пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2004, 12:17
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
Ну хоть кто-нибудь, что - нибудь ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2004, 12:25
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
Чичас - освобожусь... mahoune ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2004, 12:31
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
mahoune спасибо и то легче стало :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2004, 13:04
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
Может попробовть так: TUpdateSQL->ModifySQL = "update tabz set dataz = ' :data_Zakaz ' , where id = :OLD_id" Добавить апострофы? mahoune ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2004, 13:11
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
Может попробовть так: TUpdateSQL->ModifySQL = "update tabz set dataz = ':data_Zakaz', where id = :OLD_id" Добавить апострофы? дает ошибку синтаксиса Нет я так думаю ошибка в формате данных (кто-то из них его не понимает, скорее всего сам сервер), но где указать этот формат, чтобы он пришел в согласованность? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2004, 13:31
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
Что мы имеем из доки по MySQL: DATE A date. The supported range is '1000-01-01' to '9999-12-31'. MySQL displays DATE values in 'YYYY-MM-DD' format, but allows you to assign values to DATE columns using either strings or numbers. See section 11.2.2 The DATETIME, DATE, and TIMESTAMP Types . Так что попробуй представить данные в формате: YYYY-MM-DD mahoune ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2004, 13:54
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
а могу я как-то переворачивать в запросе ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2004, 14:02
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
Надо попробовать через переменную. Конвертнуть DATE в CHAR(10) поменять местами и запихнуть в таблицу... или даже: Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2004, 15:05
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
не спасает, та же ошибка, еще есть варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2004, 16:07
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
а для теста попробуй так "update tabz set dataz = '01/01/2004 00:00:00' , А это кто такой ? запятая всмусле where id = :OLD_id" ____ ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2004, 16:59
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
JibSkeart запятой ошибся я малехо, ненужна она , а остальное счас потестирую ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2004, 17:15
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
а для теста попробуй так "update tabz set dataz = '01/01/2004 00:00:00' , А это кто такой ? запятая всмусле where id = :OLD_id" попробовал - на сервер записал '20-01-2001' , токо пробовал я '01-01-2004' у меня тип date ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2004, 18:41
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
больше нету вариантов ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.01.2004, 10:24
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
А ты попробуй в текстовое поле а не в поле даты вставить передаваемое значение - посмотрим какое оно приходит на MySQL. mahoune ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.01.2004, 17:10
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
Пытаюсь делать "update tabz set data_text = :data_Zakaz where id = :OLD_id" где data_text varchar(100), все равно ошибка та же, а если "update tabz set data_text = :data_text where id = :OLD_id" проходит без ошибок и текст апдейтит в таблице :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.01.2004, 17:23
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
пытаюсь в форме указать '2004.01.01' пишет <is not a valid date>,что за баги такие? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.01.2004, 17:51
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
mahoune ты где занят? А то я вспотел уже над этим багом :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.01.2004, 18:48
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
елы-палы скачал myodbc-2.50.39-nt и с ним все нормально, или я дурак али лыжи не едут. Зачем же ламать то что раньше работало, может я ODBC че-то не так сделал? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.01.2004, 23:21
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
Это ошибка точно не MySQL. Может ODBC а может и нет. Тип DATE используется для величин с информацией только о дате, без части, содержащей время. MySQL извлекает и выводит величины DATE в формате 'YYYY-MM-DD'. Поддерживается диапазон величин от '1000-01-01' до '9999-12-31'. Недопустимые значения величин DATETIME, DATE или TIMESTAMP преобразуются в значение ``ноль'' соответствующего типа величин ('0000-00-00 00:00:00', '0000-00-00', или 00000000000000). http://www.mysql.com/doc/ru/DATETIME.html Судя по документации, даже если на сервер пришли неверные данные, он не выдаст ошибки. Просто запишет в базу нулевые значения. Ошибка где то между Delphi и ODBC. А вообще, MySQL и ODBC это неправильное решение. Даже dbExpress лучше при всей его глюкавости. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.01.2004, 09:52
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
Это ошибка точно не MySQL. Может ODBC а может и нет. Э то я понял, я не понял лишь почему со старой версией ODBC все заработало, а с новой нет, может я при настройке Алиаса чет-то недоуказал :( , или это баг новой версии ODBC. Тогда плохо - че же я обновляться теперь не смогу. А вообще, MySQL и ODBC это неправильное решение. Даже dbExpress лучше при всей его глюкавости. Над этим я подумаю, хотя проэкт уже практически полностью готов (много переделывать прийдется). А окромя dbExpress есть че-то еще чтоб не платное было ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.01.2004, 11:30
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
dbExpress - он же платный для MySQL, а ничего free-ного нету? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.01.2004, 13:34
|
|||
---|---|---|---|
|
|||
Проблемы с датой MySQL + Delphi |
|||
#18+
Я тоже вначале мучился с такой фигней. Но потом просто написал функцию на Делфи, которая переводит дату в формат yyyy-mm-dd и в запросы уже подставлял дату в таком формате. Может у кого есть более красивое решение - подскажите, буду очень признателен. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.01.2004, 14:00
|
|||
---|---|---|---|
Проблемы с датой MySQL + Delphi |
|||
#18+
dbExpress - он же платный для MySQL, а ничего free-ного нету? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.02.2004, 01:10
|
|||
---|---|---|---|
|
|||
Проблемы с датой MySQL + Delphi |
|||
#18+
На самом деле в делфи есть стандартная функция которая приводит дату к тому виду который вам нужен в текстовом формате например: {Unit SysUtils} var myDate : TDate; strDate : String; ..... strDate:=FormatDateTime('yyyy-mm-dd',myDate); ..... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=47&mobile=1&tid=1855431]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
others: | 312ms |
total: | 471ms |
0 / 0 |