Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / удаление таблицы после отработки формы / 22 сообщений из 22, страница 1 из 1
14.04.2008, 12:33
    #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
14.04.2008, 12:51
    #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
14.04.2008, 12:59
    #35253228
Timofey781
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление таблицы после отработки формы
именно физически удаляется с диска.
...
Рейтинг: 0 / 0
14.04.2008, 13:04
    #35253239
Timofey781
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление таблицы после отработки формы
zap не помог.
если коментарю
Код: plaintext
1.
DELETE ALL
PACK
в кнопке, то не удаляет, но дублирует записи..
...
Рейтинг: 0 / 0
14.04.2008, 13:08
    #35253257
удаление таблицы после отработки формы
Timofey781zap не помог.
Не помог в чем? В нахождении пропавшей таблицы? Так и не должен. Это более короткая и намного более быстрая замена delete all и pack.
...
Рейтинг: 0 / 0
14.04.2008, 13:13
    #35253288
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление таблицы после отработки формы
Timofey781именно физически удаляется с диска.
Все равно перед удалением таблица закрывается, иначе ее не удалить.
Ищи пошагово отладчиком как я написал.
В том коде который ты привел это не происходит. Вероятно ошибка в коде который отрабатывает после поиска или перед следующим действием.
...
Рейтинг: 0 / 0
14.04.2008, 13:18
    #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
14.04.2008, 13:40
    #35253382
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление таблицы после отработки формы
А какой смысл в использовании именно постоянной таблицы? Может, проще использовать курсор и не мучится с постоянной очисткой?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Windows какой?

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

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

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

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

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


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