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

Вниз

даты в БД   Найти похожие ветки 

 
Vitalik   (2004-01-24 16:38) [0]

Здравствуйте!

В моей программе пользователю предлагается ввести в простой TEdit дату в формате dd.mm.yyyy
Далее мне нужно эту дату сохранить в БД. Делаю я это примерно так:

begin
ADOQuery.SQL.ADD("UPDATE MyBase SET");
ADOQuery.SQL.ADD(
format("InDate = %f",
[StrTodateTime(Edit1.Text)])
);
***
ADOQuery.ExecSQL;
end;

Проблема в том, что в БД вместо этой даты оказывается дата на два дня позже.
Почему это происходит и как это устранить?
P.S. Тип данных столбца для хранения дат - DateTime.
P.P.S У меня в программе эти два дня точно нигде не прибавляются...

Спасибо!


 
DCoder   (2004-01-24 16:58) [1]

Возможно чудит "format";
Используй не TEdit для ввода даты, а более надежный (с точки зрения ошибок пользователя) TDateTimePicker;
Время, как я вижу, тут вообще не используется, значит откажись от него
Напиши подругому:
ADOQuery.SQL.ADD("UPDATE MyBase SET InDate=");
ADOQuery.SQL.ADD(DateToStr(DateTimePicker.Date));
ADOQuery.SQL.ADD("where ...");

***
ADOQuery.ExecSQL;


 
Vitalik   (2004-01-24 17:05) [2]

DateTimePicker у меня нету возможности использовать.
Вообще-то я использую даже и не TEdit для ввода даты... Запись даты у меня происходит на событии OnEdited в TTreeView (ну уж если быть до конца честным, то в TVirtualStringTree). В этом событии я могу просто узнать текст того Node, которое только что изменили и сохранить в БД.


 
Vitalik   (2004-01-24 17:08) [3]

То есть я хочу сказать, что у меня вообще-то нету необходимости переводить дату в строку. Да и вообще, если я сделаю что-то типа

ADOQuery.SQL.ADD("UPDATE MyBase SET InDate=");
ADOQuery.SQL.ADD(Node.text);
ADOQuery.SQL.ADD("where ...");

то там совсем левая дата сохраниться...


 
Desdechado   (2004-01-24 17:37) [4]

переводить дату в строку - не гуд, разные сервера по-разному ожидают формат даты, лучше используй параметры
SQL.Text := "update mybase set indate = :P1";
Params[ 0 ].AsDate := ...
ExecSQL;



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

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

Наверх





Память: 0.45 MB
Время: 0.012 c
14-38997
kaif
2004-01-27 03:26
2004.02.13
Фолио-WinСклад


1-38882
Sergioly
2004-02-04 15:58
2004.02.13
Передача данных из Win в Dos-программу


3-38743
DelphiNew
2004-01-21 13:50
2004.02.13
список таблиц


1-38767
V-A-V
2004-02-05 09:07
2004.02.13
Дата и время создания и модификации файла


14-39000
Тимохов
2004-01-22 16:45
2004.02.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский