Главная страница
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.47 MB
Время: 0.037 c
3-38741
Oleg_em
2004-01-21 13:59
2004.02.13
Активные пользователи в IB


1-38927
Merlot
2004-02-05 09:37
2004.02.13
Форма в панеле задач.


3-38702
squirrel
2004-01-22 10:53
2004.02.13
Ошибка открытия данных в IB 5.1


6-38988
lex2003
2003-12-10 13:34
2004.02.13
Помоготе с написанием веб-браузра


14-39056
lipskiy
2004-01-25 15:30
2004.02.13
Подскажите компонент