Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / вывод в файл (copy to ...) и NULL'овые даты / 7 сообщений из 7, страница 1 из 1
27.04.2011, 08:48
    #37235095
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод в файл (copy to ...) и NULL'овые даты
Есть курсор с полем типа "дата". В поле есть значения .НУЛЛ. Нужно сбросить этот курсор в файл (для загрузки на скл сервер).
Проблема - если дата ис НУЛЛ, то фокс записывает в файл не .НУЛЛ., а ". ." (без кавычек, ессно). Сервер не врубается в формат даты и отказывается импортировать файл. Текстовые поля, по крайней мере, выгружаются как пустые строки - это терпимо, хотя тоже нежелательно.
Надо: заставить фокс выгружать нулл-даты (а желательно, все нулл-значения) как, например, строки ".НУЛЛ." или как заранее заданное значение.
ЗЫ. Файлы м.б. отн. большими, так что филетостр+стртран+стртофиле не предлагать :)
...
Рейтинг: 0 / 0
27.04.2011, 09:07
    #37235117
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод в файл (copy to ...) и NULL'овые даты
Неправда, выгружает NULL copy to ...
Код: plaintext
1.
2.
3.
4.
5.
6.
create Cursor test (dDate d null)
insert into test (dDate) values (date())
insert into test (dDate) values (NULL)
copy To TestCopy
use TestCopy
brow

Если у тебя стоит "type fox2x" то тогда фокс меняет NULL на пустую дату, т.к. в DBF того формата хранение NULL не было.
Можешь перед выгрузкой менять NULL на какую-то дату, например 01.01.1900
Код: plaintext
1.
select nvl(dDate, {^ 1900 - 01 - 01 }) as dDate ... into cursor tExp
copy to ...
...
Рейтинг: 0 / 0
27.04.2011, 10:19
    #37235244
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод в файл (copy to ...) и NULL'овые даты
Dima T, ёшкин свет, самое главное то я не написал - выгружаю в CSV (можно в delimited). Вот там такое и происходит.
НВЛ... ну, если других вариантов нет, буду делать НВЛ. Просто структура у таблиц разная, придётся дополнительно разбирать... а пока есть надежда, что всё можно решить, дописав одну-две строчки, этого делать не хоцца :)
...
Рейтинг: 0 / 0
27.04.2011, 10:45
    #37235280
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод в файл (copy to ...) и NULL'овые даты
tanglirDima T, ёшкин свет, самое главное то я не написал - выгружаю в CSV (можно в delimited). Вот там такое и происходит.
НВЛ... ну, если других вариантов нет, буду делать НВЛ. Просто структура у таблиц разная, придётся дополнительно разбирать... а пока есть надежда, что всё можно решить, дописав одну-две строчки, этого делать не хоцца :)
Если "филетостр+стртран+стртофиле" не устраивает, то напиши свой COPY TO. В 2-3 строчки не уложишься, а в 10-20 можно. Чтоб к структуре не привязываться - читаешь в массивы, массивы пишешь в файл. Почитай хэлп про AFIELDS(), SCATTER.
...
Рейтинг: 0 / 0
27.04.2011, 10:56
    #37235297
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод в файл (copy to ...) и NULL'овые даты
Dima TЕсли "филетостр+стртран+стртофиле" не устраивает, то напиши свой COPY TO. В 2-3 строчки не уложишься, а в 10-20 можно. Чтоб к структуре не привязываться - читаешь в массивы, массивы пишешь в файл. Почитай хэлп про AFIELDS(), SCATTER.Товарищ, мне хелп по ним читать не надо, я их и так знаю :). Просто была надежда, что можно проще. Если проще нельзя, буду делать так, как и предполагал.
...
Рейтинг: 0 / 0
27.04.2011, 11:49
    #37235423
PP987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод в файл (copy to ...) и NULL'овые даты
Код: plaintext
1.
select nvl(DTOC(dDate), '.NULL.') as dDate ... into cursor tExp
copy to ...

Попробуй так.
...
Рейтинг: 0 / 0
27.04.2011, 12:17
    #37235500
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод в файл (copy to ...) и NULL'овые даты
tanglirDima TЕсли "филетостр+стртран+стртофиле" не устраивает, то напиши свой COPY TO. В 2-3 строчки не уложишься, а в 10-20 можно. Чтоб к структуре не привязываться - читаешь в массивы, массивы пишешь в файл. Почитай хэлп про AFIELDS(), SCATTER.Товарищ, мне хелп по ним читать не надо, я их и так знаю :). Просто была надежда, что можно проще. Если проще нельзя, буду делать так, как и предполагал.
Лучше свое написать, кроме NULL у COPY TO есть проблемы с кавычками двойными, при выгрузке в текстовые файлы оно строки в кавычки берет, и если кавычки есть внутри строки выгружаемой, то при загрузке проблемы.

Я раньше пользовал COPY TO и APPEND FROM, потом перестал, после того как пару раз переглючило из-за того что исходные данные кривые.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / вывод в файл (copy to ...) и NULL'овые даты / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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