:: Visual Foxpro, Foxpro for DOS
APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 81
Дата регистрации: 14.11.2008
Всем привет!
Ребята, нужна помощь. Есть таблица с записями где есть поля blob и memo. Из неё по определенным условиям во временную таблицу добавляю записи. Так вот: если добавлять по APPEND FROM, то размер файла ***.ftp растет по геометрической прогрессии. Объем из 20 записей в 3-4 раза больше, чем исходная с 800 записями. Что делаю не так? если делаю ручками через APPEND BLANK и т.д., то всё нормально.
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Записи удаляются? посмотри RECCOUNT(), сравни с COUNT TO m.i, и какое состояние SET DELETE в рабочем проекте ?
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Хелп:

Цитата:
Если вы добавляете записи из таблицы Visual FoxPro, то в случае наличия в таблице, из которой производится добавление записей, записей помеченных для удаления и при текущем установке SET DELETED OFF, то такие записи будут также добавлены в таблицу.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 1 раз(а). Последнее : PaulWist, 21.12.17 20:55
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 81
Дата регистрации: 14.11.2008
удаляются отлично. Когда временной таблице даю команду ZAP, то и файл *.ftp очищается.
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 81
Дата регистрации: 14.11.2008
Нет. В исходной таблице всего 800 записей. Дело в том, что временный файл *.DBF по размерам нормальный не распухший, а только *.FTP в несколько раз больше становится.
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
REPLACE мемо-поля, в одной записи, если сделать много раз, то он увеличится ... примерно во столько же раз...
А что тебя беспокоит в росте FTP ? Расчитываешь на дикий размер этого FTP?
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 81
Дата регистрации: 14.11.2008
of63
REPLACE мемо-поля, в одной записи, если сделать много раз, то он увеличится ... примерно во столько же раз...
А что тебя беспокоит в росте FTP ? Расчитываешь на дикий размер этого FTP?

На формирование таблицы из 20 записей уходит 3-4 минуты. Меня это в корне не устраивает.

сейчас глянул *.ftp блокнотом и создалось впечатление, что туда попадают все записи из исходной таблицы. Если я еще добавлю запись, то объем увеличится в 2 раза. Получается, что если исходная таблица с 800 записями имеет ftp объем 23 Мб, то временная таблица с 20 записями 460 Мб.
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 81
Дата регистрации: 14.11.2008
REPLACE мемо-поля работает правильно не раздувает ftp.
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
что за " все записи из исходной таблицы"?
SET DELETE какой? "если добавлять по APPEND FROM"

смотреть текущее состояние SET например так (в тексте рабочего кода, и если ERROR перехвачен, виден (если не виден, спроси как) ):
ERROR "SET DELETE = "+ SET("DELETE")

Доб. Намудрил, смотреть так
WAIT "SET DELETE = "+ SET("DELETE") WINDO



Исправлено 2 раз(а). Последнее : of63, 21.12.17 21:25
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 81
Дата регистрации: 14.11.2008
of63
что за " все записи из исходной таблицы"?
SET DELETE какой? "если добавлять по APPEND FROM"

смотреть текущее состояние SET например так (в тексте рабочего кода, и если ERROR перехвачен, виден (если не виден, спроси как) ):
ERROR "SET DELETE = "+ SET("DELETE")

Исходная таблица упакованная и удаленных записей в ней нет. Временная таблица поле определенных действий чистится командой zap. Если заношу в нее запись по команде APPEND FROM bilet FOR n_bil=1 .and. n_vopr=5 ,то добавляется в dbf одна запись, а ftp весь ftp из таблицы bilet. Если добавлю еще одну запись APPEND FROM bilet FOR n_bil=1 .and. n_vopr=6, то в dbf еще одна запись, а в ftp еще раз весь ftp из таблицы bilet. Бред каткой-то.
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 81
Дата регистрации: 14.11.2008
set delete = ON
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
akvvohinc

Сообщений: 4219
Откуда: Москва
Дата регистрации: 11.11.2008
Dron2003
сейчас глянул *.ftp блокнотом и создалось впечатление, что туда попадают все записи из исходной таблицы.
Что-то в этом духе и есть - эту команду со времен FPD видимо не меняли.

Но разве при таких небольших объемах принципиально пользоваться именно этой командой?
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> Бред каткой-то.
Таблица понятная фоксу? Откуда она

Доб. Пример давай, и что нажимать, чтобы получить отрицательные эмоции )



Исправлено 1 раз(а). Последнее : of63, 21.12.17 21:51
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Репо-код приведи.

PS похоже рабочая область не та.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 81
Дата регистрации: 14.11.2008
akvvohinc
Dron2003
сейчас глянул *.ftp блокнотом и создалось впечатление, что туда попадают все записи из исходной таблицы.
Что-то в этом духе и есть - эту команду со времен FPD видимо не меняли.

Но разве при таких небольших объемах принципиально пользоваться именно этой командой?

Изначально хотелось всё сделать одной командой. Но чувствую, что придется всё расписывать через append blank и потом переносить содержимое через replace.
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Dron2003

Изначально хотелось всё сделать одной командой. Но чувствую, что придется всё расписывать через append blank и потом переносить содержимое через replace.

Используй одну команду insert ... select ...


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/1 positive
Re: APPEND FROM или APPEND BLANK
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Заругает фокс-общество Делай "правильно" Это я ТС-у



Исправлено 1 раз(а). Последнее : of63, 21.12.17 21:54
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 81
Дата регистрации: 14.11.2008
PaulWist
Репо-код приведи.
PS похоже рабочая область не та.
SELECT 2
FOR n=1 TO 5
APPEND FROM bilet FOR n_bil=tmp_bilet1 .and. n_vopr=n
ENDFOR
FOR n=6 TO 10
APPEND FROM bilet FOR n_bil=tmp_bilet2 .and. n_vopr=n
ENDFOR
FOR n=11 TO 15
APPEND FROM bilet FOR n_bil=tmp_bilet3 .and. n_vopr=n
ENDFOR
FOR n=16 TO 20
APPEND FROM bilet FOR n_bil=tmp_bilet4 .and. n_vopr=n
ENDFOR

Дело тут не в коде. Я руками через окно команд делаю и результат тот же.
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 81
Дата регистрации: 14.11.2008
PaulWist
Dron2003

Изначально хотелось всё сделать одной командой. Но чувствую, что придется всё расписывать через append blank и потом переносить содержимое через replace.

Используй одну команду insert ... select ...

Ой! как давно я этой командой не пользовался, по моему еще со времен клиппера.
синтаксис напомни, пожалуйста.
Ratings: 0 negative/0 positive
Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 81
Дата регистрации: 14.11.2008
PaulWist
Dron2003

Изначально хотелось всё сделать одной командой. Но чувствую, что придется всё расписывать через append blank и потом переносить содержимое через replace.

Используй одну команду insert ... select ...

INSERT INTO exzamen select * from bilet

Попробовал, всё сработало на ура! Но как мне перенести только те записи, которые удовлетворяют моему запрос, типа "FOR n_bil=tmp_bilet4 .and. n_vopr=n " ?
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 23 PaulWist Joys  (Гостей: 21)

© 2000-2024 Fox Club 
Яндекс.Метрика