powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / удаление таблицы после отработки формы
22 сообщений из 22, страница 1 из 1
удаление таблицы после отработки формы
    #35253148
Timofey781
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго всем дня.
После отработки формы, темповая таблица куда заносятся данные для работы из основной таблицы почему то удаляется.

Есть форма, в init которой
Код: plaintext
1.
2.
3.
4.
5.
6.
IF NOT USED("table_tmp")
	USE "table_tmp" exclusiv IN  0 
ENDIF
SELE table_tmp
DELETE ALL
PACK
SELE table_tmp

на форме кнопка поиска по гриду и check для конкретизации условия поиска:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
IF NOT USED("table_tmp")
	USE "table_tmp" excl IN  0 
ENDIF
sele table_tmp
	DELETE ALL
	PACK
form1.Grid1.RecordSourceType= 1 
form1.Grid1.RecordSource="table_tmp"
form1.Grid1.Column1.ControlSource="table_tmp.nomer"
thisform.refresh

IF NOT USED("table")
	USE "table" excl IN  0 
ENDIF
sele table
dat_vd=alltrim(ThisForm.Text1.value)
per_vd=len(alltrim(dat_vd)) 
if per_vd> 0  				
  sele table
DO WHILE !EOF()
  ff_k1=alltrim(table.nomer)
  ff_k2=alltrim(table.znachenie)
 if thisform.check1.value= 1   
  dat_od=alltrim(counttable.nomer)
  per_od=len(alltrim(dat_od)) 
  sh_ptp=per_od-(per_vd- 1 )    
  add_df=sh_ptp
  ik= 1 
  dd=len(alltrim(dat_vd))
  do whil ik=<sh_ptp
       if UPPER(substr(alltrim(dat_od),ik,dd))=UPPER(alltrim(dat_vd))
          sele table_tmp
           append blank
            repl table_tmp.idc with ff_k1
	 repl table_tmp.ncount with ff_k2
thisform.refresh
       endif
    ik=ik+ 1 
   enddo
 endif

sele table
skip
	ENDDO
	ENDIF
GO top
thisform.refresh

проблема в том что table_tmp после отработки поиска перестает существовать...
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35253196
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо этого
Код: plaintext
1.
2.
3.
SELE table_tmp
DELETE ALL
PACK
SELE table_tmp
можно написать
Код: plaintext
zap in table_tmp

Timofey781После отработки формы, темповая таблица куда заносятся данные для работы из основной таблицы почему то удаляется.
Удаляется или закрывается? Если закрывается, то наверно где-то есть USE ... а IN 0 поставить забыл.
поставь SET STEP ON в код поиска и смотри отладчиком где USED('table_tmp') в .F. переключится
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35253228
Timofey781
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
именно физически удаляется с диска.
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35253239
Timofey781
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zap не помог.
если коментарю
Код: plaintext
1.
DELETE ALL
PACK
в кнопке, то не удаляет, но дублирует записи..
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35253257
Timofey781zap не помог.
Не помог в чем? В нахождении пропавшей таблицы? Так и не должен. Это более короткая и намного более быстрая замена delete all и pack.
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35253288
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timofey781именно физически удаляется с диска.
Все равно перед удалением таблица закрывается, иначе ее не удалить.
Ищи пошагово отладчиком как я написал.
В том коде который ты привел это не происходит. Вероятно ошибка в коде который отрабатывает после поиска или перед следующим действием.
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35253311
MiklS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет необходимости паковать временную таблицу.
Просто удаляем все записи и при добавлении новой делаем следующее
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SET DELETED OFF
LOCATE FOR DELETED()
IF FOUND()
   RECALL NEXT  1 
ELSE
   APPEND BLANK
ENDIF
SET DELETED ON
И табличка будет целой!
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35253382
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой смысл в использовании именно постоянной таблицы? Может, проще использовать курсор и не мучится с постоянной очисткой?

Код: plaintext
CREATE CURSOR table_tmp (nomer C( 10 ))

Использование PACK и ZAP в процессе работы приложения "дурной тон". В том смысле, что проблем больше, чем преимуществ. Просто нет смысла в их использовании.

Кстати, что именно Вы вкладываете в понятие "таблица перестает существовать"? Как именно определяется факт отсутствия таблицы?
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35253400
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MiklS, ВладимирМ у автора проблема что где-то в коде таблица закрывается и удаляется с диска, а так я тоже за курсор вместо временной таблицы.
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35253645
Timofey781
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМА какой смысл в использовании именно постоянной таблицы? Может, проще использовать курсор и не мучится с постоянной очисткой?

Код: plaintext
CREATE CURSOR table_tmp (nomer C( 10 ))

Использование PACK и ZAP в процессе работы приложения "дурной тон". В том смысле, что проблем больше, чем преимуществ. Просто нет смысла в их использовании.

Кстати, что именно Вы вкладываете в понятие "таблица перестает существовать"? Как именно определяется факт отсутствия таблицы?

Таблица ФИЗИЧЕСКИ УДАЛЯЕТСЯ. с курсором не работал вообще. сейчас буду пробовать
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35253772
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timofey781Таблица ФИЗИЧЕСКИ УДАЛЯЕТСЯ. с курсором не работал вообще. сейчас буду пробовать

Курсор, ZAP - это отступление от темы, попутный совет по показанному коду. Проблему с удалением это не решит. Смотри отладчиком что реально происходит, где какой код отрабатывает.

удалить файл можно только командой DELETE FILE ... само ничего не происходит
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35253808
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tудалить файл можно только командой DELETE FILE ... само ничего не происходит
Поторопился. Есть еще ERASE и REMOVE TABLE

Можешь поставить SET SAFETY ON и тогда при выполнении одной из этих команд сообщение будет с вопросом "Удалить? Да/Нет"
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35253884
Timofey781
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T Dima Tудалить файл можно только командой DELETE FILE ... само ничего не происходит
Поторопился. Есть еще ERASE и REMOVE TABLE

Можешь поставить SET SAFETY ON и тогда при выполнении одной из этих команд сообщение будет с вопросом "Удалить? Да/Нет"

в том то и дело что нет у меня ни ERASE ни REMOVE TABLE. Вот приаттачил листинг. Есть форма, грид, text1 и чекбокс один с кнопкой. Единственное что еще прописано это init формы. Больше кода вообще нету.
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35254426
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timofey781Таблица ФИЗИЧЕСКИ УДАЛЯЕТСЯ. с курсором не работал вообще. сейчас буду пробовать
Как Вы это проверили? Почему считаете, что удаление произошло именно после выполнения приведенного кода?
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35254622
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timofey781Вот приаттачил листинг...
Аттачь весь проект (форму как минимум) с тестовыми табличками, запакуй только.
И что давить чтобы ошибка повторилась напиши.

Нету в твоем листинге никаких удалений.
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35255339
Timofey781
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T Timofey781Вот приаттачил листинг...
Аттачь весь проект (форму как минимум) с тестовыми табличками, запакуй только.
И что давить чтобы ошибка повторилась напиши.

Нету в твоем листинге никаких удалений.

Все.. Я окончательно запутался. Короче говоря, создаю проджект в 6ке - все почти работает, в 9ке - удаляет таблицу с диска. Либо я что то не так делаю либо 9ка глючит. Пробовал переустановить, почистил реестр. Проджект на 6ке приаттачил.
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35255410
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может просто ищите в одном месте а сохраняете в другом?
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35255445
Timofey781
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
leafможет просто ищите в одном месте а сохраняете в другом?

все пути проверил неоднократно.
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35255930
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timofey781Проджект на 6ке приаттачил.
Запустил в 9-ке, все пусто, подавил на кнопку, галочку поставил, ошибок нет, таблица на месте.
Как ошибку повторить? Что в какой последовательности нажимать?

Windows какой?
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #35256465
Timofey781
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T Timofey781Проджект на 6ке приаттачил.
Запустил в 9-ке, все пусто, подавил на кнопку, галочку поставил, ошибок нет, таблица на месте.
Как ошибку повторить? Что в какой последовательности нажимать?

Windows какой?

ну даже и не знаю...
1. winxp sp1
visual foxpro 9.0 sp1

2. запускаю форму
3. в текстбокс при галочке на чекбоксе вбиваю например 100
4. поиск проходит успешно но после этого таблица исчезает, при попытке ее просмотра вываливается окно кнопкой loдщсфеую

Я начинаю подозревать что у меня глюкавая 9ка.. попробую вытянуть и поставить другой дистр.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
удаление таблицы после отработки формы
    #38994805
Oksana_Solo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста, можно ли восстановить случайно удаленную таблицу? REMOVE TABLE () DELETE
...
Рейтинг: 0 / 0
удаление таблицы после отработки формы
    #38994819
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oksana_SoloПомогите пожалуйста, можно ли восстановить случайно удаленную таблицу? REMOVE TABLE () DELETE
Нельзя. Файл удален.

Теоретически, если сразу после удаления спохватится, можно вырубить комп как можно быстрее (из розетки выдернуть или кнопку "вкл" держать), загрузится с флэшки или достать жесткий диск и к другому компу прицепить, затем пробовать различный софт восстановления удаленных файлов. 100% гарантии нет, если сразу спохватиться, то можно успеть. За подробностями в форум в админам виндовса.

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


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