|
Проблема удаленных(удаления) записей в Transact-SQL
|
|||
---|---|---|---|
#18+
Подскажите пож-та. Возможно ли при работе со свободной таблицей Foxpro через ODBC драйвер и запрос выборки по SQL типа "select id1,i2 from table1" и обработке последующего ResultSet определить помечена ли запись на удаление или нет ? 2) Запрос типа " set exclusive on ; delete from Table1 ; pack" удаляет все записи из таблицы(вернее помечает на удаление, а вот PACK не всегда(?) срабатывает, иногда записи остаются. Здесь вмешиваются какие то временнЫе характеристики, поскольку если после этой операции открывать таблицу в Foxpro, она некоторое время оказывается занятой (5-20 сек.) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 14:33 |
|
Проблема удаленных(удаления) записей в Transact-SQL
|
|||
---|---|---|---|
#18+
объясните: при чем здесь транзакт скл, драйвер одибиси и свободная таблица фокспро. иными словами: каким боком транзакт скл касается свободн.таблиц фокспро? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 14:50 |
|
Проблема удаленных(удаления) записей в Transact-SQL
|
|||
---|---|---|---|
#18+
Команда PACK физически пересоздает таблицу. Т.е. удаляет и создает заново с тем же именем. Поэтому на время выполнения данной операции она и "занята" Если в команде Select-SQL указано больше одной таблицы-источника, то выделить записи помеченные как удаленные - невозможно. Если только одна таблица-источник, то можно, но лучше не надо Строго говоря, записи, помеченные как удаленные, обычно просто скрывают (прячут) настройкой Код: plaintext
Здесь несколько не логичная настройка: ON - прячет (учитывает, скрывает) записи, помеченные как удаленные, а OFF - отображает (не учитывает, открывает) записи, помеченные как удаленные. По сути, накладывают некий глобальный фильтр, который автоматически отсекает подобные записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 14:50 |
|
Проблема удаленных(удаления) записей в Transact-SQL
|
|||
---|---|---|---|
#18+
прошелмимообъясните: при чем здесь транзакт скл, драйвер одибиси и свободная таблица фокспро. иными словами: каким боком транзакт скл касается свободн.таблиц фокспро? Работа должна идти из программы, ну скажем , на С++ или X++ и нужно сформировать DBF-таблицу через SQL запросы ( а перед этим хотелось бы ее вычистить) ВладимирМКоманда PACK физически пересоздает таблицу. Т.е. удаляет и создает заново с тем же именем. Поэтому на время выполнения данной операции она и "занята".... Да в самом Foxpro как работать с этими записями мне понятно. Нужно с ними немного поработать нк из Fox см. выше. А читая записи, полученные в ResultSet через SQL запрос пока не понимаю, как отличить помеченные на удаление записи.... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 15:11 |
|
Проблема удаленных(удаления) записей в Transact-SQL
|
|||
---|---|---|---|
#18+
Что Вы хотите получить в результате: 1. Сделать выборку по ВСЕМ записям, но отличить те, которые были помечены как удаленные. Зачем это надо? 2. Сделать выборку только по тем записям, которые НЕ помечены как удаленные. Это делает настройка SET DELETED ON ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 15:17 |
|
Проблема удаленных(удаления) записей в Transact-SQL
|
|||
---|---|---|---|
#18+
PWPпрошелмимообъясните: при чем здесь транзакт скл, драйвер одибиси и свободная таблица фокспро. иными словами: каким боком транзакт скл касается свободн.таблиц фокспро? Работа должна идти из программы, ну скажем , на С++ или X++ и нужно сформировать DBF-таблицу через SQL запросы ( а перед этим хотелось бы ее вычистить) ВладимирМКоманда PACK физически пересоздает таблицу. Т.е. удаляет и создает заново с тем же именем. Поэтому на время выполнения данной операции она и "занята".... Да в самом Foxpro как работать с этими записями мне понятно. Нужно с ними немного поработать нк из Fox см. выше. А читая записи, полученные в ResultSet через SQL запрос пока не понимаю, как отличить помеченные на удаление записи.... при чем здесь транзакт-скл? Вы просто увидели где-то и запомнили умное слово? паковать не нужно постоянно Вы запрос пробовали: Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 15:30 |
|
Проблема удаленных(удаления) записей в Transact-SQL
|
|||
---|---|---|---|
#18+
ВладимирМЧто Вы хотите получить в результате: 1. Сделать выборку по ВСЕМ записям, но отличить те, которые были помечены как удаленные. Зачем это надо? Пишу экспорт\импорт на языке C++ через DBF таблицы. Если после экспорта с неполным удалением сделать импорт, то записей в выходную таблицу пойдет в 2 раза больше. ВладимирМ 2. Сделать выборку только по тем записям, которые НЕ помечены как удаленные. Это делает настройка SET DELETED ON Спасибо, это мысль. Попробую сейчас.А то уже хотел свое поле заводить для удаленных записей... Дело в том, что таких таблиц у меня несколько, если делать подряд экспорт, то у части таблиц зависают.. удаленные записи, т.е. PACK не выполняется. Вот хотел их обойти хотя бы при импорте...хотя это как то тоже криво.. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 15:32 |
|
Проблема удаленных(удаления) записей в Transact-SQL
|
|||
---|---|---|---|
#18+
ВладимирМ SET DELETED ON Спасибо еще раз. Это работает. прошелмимо при чем здесь транзакт-скл? Вы просто увидели где-то и запомнили умное слово? паковать не нужно постоянно Вы запрос пробовали: Код: plaintext 1. 2.
Каюсь, наверное запомнил умное слово. Больше не повторится... А про ... where deteted() спасибо, попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 15:47 |
|
Проблема удаленных(удаления) записей в Transact-SQL
|
|||
---|---|---|---|
#18+
прошелмимоВы запрос пробовали: Код: plaintext 1. 2.
Спасибо, это тоже работает. Но с упаковкой тоже нужно что то делать... Можно, конечно, удалять таблицу и заводить по новой, но как то без FoxPro не больно удобно.. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 15:54 |
|
Проблема удаленных(удаления) записей в Transact-SQL
|
|||
---|---|---|---|
#18+
PWPпрошелмимоВы запрос пробовали: Код: plaintext 1. 2.
Спасибо, это тоже работает. Но с упаковкой тоже нужно что то делать... Можно, конечно, удалять таблицу и заводить по новой, но как то без FoxPro не больно удобно.. ну так упакуйте ее единожды, попляшите с бубном, затем в заключительном па проведите упаковку если уж так нужно. но в идеале, наличие или отсутствие удаленных записей ни на что не влияет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 15:58 |
|
Проблема удаленных(удаления) записей в Transact-SQL
|
|||
---|---|---|---|
#18+
прошелмимо но в идеале, наличие или отсутствие удаленных записей ни на что не влияет. Ну это , действительно, в идеале, а если не поставить ".. where !(deleted)", то очень даже влияет. В общем, еще раз спасибо всем, принявшим участие, думаю вопрос можно прикрыть на этом этапе. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 16:05 |
|
Проблема удаленных(удаления) записей в Transact-SQL
|
|||
---|---|---|---|
#18+
PWPпрошелмимо но в идеале, наличие или отсутствие удаленных записей ни на что не влияет. Ну это , действительно, в идеале, а если не поставить ".. where !(deleted)", то очень даже влияет. В общем, еще раз спасибо всем, принявшим участие, думаю вопрос можно прикрыть на этом этапе. where !(deleted) гы, это и есть тот идеал т.е. при написании запроса Вы сразу подразумеваете, что в табличке будет "мусор", который и не будет влиять пы сы: для 9-ки с бинарным индексом по условию делетед такой запрос будет оптимизируемым. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 16:18 |
|
Проблема удаленных(удаления) записей в Transact-SQL
|
|||
---|---|---|---|
#18+
> Автор: ВладимирМ Ничего не понял. Автор топика PWPРабота должна идти из программы, ну скажем , на С++ или X++ и нужно сформировать DBF-таблицу через SQL запросы ( а перед этим хотелось бы ее вычистить) > 2. Сделать выборку только по тем записям, которые НЕ помечены как удаленные. Это делает настройка SET DELETED ON Каким образом программа написанная на Х++ может воспользоватся настройкой фокспро? > Что Вы хотите получить в результате: Я так и не понял, почему-то просто создавать DBF-файл автор не хочет. Или если нужно просто прочитать из DBF-файла данные и только не помеченные как удаленные, то изучив структуру DBF и обратив особое внимание на значение по смещению 10-11 байт можно получить и флаг удаленности записи. Но каким-то образом автор ушел удовлетворённый. непонятно (с) Не помню кто Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 16:30 |
|
Проблема удаленных(удаления) записей в Transact-SQL
|
|||
---|---|---|---|
#18+
Игорь Горбонос > Автор: ВладимирМ Ничего не понял. Автор топика PWPРабота должна идти из программы, ну скажем , на С++ или X++ и нужно сформировать DBF-таблицу через SQL запросы ( а перед этим хотелось бы ее вычистить) > 2. Сделать выборку только по тем записям, которые НЕ помечены как удаленные. Это делает настройка SET DELETED ON Ну это на форуме и выяснилось... Игорь Горбонос Каким образом программа написанная на Х++ может воспользоватся настройкой фокспро? > Что Вы хотите получить в результате: Я так и не понял, почему-то просто создавать DBF-файл автор не хочет. Или если нужно просто прочитать из DBF-файла данные и только не помеченные как удаленные, то изучив структуру DBF и обратив особое внимание на значение по смещению 10-11 байт можно получить и флаг удаленности записи. Но каким-то образом автор ушел удовлетворённый. непонятно (с) Не помню кто Ну 10-11 байт исследовать не так просто.. Все решается стандартными методами, вот автор и ушел удовлетворенный. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 17:24 |
|
|
start [/forum/topic.php?fid=41&msg=36535199&tid=1585482]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 269ms |
0 / 0 |