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

Вниз

Замена даты в табл.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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
7-39609
Mike-Keeper
2003-01-19 11:42
2003.03.13
Программирование видеокамеры


1-39365
aade
2003-03-02 15:30
2003.03.13
Добавление в меню


14-39543
ЮРИЙ_К
2003-02-26 12:06
2003.03.13
Контролировать добавление файлов на диск


14-39567
stone
2003-02-25 15:58
2003.03.13
Отношение простых американцев к войне в Ираке.


3-39168
Digester
2003-02-20 20:17
2003.03.13
Как вставить(удалить новую запись в DBGRID?(dbgrid связанс table)





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