powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Удаление из таблицы используя данные из курсора
8 сообщений из 8, страница 1 из 1
Удаление из таблицы используя данные из курсора
    #33557350
TwilightY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
У меня такая странная проблема:
Имеется DBC-шка, назовем ее DataBase.DBC
В ней имеется таблица (DBF-ка), назовем ее Table.DBF.
Имеется также курсор, назовем его Cursor, причем его имя хранится в переменной, например lcCursName.
Так вот. Нужно удалить из Table.DBF записи по принципу
Table.TempId <> Cursor.Id, т.е. те, которых нет в курсоре.
Причем удалить физически, т.е. с РАСК, т.к. табличку придется потом пересылать по DialUp, а ето, как понимаете, критично.
Как это сделать - ума не приложу.
Если у кого есть идеи - буду благодарен!

ЗЫ: FoxPro 5.0 :) Архаизм, конечно, но таков корпоративный стандарт :(
...
Рейтинг: 0 / 0
Удаление из таблицы используя данные из курсора
    #33557428
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
DELETE FROM Table ;
   WHERE TempId NOT IN ( ;
   SELECT Id FROM (lcCursName))
...
Рейтинг: 0 / 0
Удаление из таблицы используя данные из курсора
    #33557482
TwilightY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щаз.... Все бросило, разбежалось и заработало :)
Еслиб все было так просто :(
При выполнении такой команды он выдает список таблиц из DBC-шки, и просит
выбрать какую-то. А при РАСК-овке выдает ошибку, что Table открыт более чем в одной воркарии, хотя я говорил USE Table EXCLUSIVE
:(
...
Рейтинг: 0 / 0
Удаление из таблицы используя данные из курсора
    #33557489
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дык ты lcCursName присвой предварительна, йопрст
а перед пакофкой сделай USE IN SELECT('Table') например
...
Рейтинг: 0 / 0
Удаление из таблицы используя данные из курсора
    #33557550
TwilightY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да присвоено оно... В том то и дело :(
...
Рейтинг: 0 / 0
Удаление из таблицы используя данные из курсора
    #33557590
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ищи ошибку в ДНК например
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE CURSOR table (TempId N( 2 , 0 ))
CREATE CURSOR cursor (Id N( 2 , 0 ))
FOR nCnt= 1  TO  20 
	INSERT INTO table VALUES (nCnt)
ENDFOR
FOR nCnt= 1  TO  10  STEP  2 
	INSERT INTO cursor VALUES (nCnt)
ENDFOR

lcCursName='cursor'

DELETE FROM Table ;
   WHERE TempId NOT IN ( ;
   SELECT Id FROM (lcCursName))
...
Рейтинг: 0 / 0
Удаление из таблицы используя данные из курсора
    #33557608
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hel!Riser
Код: plaintext
1.
2.
DELETE FROM Table ;
   WHERE TempId NOT IN ( ;
   SELECT Id FROM (lcCursName))

А вы уверены, что в VFP 5.0 такая конструкция будет работать правильно?
С уважением, Алексей.
...
Рейтинг: 0 / 0
Удаление из таблицы используя данные из курсора
    #33557628
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй так:

Код: plaintext
1.
2.
3.
4.
select Cursor
INDEX ON id TAG id
select Table
DELETE FOR SEEK(Table.id,"id","Cursor") = .F.

Для VFP5, если используется настройка SET DELETED ON, то ВСЕ таблицы ОБЯЗАТЕЛЬНО должны иметь индекс по Deleted(). Т.е. что-то вроде

INDEX ON Deleted() TAG Udal

Если такого индекса нет, то при активной настройке SET DELETED ON и наличии записей, помеченных как удаленные, запрос может использовать эти "удаленные" записи. Чего быть не должно.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Удаление из таблицы используя данные из курсора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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