ururu_23 |
Отправлено: 04.02.2005, 02:36 |
|
Не зарегистрирован
|
доброго времени суток народ.
Подскажите плиз.
у меня есть база делаю я вот приблизительно что:
Table1->First();
while (! Table1->Eof) // пока не конец базы
{ // если в поле Num_home дынные равны kvar
if (Table1->FieldByName("Num_home")->AsString == kvar)
{ то переменной data присвоить текущую дату из поля Date
data=Table1->FieldByName("Date")->AsFloat;
Form1->Label1->Caption = data; //вывести на экран
}
Table1->Next();
}
//Form1->Label1->Caption = temp;
Table1->First();
вот меня и инстересует какого типа нужно сделать переменную
data и какое окончание мне написать
data=Table1->FieldByName("Date")->As?????????;
принимаются любые варианты.
Заранее благодарен.
|
|
olegenty |
Отправлено: 04.02.2005, 07:54 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
TDateTime, TDate или TTime
получится что-то типа:
CODE |
TDateTime d = Table->FieldByName("DATE")->AsDateTime;
DateLabel->Caption = DateToStr(d);
// или DateLabel->Caption = FormatDateTime("строка форматирования", d);
|
|
|
AVC |
Отправлено: 04.02.2005, 09:47 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE | принимаются любые варианты |
Более изощренный вариант.
Храним в базе в поле формата double (или integer если нужны только дни) разницу между нужной и реперной (для borland это 31.12.1899) датами. Читаем AsFloat в конструктор TDateTame с учетом разницы реперных дат (вашей и borland).
TDateTime mydate = TDateTime(...Field->AsFloat);
А если серьезно, то в каждой СУБД есть специальный описатель поля Date, DateTime, Time .... Снабдить таблицу полем такого типа и дальше как писано olegenty |
|