C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
из таблици конвертация даты в текстовый вид
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

Вернуться в Работа с базами данных в C++Builder