powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / кнопка "удалить"
19 сообщений из 19, страница 1 из 1
кнопка "удалить"
    #38904533
fatimaaaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть таблица с 3 колонками в первой колонке (memo), а также второй и третьей колонках kode1 и kode2 имени И кнопка для удаления строк.
С пример, я говорю свой вопрос:

На рисунке ниже,
Например, я хочу, чтобы удалить первую строку. В этом строку kod1=004
Теперь я хочу
Кроме того эта строка, удалить все строки, которые kod2 = 004

в кнопке "удалить" какая программа мне надо писать?
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904536
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fatimaaaaКроме того эта строка, удалить все строки, которые kod2 = 004

в кнопке "удалить" какая программа мне надо писать?
Код: sql
1.
delete in мой_таблица where kod2 = 004
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904545
fatimaaaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Я хочу, чтобы во всех случаях, это было просто пример.
Может быть,Я хочу удалить другие строки

это правильно?

delete in мой_таблица where kod2 = kod1
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904561
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно, если kod1 это переменная где хранится нужный код для удаления.
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904582
fatimaaaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

я так написала но это ошибка дает:
"command is missing required clause."
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904585
fatimaaaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fatimaaaaDima T,

DELETE IN (thisform.grid1) where kod2=kod1
thisform.grid1.SetFocus

я так написала но это ошибка дает:

"command is missing required clause."
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904605
Penner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DELETE [Scope] [FOR lExpression1] [WHILE lExpression2]
[IN nWorkArea | cTableAlias] [NOOPTIMIZE]
Параметры
Scope
Задает диапазон записей, которые следует пометить на удаление. По умолчанию областью действия команды DELETE является одна текущая запись (NEXT 1). Возможны следующие предложения диапазона: ALL, NEXTnRecords, RECORD nRecordNumber, и REST.
Подробнее о предложениях диапазона смотрите Предложения диапазона.
FOR lExpression1
Задает условие, в соответствии с которым на удаление помечаются только записи, удовлетворяющие логическому условию lExpression1.
Технология Rushmore оптимизирует запрос, созданный командой DELETE ... FOR, если lExpression1 является оптимизируемым выражением и таблица индексирована по функции DELETED( ). В целях достижения наилучшей производительности используйте в предложении FOR оптимизируемое выражение.
Подробнее об оптимизируемых по технологии Rushmore выражениях смотрите Команда SET OPTIMIZE, и Использование оптимизации запросов Rushmore для ускорения доступа к данным in Оптимизация приложений.
WHILE lExpression2
Задает условие, в соответствии с которым записи помечаются на удаление, пока значением выражения lExpression2 остается "истина" (.T.).
IN nWorkArea
Задает рабочую область таблицы, в которой записи помечаются на удаление.
IN cTableAlias
Задает псевдоним таблицы, в которой записи помечаются на удаление.
Если опустить nWorkArea и cTableAlias, записи помечаются на удаление в таблице, принадлежащей выбранной в данный момент рабочей области.
NOOPTIMIZE
Отключает оптимизацию команды DELETE по технологии Rushmore.
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904737
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fatimaaaafatimaaaaDima T,

DELETE IN (thisform.grid1) where kod2=kod1
thisform.grid1.SetFocus

я так написала но это ошибка дает:

"command is missing required clause."
thisform.grid1 это не таблица. Надо указывать имя таблицы которую показывает грид.

И я вчера немного напутал, надо или
Код: sql
1.
delete in мой_таблица for kod2 = kod1


или
Код: sql
1.
delete from мой_таблица where kod2 = kod1
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904807
fatimaaaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Не работает :(
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904863
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка какая?
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904910
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TОшибка какая?

Может кнопок не хватает?

Чуть выше есть выдержка из хелпа:
- "Если опустить nWorkArea и cTableAlias, записи помечаются на удаление в таблице, принадлежащей выбранной в данный момент рабочей области."
Т.е в данном примере в "мой_таблица" нет необходимости.

Код в CLICK первой кнопки:
DELETE
Во второй кнопке:
DELETE FOR ALLTRIM(kod1) == '004'
В третьей:
DELETE FOR ALLTRIM(kod2) == '004'
В четвертой:
LOCAL lcCode
lcCode = '009'
DELETE FOR ALLTRIM(kod2) == lcCode
В пятой:
RECALL ALL
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904923
tor300
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12,
не надо направлять ТСа по неверному направлению (хотя если это ваш студент тогда понятно), вариант с несколькими кнопками удалить довольно странный, Вам не кажется? Удалять записи не указывая источник ? Имхо, так нельзя делать.
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904930
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tor300sg12,
не надо направлять ТСа по неверному направлению (хотя если это ваш студент тогда понятно), вариант с несколькими кнопками удалить довольно странный, Вам не кажется? Удалять записи не указывая источник ? Имхо, так нельзя делать.

Для вас повтор:
- "Если опустить nWorkArea и cTableAlias, записи помечаются на удаление в таблице, принадлежащей выбранной в данный момент рабочей области."
Если есть сомнения, то не-SQL SELECT вам в руки.
В данном примере кнопки можете объединить по верному направлению, я не возражаю.
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904955
tor300
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12,
Кнопки были Ваши, не мои, так что можете объединять их как Вам необходимо, мне всегда хватало одной. Хэлп у меня есть, так что цитировать его не надо, в своих программах всегда выбираю источник данных (либо указываю в команде), и считаю что это правильно; можете с этим не соглашаться, оспаривать не стану. Если у ТСа вопросов больше нет, предлагаю закрыть топик.
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904960
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tor300sg12,
Кнопки были Ваши, не мои, так что можете объединять их как Вам необходимо, мне всегда хватало одной. Хэлп у меня есть, так что цитировать его не надо, в своих программах всегда выбираю источник данных (либо указываю в команде), и считаю что это правильно; можете с этим не соглашаться, оспаривать не стану. Если у ТСа вопросов больше нет, предлагаю закрыть топик.

Для вас повтор из хелпа еще раз:
- "Если ... выбранной ..."
Свою чудо-кнопку ничто не мешает вам продемонстрировать, столько сомнений сразу снимете.
Я же просто немного помог ДимеТ распутаться с командой DELETE, вы тоже вместо яканья можете внести свою лепту.
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38904972
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12Я же просто немного помог ДимеТ распутаться с командой DELETE, вы тоже вместо яканья можете внести свою лепту.
Помощничек, кончай ахинею нести. Я послушаю и забуду, а новички твои "советы" могут в код вставить. tor300 все правильно написал, нельзя без явного указания алиаса удалять (хотя синтаксис позволяет), где-то по недосмотру текущую рабочую область сменил, там одноименное поле может оказаться и ошибки не будет, просто похеришь совсем не то что планировал.
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38905001
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T

Чтобы не херить, в Фоксе есть:

Из хелпа:
SELECT nWorkArea | cTableAlias
Активизирует заданную рабочую область.

Также есть:
ALIAS([nWorkArea | cTableAlias])
Возвращает алиас Таблицы, открытой в текущей или заданной Рабочей Области.

Пример из хелпа:
USE customer && Opens Customer table
DELETE FOR country = 'USA' && Mark for deletion

Да и вообще в форме с одним гридом запутаться это как умудриться надо.

Или может вы с tor300 на каждую таблицу свой комплект табличных команд написали?
Большинство из них также может "похерить", "nWorkArea | cTableAlias" много где используется.
Уж на создателей универсальных оберток вы никак не тянете, раз с областями по недосмотру работаете.
К тому же даже когда в гриде цифирки слева запутались.
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38905129
fatimaaaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
получилось
Спасибо всем

LOCAL x
DELETE
x=kod1
DELETE ALL FOR kod2=x
thisform.grid1.SetFocus
...
Рейтинг: 0 / 0
кнопка "удалить"
    #38905592
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fatimaaaaполучилось
Спасибо всем

LOCAL x
DELETE
x=kod1
DELETE ALL FOR kod2=x
thisform.grid1.SetFocus

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


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