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

Вниз

Замена даты в табл.Paradox   Найти похожие ветки 

 
z_olga_al ©   (2003-02-22 09:31) [0]

Братья по разуму!
Пожалуйста помогите! Есть таблица Paradox, а в ней поле "Date" в формате
принятом в России (**.**.1991); (**.**.1992); Уважаемые мастера,
как составить SQL-запрос или программку, Чтобы программно заменить большое количество
данных соответственно с 1901 на 2001; с 1902 на 2002 ( проблема в том,
что эта таблица создавалась давно и на старой доброй двойке когда еще не существовала проблемма 2000г.)
Ольга.


 
Романов Р.В. ©   (2003-02-22 10:20) [1]

Как заменить запросом не знаю. Можно пройти по всем записям и заменить нужные.


// Table1 - TTable привязанное к нужной таблице.
// Код не проверял. Могут быть ошибки.
var
d, d1: TDate;
begin
d := EncodeDate(1920, 1, 1);
with Table1 do
begin
if Active and CanModify then
while not Eof do
begin
d1 := FiedByName("Date").AsDateTime;
if d1 < d then
begin
Edit;
FiedByName("Date").AsDateTime := IncMonth(d1, 12 * 100);
Post;
end;
Next;
end;
end;
end;


 
Anatoly Podgoretsky ©   (2003-02-22 10:43) [2]

Она категарически против навигационных методов.


 
Романов Р.В. ©   (2003-02-22 10:44) [3]

Забыл написать. Перед началом цикла нужно переместить курсор на первую запись методом First


 
z_olga_al ©   (2003-02-22 12:05) [4]

Спасибо Роман! Все чудненько работает.
Заменила все даты. Но почему-то чтобы заменить
2002 нужно вводить на год больше т.е.2003.
А так все ОК! Еще раз с праздником


 
Anatoly Podgoretsky ©   (2003-02-22 12:50) [5]

Ну раз ты согласилась, то вот тебе РАБОТАЮЩАЯ процедура


// Table1 - TTable привязанное к нужной таблице.
// Таблица должна быть открыта и пуска поле называется DateX
procedure Form1.Button1Click(Sender: TObject);
const
MaxYearToConvert = 1930;
var
d, m, y: Word;
begin
while not Table1.Eof do begin
DecodeDate(Table1DATEX.Value, y, m, d);
if (y <= MaxYearToConvert) and (y > 0) then begin
Table1.Edit;
Table1DATEX.Value := EncodeDate(y+100, m, d);
Table1.Post;
end;
Table1.Next;
end;
end;
end;


Вот эта будет работать без ошибки с годом.



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

Текущий архив: 2003.03.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
14-39470
han_malign
2003-02-27 12:00
2003.03.13
Как снова научить Win98 гасить компютер при выходе???


1-39354
АндрейБ
2003-03-01 17:02
2003.03.13
QuickReport: ширина страницы


1-39319
Michael Elagin
2003-02-28 22:24
2003.03.13
Свойства TOleContaner


9-39147
DrDmitrij
2002-10-15 12:26
2003.03.13
Логика игры Арканоид


7-39616
SPIRIT
2002-12-26 00:25
2003.03.13
Ещё один вопрос про создание виртуального CD-ROM а