![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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". а с новыми ты скорее всего не сталкивался.