Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вставка пустого значения / 11 сообщений из 11, страница 1 из 1
16.04.2008, 20:15
    #35260207
9081in
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка пустого значения
Добрый вечер!

Проблема:
Есть таблица и стороннее приложение, которое импортирует данные из этой таблицы.
В таблице есть поле типа numeric (not null). Приложение читает из этого поля значение и преобразует его в дату (как разницу между этой датой и 30.12.1899).
Если в поле пустое значение, приложение воспринимает его как отсутствие даты, а если в поле стоит 0, то как 30.12.1899.
Ни логику работы приложения, ни структуру таблицы менять нельзя.

Вопрос как через oledb вставить в поле numeric именно "пустое значение" а не 0?
Или как после вставки нулей очистить поле (типа blank fields ... но для всех строк)?
...
Рейтинг: 0 / 0
16.04.2008, 20:26
    #35260223
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка пустого значения
9081inВопрос как через oledb вставить в поле numeric именно "пустое значение" а не 0?
?
Если я правильно понял термин "пустое значение", то вместо 0 (ноль) надо использовать null.
Код: plaintext
Insert into YourTable (NumField) values (null)
...
Рейтинг: 0 / 0
16.04.2008, 20:40
    #35260232
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка пустого значения
9081inИли как после вставки нулей очистить поле (типа blank fields ... но для всех строк)?
Да все той же командой BLANK добавив в нее опцию Scope. Примерно так:

Код: plaintext
1.
2.
3.
4.
5.
* Очистить поле MyField во всех записях таблицы
BLANK ALL FIELDS MyField

* Очистить поле MyField только в тех записях где нет значения
BLANK FOR MyField =  0  FIELDS MyField

Я не в курсе, но, может команду BLANK можно дать и через ADO?
...
Рейтинг: 0 / 0
16.04.2008, 20:40
    #35260233
9081in
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка пустого значения
null вставить не дает т.к. у поля ограничение not null.
а под "пустым значением" имеется в виду то, что получается после BLANK.
...
Рейтинг: 0 / 0
16.04.2008, 20:42
    #35260234
9081in
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка пустого значения
ВладимирМ
Да все той же командой BLANK добавив в нее опцию Scope.
Я не в курсе, но, может команду BLANK можно дать и через ADO?

Спасибо, но похоже через oledb BLANK не работает.
...
Рейтинг: 0 / 0
17.04.2008, 05:16
    #35260559
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка пустого значения
А разве такое поведение документировано????

Мнеказалось, что "пустое значение" в поле числового типа =0 априори ????

Где почитать подробнее?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
17.04.2008, 10:02
    #35260858
Вставка пустого значения
Galyamov Rinat
А разве такое поведение документировано????

Мнеказалось, что "пустое значение" в поле числового типа =0 априори ????

Где почитать подробнее?


Posted via ActualForum NNTP Server 1.4
to Galyamov Rinat:
Зависит от СУБД... Например, для поля в Оракле помимо NOT NULL может быть еще указано "дефолтное" значение (т.е. то значение, которое будет вставлено в поле при отсутствии данных).

to автор топика:
Я подозреваю, что в данном случае именно так и происходит. Т.е. по умолчанию в поле вписывается не 0, а, допустим, -1 (или - 1024, или ...).
В общем, надо посмотреть на "сырые" записи (т.е. без дополнительных преобразований), где значение данного поля подставлено системой "по дефолту", и сделать аналогично...
...
Рейтинг: 0 / 0
17.04.2008, 10:19
    #35260902
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка пустого значения
9081innull вставить не дает т.к. у поля ограничение not null.
а под "пустым значением" имеется в виду то, что получается после BLANK.
Ограничение not null подразумевает ОБЯЗАТЕЛЬНОЕ наличие значения в поле. Позвольте полюбопытствовать, как Вы себе представляете совмещение обязательного наличия значения с пустотой этого же значения?
...
Рейтинг: 0 / 0
17.04.2008, 11:03
    #35261080
9081in
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка пустого значения
Sergey Sizov. 9081innull вставить не дает т.к. у поля ограничение not null.
а под "пустым значением" имеется в виду то, что получается после BLANK.
Ограничение not null подразумевает ОБЯЗАТЕЛЬНОЕ наличие значения в поле. Позвольте полюбопытствовать, как Вы себе представляете совмещение обязательного наличия значения с пустотой этого же значения?

Представляю так, что команда BLANK при этом ограничении отрабатывает и значение очищается.
А вот null в это поле вставить не удается.
...
Рейтинг: 0 / 0
17.04.2008, 11:12
    #35261116
9081in
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка пустого значения
Станислав С...кий
В общем, надо посмотреть на "сырые" записи (т.е. без дополнительных преобразований), где значение данного поля подставлено системой "по дефолту", и сделать аналогично...

Смотрел. Там пробелы (то что получается после BLANK).
...
Рейтинг: 0 / 0
17.04.2008, 11:31
    #35261203
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка пустого значения
Galyamov Rinat
А разве такое поведение документировано????

Мнеказалось, что "пустое значение" в поле числового типа =0 априори ????
Насколько я понял, речь идет о некоем стороннем приложении, работающем c DBF-таблицами через ADO. И уже какую именно логику заложили в этом приложении - их проблемы.

Хотя, не вполне понятно, как ADO различает значение BLANK и значение 0. Разве что собственно запрос содержит функцию IsBlank()
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вставка пустого значения / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]