|
Update таблиц и многопользовательская работа.
|
|||
---|---|---|---|
#18+
Есть БД на ФоксПро для Доса, набор дбф таблиц. Нужно обновлять данные в этих дбф таблицах с MS SQL Server-a. С этими дбф таблицами работают другие пользователи, и в идеале обновление в них нужно делать в "горячем" режиме, т.е. во время работы с ними других пользователей. Я планирую делать так: с SQL Server сначала беру необходимые данные и выгружаю их в промежуточные, временые дбф таблицы. Затем уже из промежуточных дбф загружать данные в целевую базу. Так вот вопрос: 1) Если БД для Фокс Про для Доса, то можно ли для работы с ними использовать VisualFox Pro? 2) Можно ли изменять данные в целевых таблицах, не блокируя их? т.е. чтобы сохранялся многопользовательский режим работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2009, 11:32 |
|
Update таблиц и многопользовательская работа.
|
|||
---|---|---|---|
#18+
На второй вопрос кажется нашел ответ. Написал небольшую програмку на VFP для обновления данных в одной дбф таблице из другой. LOCAL _ID USE E:\polic15\16_01_2009\rezept.dbf SHARED IN A USE E:\polic15\temp2\rezept_out2.dbf SHARED IN B ? 'START' SELECT B SCAN _ID = ID replace IN A FOR (ID = _ID) lgota WITH B->Lgota ? TKey, NOmer, v ENDSCAN CLEAR all Многопользовательскую работы имитировал одновременным запуском двух копий прогрммы. Кажется работает. Хотя во время операции Replace все ровно похоже блокирует всю таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2009, 11:48 |
|
Update таблиц и многопользовательская работа.
|
|||
---|---|---|---|
#18+
Viktor_d1) Если БД для Фокс Про для Доса, то можно ли для работы с ними использовать VisualFox Pro? Да, можно. Но при соблюдении определенных ограничений: 1. Даблица DBF должна иметь установленный признак кодовой страницы. Т.е. CPDBF() должно иметь не нулевое значение. Для русского языка это обычно 866 2. Если существует структурный индексный файл по таблицам DOS с выражениями тегов, отличных от простого имени файла, например, UPPER(MyField), то после модификации таких таблиц из VFP индексы придется перестраиваеть заново (REINDEX), поскольку они начнут показывать не корректную информацию. Т.е. лучше DOS-таблицы в этом случае из VFP не модифицировать Viktor_d2) Можно ли изменять данные в целевых таблицах, не блокируя их? т.е. чтобы сохранялся многопользовательский режим работы. Вопрос поставлен не корректно. 1. Изменять данные не блокируя их при этом не может никто! Ни одна база данных. Поскольку в этом случае нет никакой гарантии того, что вы запишите корректные данные. Т.е. данные введенные одним процессом, а не "группой товарищей" 2. Однако читать данные можно и в процессе их модификации. Но здесь следует понимать, что вы читаете "грязные" данные. Т.е. пользователь их, конечно, изменил, но может еще передумать и откатить сделанные изменения, вернувшись в исходное состояние. Кроме того, вы можете прочитать частичные (не согласованные) изменения. FoxPro позволяет читать данные в любой момент. Даже при их блокировке другим процессом. Исключением является открытие таблиц в режиме Exclusive. В этом случае другой процесс просто не сможет открыть таблицу. Как следствие, не сможет и прочить из нее что-либо. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2009, 11:49 |
|
Update таблиц и многопользовательская работа.
|
|||
---|---|---|---|
#18+
Команда REPLACE c FOR-условием блокирует всю таблицу. Команда REPLACE без условий блокирует только одну (текущую) запись. Команда UPDATE-SQL блокирует только те записи, которые модифицирует. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2009, 11:51 |
|
Update таблиц и многопользовательская работа.
|
|||
---|---|---|---|
#18+
ВладимирМ 2. Если существует структурный индексный файл по таблицам DOS с выражениями тегов, отличных от простого имени файла, например, UPPER(MyField), то после модификации таких таблиц из VFP индексы придется перестраиваеть заново (REINDEX), поскольку они начнут показывать не корректную информацию Я не очень уже помню, но по моему ни каких проблем не будет. У нас в свое время с одними и теме-же таблицами работали модули написанные на FoxPro 2.6 и VFP 6, VFP 8.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2009, 22:58 |
|
Update таблиц и многопользовательская работа.
|
|||
---|---|---|---|
#18+
gepard45ВладимирМ 2. Если существует структурный индексный файл по таблицам DOS с выражениями тегов, отличных от простого имени файла, например, UPPER(MyField), то после модификации таких таблиц из VFP индексы придется перестраиваеть заново (REINDEX), поскольку они начнут показывать не корректную информацию Я не очень уже помню, но по моему ни каких проблем не будет. У нас в свое время с одними и теме-же таблицами работали модули написанные на FoxPro 2.6 и VFP 6, VFP 8.0 Кодовые страницы таблиц? Кодовые страницы среды FoxPro? Выражение индексного ключа? Была ли модификация из VFP тех полей , которые входили в выражение индекса? Т.е. при соблюдении определенных условий так можно работать и ничего страшного не произойдет. Но если тщательно следить за выполнением этих условий! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2009, 16:35 |
|
Update таблиц и многопользовательская работа.
|
|||
---|---|---|---|
#18+
ВладимирМ Слушай ! Сейчас вопрос совместной работы приложений написанных на Foxpro и VFP носит теоритический характер, но я тебе могу сказать, что в свое время наш коммерчиский продукт успешно работал имея в своем составе модули как на Foxpro так и на VFP ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2009, 17:25 |
|
Update таблиц и многопользовательская работа.
|
|||
---|---|---|---|
#18+
В догонку Надо различать таблицы созданные в FoxPro 2.0 и FoxPro 2.6 (начиная с этой версии стали проставлять кодовуя страницу, 2.5 мы опустим, но для Windows лучше таблицы 2.0). Это, мне кажется связано с передачей прав собственности, т.к. FoxLab была раньше не зависимой компанией ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2009, 17:39 |
|
Update таблиц и многопользовательская работа.
|
|||
---|---|---|---|
#18+
gepard45 Ты вообще слышишь (читаешь) то, что я говорю (пишу)? Работать можно, при соблюдении определенных ограничений Повторю еще раз: можно, но с условием! Раз ваше приложение работало, значит эти условия выполнялись. Версия FoxPro никакой роли не играет. Просто для FPD2.0 возникает дополнительное условие. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2009, 18:01 |
|
Update таблиц и многопользовательская работа.
|
|||
---|---|---|---|
#18+
ВладимирМ Если ты так жестко ставиш вопрос Отвечаю жестко: ни ХРЕНА работать можно без ограничений. А если жопа то это дерьмово написанное мат.обеспечение. Foxpro классный продукт и он поддерживает совместимость своих таблиц (не смотря на многолетние усилия Била убить его) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2009, 19:23 |
|
Update таблиц и многопользовательская работа.
|
|||
---|---|---|---|
#18+
Это же все легко проверяется. Без хамства и наездов. - Создайте в FPD таблицу с символьным полем. Создайте по этой таблице структурный индексный файл по выражению UPPER(MyField) - Теперь откройте эту таблицу в Visual FoxPro в среде с кодовой страницей 1251 и модифицируйте это символьное поле. - Далее снова вернитесь в FPD и попробуйте через SEEK найти это измененное значение Получилось? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2009, 00:11 |
|
|
start [/forum/topic.php?fid=41&fpage=130&tid=1586591]: |
0ms |
get settings: |
14ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
others: | 316ms |
total: | 481ms |
0 / 0 |