Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема удаленных(удаления) записей в Transact-SQL / 15 сообщений из 15, страница 1 из 1
22.03.2010, 14:33
    #36534631
PWP
PWP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
Подскажите пож-та. Возможно ли при работе со свободной таблицей Foxpro через ODBC драйвер и запрос выборки по SQL типа "select id1,i2 from table1" и обработке последующего ResultSet определить помечена ли запись на удаление или нет ?
2) Запрос типа " set exclusive on ; delete from Table1 ; pack" удаляет все записи из таблицы(вернее
помечает на удаление, а вот PACK не всегда(?) срабатывает, иногда записи остаются. Здесь вмешиваются какие то временнЫе характеристики, поскольку если после
этой операции открывать таблицу в Foxpro, она некоторое время оказывается занятой (5-20 сек.)
...
Рейтинг: 0 / 0
22.03.2010, 14:50
    #36534696
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
объясните:
при чем здесь транзакт скл,
драйвер одибиси и свободная таблица фокспро.

иными словами:
каким боком транзакт скл касается свободн.таблиц фокспро?
...
Рейтинг: 0 / 0
22.03.2010, 14:50
    #36534697
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
Команда PACK физически пересоздает таблицу. Т.е. удаляет и создает заново с тем же именем. Поэтому на время выполнения данной операции она и "занята"

Если в команде Select-SQL указано больше одной таблицы-источника, то выделить записи помеченные как удаленные - невозможно. Если только одна таблица-источник, то можно, но лучше не надо

Строго говоря, записи, помеченные как удаленные, обычно просто скрывают (прячут) настройкой

Код: plaintext
SET DELETED ON

Здесь несколько не логичная настройка: ON - прячет (учитывает, скрывает) записи, помеченные как удаленные, а OFF - отображает (не учитывает, открывает) записи, помеченные как удаленные.

По сути, накладывают некий глобальный фильтр, который автоматически отсекает подобные записи.
...
Рейтинг: 0 / 0
22.03.2010, 15:11
    #36534770
PWP
PWP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
прошелмимообъясните:
при чем здесь транзакт скл,
драйвер одибиси и свободная таблица фокспро. иными словами:
каким боком транзакт скл касается свободн.таблиц фокспро?
Работа должна идти из программы, ну скажем , на С++ или X++ и нужно сформировать DBF-таблицу через SQL запросы ( а перед этим хотелось бы ее вычистить)
ВладимирМКоманда PACK физически пересоздает таблицу. Т.е. удаляет и создает заново с тем же именем. Поэтому на время выполнения данной операции она и "занята"....

Да в самом Foxpro как работать с этими записями мне понятно. Нужно с ними немного поработать
нк из Fox см. выше. А читая записи, полученные в ResultSet через SQL запрос пока не понимаю,
как отличить помеченные на удаление записи....
...
Рейтинг: 0 / 0
22.03.2010, 15:17
    #36534791
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
Что Вы хотите получить в результате:

1. Сделать выборку по ВСЕМ записям, но отличить те, которые были помечены как удаленные. Зачем это надо?

2. Сделать выборку только по тем записям, которые НЕ помечены как удаленные. Это делает настройка SET DELETED ON
...
Рейтинг: 0 / 0
22.03.2010, 15:30
    #36534844
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
PWPпрошелмимообъясните:
при чем здесь транзакт скл,
драйвер одибиси и свободная таблица фокспро. иными словами:
каким боком транзакт скл касается свободн.таблиц фокспро?
Работа должна идти из программы, ну скажем , на С++ или X++ и нужно сформировать DBF-таблицу через SQL запросы ( а перед этим хотелось бы ее вычистить)
ВладимирМКоманда PACK физически пересоздает таблицу. Т.е. удаляет и создает заново с тем же именем. Поэтому на время выполнения данной операции она и "занята"....

Да в самом Foxpro как работать с этими записями мне понятно. Нужно с ними немного поработать
нк из Fox см. выше. А читая записи, полученные в ResultSet через SQL запрос пока не понимаю,
как отличить помеченные на удаление записи....

при чем здесь транзакт-скл?
Вы просто увидели где-то и запомнили умное слово?

паковать не нужно постоянно
Вы запрос пробовали:
Код: plaintext
1.
2.
select * from tt where deleted()
select * from tt where !deleted()
?
...
Рейтинг: 0 / 0
22.03.2010, 15:32
    #36534858
PWP
PWP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
ВладимирМЧто Вы хотите получить в результате:
1. Сделать выборку по ВСЕМ записям, но отличить те, которые были помечены как удаленные. Зачем это надо?
Пишу экспорт\импорт на языке C++ через DBF таблицы. Если после экспорта с неполным удалением сделать импорт, то записей в выходную таблицу пойдет в 2 раза больше.
ВладимирМ
2. Сделать выборку только по тем записям, которые НЕ помечены как удаленные. Это делает настройка SET DELETED ON
Спасибо, это мысль. Попробую сейчас.А то уже хотел свое поле заводить для удаленных записей...
Дело в том, что таких таблиц у меня несколько, если делать подряд экспорт, то у части таблиц
зависают.. удаленные записи, т.е. PACK не выполняется. Вот хотел их обойти хотя бы при импорте...хотя это как то тоже криво..
...
Рейтинг: 0 / 0
22.03.2010, 15:47
    #36534916
PWP
PWP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
ВладимирМ
SET DELETED ON

Спасибо еще раз. Это работает.
прошелмимо
при чем здесь транзакт-скл?
Вы просто увидели где-то и запомнили умное слово?

паковать не нужно постоянно
Вы запрос пробовали:
Код: plaintext
1.
2.
select * from tt where deleted()
select * from tt where !deleted()
?
Каюсь, наверное запомнил умное слово. Больше не повторится...
А про ... where deteted() спасибо, попробую.
...
Рейтинг: 0 / 0
22.03.2010, 15:54
    #36534942
PWP
PWP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
прошелмимоВы запрос пробовали:
Код: plaintext
1.
2.
select * from tt where deleted()
select * from tt where !deleted()
?
Спасибо, это тоже работает. Но с упаковкой тоже нужно что то делать... Можно, конечно, удалять таблицу и заводить по новой, но как то без FoxPro не больно удобно..
...
Рейтинг: 0 / 0
22.03.2010, 15:58
    #36534955
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
PWPпрошелмимоВы запрос пробовали:
Код: plaintext
1.
2.
select * from tt where deleted()
select * from tt where !deleted()
?
Спасибо, это тоже работает. Но с упаковкой тоже нужно что то делать... Можно, конечно, удалять таблицу и заводить по новой, но как то без FoxPro не больно удобно..

ну так упакуйте ее единожды,
попляшите с бубном,
затем в заключительном па
проведите упаковку если уж так нужно.

но в идеале, наличие или отсутствие
удаленных записей ни на что не влияет.
...
Рейтинг: 0 / 0
22.03.2010, 16:05
    #36534979
PWP
PWP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
прошелмимо

но в идеале, наличие или отсутствие
удаленных записей ни на что не влияет.
Ну это , действительно, в идеале, а если не поставить ".. where !(deleted)", то очень даже влияет.
В общем, еще раз спасибо всем, принявшим участие, думаю вопрос можно прикрыть на этом этапе.
...
Рейтинг: 0 / 0
22.03.2010, 16:18
    #36535009
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
PWPпрошелмимо

но в идеале, наличие или отсутствие
удаленных записей ни на что не влияет.
Ну это , действительно, в идеале, а если не поставить ".. where !(deleted)", то очень даже влияет.
В общем, еще раз спасибо всем, принявшим участие, думаю вопрос можно прикрыть на этом этапе.

where !(deleted)

гы, это и есть тот идеал

т.е. при написании запроса Вы сразу подразумеваете,
что в табличке будет "мусор",
который и не будет влиять

пы сы: для 9-ки с бинарным индексом по условию делетед
такой запрос будет оптимизируемым.
...
Рейтинг: 0 / 0
22.03.2010, 16:30
    #36535046
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
> Автор: ВладимирМ

Ничего не понял.
Автор топика PWPРабота должна идти из программы, ну скажем , на С++ или X++ и нужно сформировать DBF-таблицу
через SQL запросы ( а перед этим хотелось бы ее вычистить)

> 2. Сделать выборку только по тем записям, которые НЕ помечены как удаленные. Это делает настройка SET DELETED ON

Каким образом программа написанная на Х++ может воспользоватся настройкой фокспро?

> Что Вы хотите получить в результате:

Я так и не понял, почему-то просто создавать DBF-файл автор не хочет.
Или если нужно просто прочитать из DBF-файла данные и только не помеченные как удаленные, то изучив
структуру DBF и обратив особое внимание
на значение по смещению 10-11 байт можно получить и флаг удаленности записи.

Но каким-то образом автор ушел удовлетворённый.
непонятно (с) Не помню кто

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
22.03.2010, 17:24
    #36535199
PWP
PWP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
Игорь Горбонос
> Автор: ВладимирМ

Ничего не понял.
Автор топика PWPРабота должна идти из программы, ну скажем , на С++ или X++ и нужно сформировать DBF-таблицу
через SQL запросы ( а перед этим хотелось бы ее вычистить)

> 2. Сделать выборку только по тем записям, которые НЕ помечены как удаленные. Это делает настройка SET DELETED ON
Ну это на форуме и выяснилось...

Игорь Горбонос
Каким образом программа написанная на Х++ может воспользоватся настройкой фокспро?

> Что Вы хотите получить в результате:

Я так и не понял, почему-то просто создавать DBF-файл автор не хочет.
Или если нужно просто прочитать из DBF-файла данные и только не помеченные как удаленные, то изучив
структуру DBF и обратив особое внимание
на значение по смещению 10-11 байт можно получить и флаг удаленности записи.

Но каким-то образом автор ушел удовлетворённый.
непонятно (с) Не помню кто

Ну 10-11 байт исследовать не так просто.. Все решается стандартными методами, вот автор и ушел удовлетворенный.
...
Рейтинг: 0 / 0
22.03.2010, 17:30
    #36535226
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема удаленных(удаления) записей в Transact-SQL
афтар использовал одибиси источник,
поэтому и удовлетворился не танцуя с бубном по байтам ,-
иначе он получил бы "неописуемые очучения".
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема удаленных(удаления) записей в Transact-SQL / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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