Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.13;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.009 c
1-38917
Denis_Ac
2004-02-04 07:25
2004.02.13
Абстрактные классы


14-39073
DelphiN!
2004-01-24 12:48
2004.02.13
Деньги за банеры


1-38861
Женя
2004-02-02 00:16
2004.02.13
Проблемы с TFont и TFontDialog


7-39108
Cosinus
2003-11-26 18:42
2004.02.13
Защита от монитора портов


3-38722
Крутыш
2004-01-25 12:40
2004.02.13
Счётчик в Access обнулить





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский