powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с формой
3 сообщений из 3, страница 1 из 1
Проблема с формой
    #33377672
Суть проблемы в том, что:
при введении имени, по которму должна удаляться запись в таблице удаление не происходит, а происходит замена данных в первом столбце таблицы, на те что были введены.
пишу примерно так:

set safety off
q=form1.pageframe1.txtDelete.value
use table1 exclusive
index on field1 to tmp1
seek q
delete
pack
close database
прошу не смеяться, я ведь не волшебник, а только учусь >:-)
...
Рейтинг: 0 / 0
Проблема с формой
    #33378018
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, в общем, ты сделал все самые распространенные ошибки, какие только можно было сделать. Хотя, если подумать, то можно сделать еще несколько ошибок

Вкратце, суть ошибок:

Динамическое создание индексов (команда INDEX) - это то, чего следует, по возможности, избегать. Индексы создаются при создании структуры таблицы и в процессе работы обычно не пересоздаются

Упаковка таблицы (команда PACK) - это то, чего следует, по возможности, избегать. Упаковка происходит периодически из служебных процедур. Для того, чтобы скрыть записи, помеченные как удаленные используют настройку SET DELETED ON

Ссылка на форму по ее имени - это действие, которое можно выполнить только при сопутствующем выполнении ряда условий. Обычно используют относительные ссылки типа ThisForm.

Есть еще некоторые стилистические ошибки, но это проще показать на примере.

Итак, у тебя есть таблица Table1 у которой есть структурный индексный файл, созданный в дизайнере таблицы. И в этом структурном индексном файле есть индексный тег по полю Field1.

В DataEnvironmetn форы ты включил эту таблицу (В дизайнере формы пункт системного меню View - Data Environment - правой кнопкой мыши на пустом месте - Add)

В событии INIT (или LOAD) формы делаешь все необходимые настройки

Код: plaintext
1.
2.
SET DELETED ON
SET TALK OFF

Если предположить, что поле Field1 символьного типа, в объекте txtDelete введено символьное значение и приведенный код - это метод той самой формы, где расположен объект txtDelete, то теперь твой код выглядит так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
LOCAL lcValue
lcValue = AllTrim(ThisForm.PageFrame1.txtDelete.Value)
IF SEEK(m.lcValue,"Table1","Field1") = .T.
	DELETE
ELSE
	MessageBox("Записи со значением поля Field1 равным ["+m.lcValue+"] не найдено"+;
		CHR( 13 )+"Удалять нечего. Измените условия поиска.")
ENDIF
...
Рейтинг: 0 / 0
Проблема с формой
    #33380119
большое спасибо, попробую так сделать
*-----------------------
я ведь не волшебник, а только учусь
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с формой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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