Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Null значение в поле Number (DBF )   Найти похожие ветки 

 
TSubject   (2012-03-13 09:39) [0]

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

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

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


 
sniknik ©   (2012-03-13 09:47) [1]

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


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


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


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


 
sniknik ©   (2012-03-13 10:05) [3]

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

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


 
Anatoly Podgoretsky ©   (2012-03-13 10:11) [4]


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

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


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

Использую компонент 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.


 
sniknik ©   (2012-03-13 10:19) [6]

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


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

tblDBF.Append;  то есть


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


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


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


 
sniknik ©   (2012-03-13 10:27) [9]

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


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

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


 
sniknik ©   (2012-03-13 10:29) [11]

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


 
sniknik ©   (2012-03-13 10:33) [12]

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


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


> 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:40) [14]

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


 
sniknik ©   (2012-03-13 10:42) [15]

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


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


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


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


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


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


FieldPutN то есть.


 
sniknik ©   (2012-03-13 10:46) [18]

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


 
Anatoly Podgoretsky ©   (2012-03-13 10:52) [19]

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

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



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.107 c
3-1282861564
MAXHO
2010-08-27 02:26
2013.03.22
Почему может зависать база?


15-1347978249
alexdn
2012-09-18 18:24
2013.03.22
Серьёзный вопрос


15-1328599963
igorserg
2012-02-07 11:32
2013.03.22
XMLDocument - косяк при изменении порядка следования тегов.


15-1337100337
I
2012-05-15 20:45
2013.03.22
Кто нибудь пользуется LZ APi?


15-1338971575
Cobalt
2012-06-06 12:32
2013.03.22
Самый лучший сотрудник российского оделения Embarcadero