for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  

Список Форумов  :: Visual Foxpro, Foxpro for DOS
   :: Помощь сайту :: 

APPEND FROM или APPEND BLANK
Dron2003
Автор

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

Re: APPEND FROM или APPEND BLANK
of63

Сообщений: 12089
Откуда: Н.Новгород
Дата: 21.12.17 19:48:55ОтветитьЦитировать
Записи удаляются? посмотри RECCOUNT(), сравни с COUNT TO m.i, и какое состояние SET DELETE в рабочем проекте ?
Ratings: 0 negative/0 positive

Re: APPEND FROM или APPEND BLANK
PaulWist

Сообщений: 12947
Дата: 21.12.17 19:54:56ОтветитьЦитировать
Хелп:

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


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




Исправлено: PaulWist, 21.12.17 19:55
Ratings: 0 negative/0 positive

Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 77
Дата: 21.12.17 19:56:35ОтветитьЦитировать
удаляются отлично. Когда временной таблице даю команду ZAP, то и файл *.ftp очищается.
Ratings: 0 negative/0 positive

Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 77
Дата: 21.12.17 20:00:22ОтветитьЦитировать
Нет. В исходной таблице всего 800 записей. Дело в том, что временный файл *.DBF по размерам нормальный не распухший, а только *.FTP в несколько раз больше становится.
Ratings: 0 negative/0 positive

Re: APPEND FROM или APPEND BLANK
of63

Сообщений: 12089
Откуда: Н.Новгород
Дата: 21.12.17 20:08:25ОтветитьЦитировать
REPLACE мемо-поля, в одной записи, если сделать много раз, то он увеличится ... примерно во столько же раз...
А что тебя беспокоит в росте FTP ? Расчитываешь на дикий размер этого FTP?
Ratings: 0 negative/0 positive

Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 77
Дата: 21.12.17 20:19:13ОтветитьЦитировать
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
Автор

Сообщений: 77
Дата: 21.12.17 20:20:42ОтветитьЦитировать
REPLACE мемо-поля работает правильно не раздувает ftp.
Ratings: 0 negative/0 positive

Re: APPEND FROM или APPEND BLANK
of63

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

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

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



Исправлено: of63, 21.12.17 20:25
Ratings: 0 negative/0 positive

Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 77
Дата: 21.12.17 20:39:01ОтветитьЦитировать
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
Автор

Сообщений: 77
Дата: 21.12.17 20:41:55ОтветитьЦитировать
set delete = ON
Ratings: 0 negative/0 positive

Re: APPEND FROM или APPEND BLANK
akvvohinc

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

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

Re: APPEND FROM или APPEND BLANK
of63

Сообщений: 12089
Откуда: Н.Новгород
Дата: 21.12.17 20:50:22ОтветитьЦитировать
> Бред каткой-то.
Таблица понятная фоксу? Откуда она

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



Исправлено: of63, 21.12.17 20:51
Ratings: 0 negative/0 positive

Re: APPEND FROM или APPEND BLANK
PaulWist

Сообщений: 12947
Дата: 21.12.17 20:51:18ОтветитьЦитировать
Репо-код приведи.

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


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

Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

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

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

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

Re: APPEND FROM или APPEND BLANK
PaulWist

Сообщений: 12947
Дата: 21.12.17 20:53:46ОтветитьЦитировать
Dron2003

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

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


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

Re: APPEND FROM или APPEND BLANK
of63

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



Исправлено: of63, 21.12.17 20:54
Ratings: 0 negative/0 positive

Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 77
Дата: 21.12.17 20:56:13ОтветитьЦитировать
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
Автор

Сообщений: 77
Дата: 21.12.17 21:01:35ОтветитьЦитировать
PaulWist
Dron2003

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

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

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

Re: APPEND FROM или APPEND BLANK
Dron2003
Автор

Сообщений: 77
Дата: 21.12.17 21:27:50ОтветитьЦитировать
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: 38 Taran  and Guests: 37


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