Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поле типа DATE при экспорте в ДБФ [D7, IB5.x]


Страницы:   1 2 3

Tneduts ©   (2009-07-10 13:14:00) 

У меня gdb-шная база, работаю я в Делфи7, линкуюсь к базе при помощи стандартного DATASource + FIBPlus компроненты (pFIBDatabase, pFIBDataSet, pFIBTransaction).
После прочтения параметров с инишника конектимся
Begin
With TKDatabase Do
Begin

DatabaseName := DB_Path;
ConnectParams.UserName := DB_User;
ConnectParams.Password := DB_Password;
ConnectParams.CharSet := DB_CharSet;
SQLDialect := DB_SQLDialect;
Connected := true;
End;
TKTransaction.StartTransaction;
End
Except
On E: Exception Do ShowMessage('Program stopped. Error: ' + E.Message);
End;

Теперь собственно выборка

With TKDataSet Do
Begin
If Active Then
Close;
SelectText := 'SELECT EL.NAME , EP.PTIME, EP.DIRECTION FROM EMPPUNCHES EP, EMPLIST EL WHERE ( (EL.DELETED = 0) AND ( EP.PTIME BETWEEN "' + d1 + '" AND "' + d2 + '") )';
SQLs.SelectSQL.Text := SelectText;
Open;
End;

EP.PTIME - вот это поле хранит в себе дату и время. Как мне организовать ещё одно, может временное, поле для того что бы выдёргивать отдельно время?
Примечания:
Я работаю над так сказать утилиткой для готового приложения, но моё приложение с ним ни как не связанно. Просто то не умеет выгружать в ДБФ
Базу править можно, но не желательно.


Tneduts   (2009-07-16 17:57:00) [1]


> sniknik ©   (15.07.09 19:45) [48]
> Виталий Панасенко(дом)   (15.07.09 21:37) [49]

Достаточно пустых нравоучений!
----------------------------------------------------------------------------------

Проблема решена.
Всем принявшим конструктивное участие ОГРОМНОЕ СПАСИБО!
Отдельная благодарность Loginov Dmitry ©.

Тема закрыта.


Виталий Панасенко(дом)   (2009-07-16 12:02:00) [2]


> Loginov Dmitry ©   (15.07.09 22:45) [50]

сорри, сам не туды глянул..я про дату подумал...и про время одновременно...быват..:-)


Loginov Dmitry   (2009-07-15 22:45:00) [3]

> Сделал бы руками, все было бы проще. Только в примере опечатка:
>
> DBF.FieldByName('TIME').AsString := FormatDateTime('hh-mm-
> ss',TKDataSet.FieldByName('PTIME').AsDateTime);


Месяц вместо минуты? Может автору это и нужно, как знать :))


Виталий Панасенко(дом)   (2009-07-15 21:37:00) [4]


> Tneduts ©   (15.07.09 19:16) [47]
>
>
> > sniknik ©   (15.07.09 19:08) [46]
> >
> > > Я не прошу меня обучать
> > того кто написал [43] и не понял [20] необходимо обучать.
>
> > .. хотя бы "подтянуть" его до уровня чтобы он не писал
> глупости
> > и начал понимать ответы.
> >
>
> Так в чём проблема?
> "Подтяните"!
> Тем более, что я не прошу чего то сверх естественного, с
> вашим опытом ответить на мои глупости не составляет проблемы!
> !!!

Так если ларчик просто открывается: открываешь, а он пуст.. при чем, абсолютно пуст...положи туда чего-нибудь. благо литературы сейчас - пруд-пруди, это не конец 80-х, начало 90-х. и в электронном виде валом, даже покупать не нужно


sniknik   (2009-07-15 19:45:00) [5]

> Так в чём проблема?
> "Подтяните"!
забыл?
> p.s. серьезно думаешь, что кто то возьмется за твое обучение с 0? притом судя по всему вопреки твоему желанию не учится.

> с вашим опытом ответить на мои глупости не составляет проблемы!!!!
как раз таки наоборот, отвечать на глупости никакой опыт не поможет. ответить можно только тому кто спрашивает и реагирует разумно.
у тебя же с этим делом с первого уточнения (Anatoly Podgoretsky ©   (10.07.09 13:19) [1]) не заладилось.


Tneduts   (2009-07-15 19:16:00) [6]


> sniknik ©   (15.07.09 19:08) [46]
>
> > Я не прошу меня обучать
> того кто написал [43] и не понял [20] необходимо обучать.
> .. хотя бы "подтянуть" его до уровня чтобы он не писал глупости
> и начал понимать ответы.
>

Так в чём проблема?
"Подтяните"!
Тем более, что я не прошу чего то сверх естественного, с вашим опытом ответить на мои глупости не составляет проблемы!!!!


sniknik   (2009-07-15 19:08:00) [7]

> Я не прошу меня обучать
того кто написал [43] и не понял [20] необходимо обучать... хотя бы "подтянуть" его до уровня чтобы он не писал глупости и начал понимать ответы.


Tneduts   (2009-07-15 18:43:00) [8]


> sniknik ©   (15.07.09 18:38) [44]

Я не прошу меня обучать, я прошу показать, как это делается.


sniknik   (2009-07-15 18:38:00) [9]

> Что я сделал не так?
не посмотрел в справку и не прочел ни единой обучающей книги...

p.s. серьезно думаешь, что кто то возьмется за твое обучение с 0? притом судя по всему вопреки твоему желанию не учится.


Tneduts   (2009-07-15 18:23:00) [10]

Var
Exp1: TTable;
begin
Exp1.TableName := 'ПУть\Export.dbf';
Exp1.TableType := ttDBase;
Exp1.Open;
Exp1.FieldDefs.Add('TIME',ftString, 20, false);
Exp1.FieldByName('TIME').AsString := FormatDateTime('hh-mm-ss',TKDataSet.FieldByName('PTIME').AsDateTime);
Exp1.Close;


Выдаёт
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00642B5A in module 'Project1.exe'. Read of address 0000001C'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help  
---------------------------

Что я сделал не так?


Tneduts   (2009-07-15 17:04:00) [11]


> Anatoly Podgoretsky ©   (15.07.09 16:54) [41]

Пусть так. Тогда покажите, пожалуйста, как с нуля, "в ручную" выгрузить в ДБФ.
Хотя бы не большой примерчик(сейчас рыскаю по инету в поисках подобного)


Anatoly Podgoretsky   (2009-07-15 16:54:00) [12]

Для чего такие сложности, когда это делается за один присест при экспорте.
Ведь иначе придется выполнять два отчета, делать реструктиризацию, риск в получение неконсистентных данных и большие потери времени. И что смешнее всего точно также придется выделять дату и время.


Tneduts   (2009-07-15 16:26:00) [13]


> Anatoly Podgoretsky ©   (15.07.09 16:18) [39]


> Виталий Панасенко(дом)   (15.07.09 15:42) [35]

Уважаемые, а можно "ОЧЕНЬ" детально(а лучше в примерах), как открыть готовый ДБФ, создать поле TIME а потом уже  

> DBF.FieldByName('TIME').AsString := FormatDateTime('hh-mm-
> ss',TKDataSet.FieldByName('PTIME').AsDateTime);


Anatoly Podgoretsky   (2009-07-15 16:18:00) [14]

> Tneduts  (15.07.2009 15:59:37)  [37]

Ну я же и не только я, написал, что или в символьное или в числовое, в зависимости от того, что дальше с этими данными будут делать.


Tneduts   (2009-07-15 16:06:00) [15]

> Anatoly Podgoretsky ©   (15.07.09 15:42) [36]
Строка меня бы вполне устроила


Tneduts   (2009-07-15 15:59:00) [16]


> Anatoly Podgoretsky ©   (15.07.09 15:42) [36]
>
> Это слишком много и не отвечает на вопрос.
> В большинстве DBF форматов единственная возможность это
> писать в строку или в целое, для xBase как правило целых
> нет, нужно писать в число (number N5.0) для точности в секунду.
>
>

Типы данных полей
N  Числовое
C  Символьное
D  Дата
M  Memory
А если в символьном?


Anatoly Podgoretsky   (2009-07-15 15:42:00) [17]

Это слишком много и не отвечает на вопрос.
В большинстве DBF форматов единственная возможность это писать в строку или в целое, для xBase как правило целых нет, нужно писать в число (number N5.0) для точности в секунду.


Виталий Панасенко(дом)   (2009-07-15 15:42:00) [18]


> Р.С. Как работать с ДБФ в ручную опишите, как для чайника
> ^^)


точно также, как с pFIBDataSet: Append/Edit/post и т.д. только для доступа БДЕ/АДО или еще чего, типа Halcyon/TDbf/Apollo(и фиг его знает, что еще)


Tneduts   (2009-07-15 15:38:00) [19]


> Виталий Панасенко(дом)   (15.07.09 15:26) [32]
>
> Это плата за


> Очень удобные компоненты

))) Это я уже прочувствовал.
Виталий, скажите пожалуйста, а если допустим пусть отрабатывает компонента по выгрузке, потом открывать ДБФник и дописывать ещё одно поле?
Р.С. Как работать с ДБФ в ручную опишите, как для чайника ^^)


Tneduts   (2009-07-15 15:31:00) [20]


> Anatoly Podgoretsky ©   (15.07.09 14:44) [31]


> Как ты выгрузить DateTime если у тебя по всей видимости
> в DBF нет поддержки таких полей в принципе.

В том и дело, что нет. Я об этом сказал изначально
> EP.PTIME - вот это поле хранит в себе дату и время. Как
> мне организовать ещё одно, может временное, поле для того
> что бы выдёргивать отдельно время?

Может не совсем корректно это прозвучало и все же.

> Для начала огласи, что такое DBF

это всё то о чём сказал sniknik ©   (14.07.09 12:41) [16]


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо