Главная страница
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.028 c
14-39072
Knight
2004-01-20 21:24
2004.02.13
Прокладка постоянной локалки..


1-38795
михаил
2004-02-02 00:23
2004.02.13
цикл в обьекте


3-38719
alekst
2004-01-22 10:54
2004.02.13
выполнение Запроса


14-39036
otido
2004-01-24 22:26
2004.02.13
ПОмогите пожалуйста, проблема со свичом и сетевухой 3Сом((


7-39113
RealRascal
2003-11-29 22:27
2004.02.13
Звук определенной частоты