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

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

Null значение в поле Number (DBF ) [D7, XP]


TSubject ©   (2012-03-13 09:39:00) 

Здравствуйте. Как посадить значение Null в поле Number DBF файла?

Если в Оракле есть параметр 'не принимать null' то в DBF я такого не нашел.  

Если сажаю Null из Дельфи,то садится 0. Есть шаблонные файлы DBF, там есть такие же поля Number но уже с пустым значением.  Но как это повторить?


Anatoly Podgoretsky   (2012-03-13 10:52:00) [1]

> TSubject  (13.03.2012 10:39:13)  [13]

Это возможности Halcyon


sniknik   (2012-03-13 10:46:00) [2]

во, еще вспомнил. про Halcyon... там был метод доступа к данным как к памяти (data вроде), т.е. все значения полей записи как один большой массив... на крайняк можно сделать очистку высчитав место поля и самостоятельно убрав 0 перед post. (т.е. фактически написать свой Clear, не меняя исходники компонент)


TSubject   (2012-03-13 10:45:00) [3]


> Нашел. DatePutN. Всем спасибо.


FieldPutN то есть.


TSubject   (2012-03-13 10:43:00) [4]


> насколько помню в Halcyon есть куча собственных функций.
> .. не подвязанных на предка TDataSet, посмотри среди них.
>


Нашел. DatePutN. Всем спасибо.


sniknik   (2012-03-13 10:42:00) [5]

> BDE не может с ним работать, он отпадает.
вообще то может, проблемы были с DBF от клиппера, а не Dbase IV. (что то там с длинными строками, он позволял > 255)


sniknik   (2012-03-13 10:40:00) [6]

и еще в +
> Использую компонент Halcyon в Дельфи.
насколько помню в Halcyon есть куча собственных функций... не подвязанных на предка TDataSet, посмотри среди них.


TSubject   (2012-03-13 10:39:00) [7]


> tblDBF.FieldByName('Size').AsString:= '';


Тоже нули  


> а BDE??? все от движка зависит, есть проверка/преобразование
> или нет.


У меня имеются мемо поля, BDE не может с ним работать, он отпадает.


> Это надо в форум Halcyon
> В dBase II - V нет типа number (это из Оракл), там numeric
> BCD тип, который принимает значение NULL, как сказали через
>  .Clear
> Visual FoxPro не совсем совместим с dBase IV, тем более
> что доступ через Halcyon


Ну я так, с надеждой что может кто сталкивался. .Clear пробовал, результат тот же.


sniknik   (2012-03-13 10:33:00) [8]

кстати, мало ли, использовал, но не помню уже Halcyon-а...
-> tblDBF.FieldByName('Size').AsString:= '';
???
(а вдруг они проверки типа не сделали...)


sniknik   (2012-03-13 10:29:00) [9]

> Использую компонент Halcyon в Дельфи.
> Clear тоже сажает нули.
а BDE??? все от движка зависит, есть проверка/преобразование или нет.


Anatoly Podgoretsky   (2012-03-13 10:28:00) [10]

Это надо в форум Halcyon
В dBase II - V нет типа number (это из Оракл), там numeric BCD тип, который принимает значение NULL, как сказали через  .Clear
Visual FoxPro не совсем совместим с dBase IV, тем более что доступ через Halcyon


sniknik   (2012-03-13 10:27:00) [11]

> Использую компонент Halcyon в Дельфи.
там вообще то исходники есть... можно посмотреть и исправить если что.


TSubject   (2012-03-13 10:25:00) [12]


> возможно присвоение идет с приведением типа, еще в дельфе.
> .. = 0, проверь - tblDBF.FieldByName('Size').Clear;


Clear тоже сажает нули.


TSubject   (2012-03-13 10:19:00) [13]

tblDBF. Append; то есть


sniknik   (2012-03-13 10:19:00) [14]

> tblDBF.FieldByName('Size').Value := null;
возможно присвоение идет с приведением типа, еще в дельфе... = 0, проверь - tblDBF.FieldByName('Size').Clear;


TSubject   (2012-03-13 10:18:00) [15]

Использую компонент Halcyon в Дельфи.

tblDBF.Edit;
tblDBF.FieldByName('aSize').Value   := null;
tblDBF.Post;

Открываю таблицу там нули вместо пустых значений.

Открываю файл в Visual FoxPro.

Выполняю REPLACE aSize WITH null FOR inst = 0
Ошибка: Field aSize does not accept null values.


Anatoly Podgoretsky   (2012-03-13 10:11:00) [16]


> Здравствуйте. Как посадить значение Null в поле Number DBF
> файла?

Что пробовал, как пробовал


sniknik   (2012-03-13 10:05:00) [17]

> FoxPro ругается
матом?

вообще никаких проблем не возникло поставил нули
UPDATE test SET [SIZE] = 0
вернул пустые строки в файл
UPDATE test SET [SIZE] = Null


TSubject   (2012-03-13 09:55:00) [18]


> sniknik ©   (13.03.12 09:47) [1]


DBase IV. Если выгруженный файл из Дельфи (tblDBF.FieldByName('Size').Value := null;) например открыть с помощью DBFReader то он без проблем заменяет нули на пустое значение. FoxPro ругается, не добавляет Null в поле.


sniknik   (2012-03-13 09:47:00) [19]

в какой версии? старый DBF это по большому счету форматированный текст... там нельзя null. можно только в движке "интерпретировать пустую строку как null". а с новыми ты скорее всего не сталкивался.


Наверх

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