Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Update таблиц и многопользовательская работа. / 11 сообщений из 11, страница 1 из 1
01.04.2009, 11:32
    #35905226
Viktor_d
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update таблиц и многопользовательская работа.
Есть БД на ФоксПро для Доса, набор дбф таблиц.
Нужно обновлять данные в этих дбф таблицах с MS SQL Server-a.
С этими дбф таблицами работают другие пользователи, и в идеале обновление в них нужно делать в "горячем" режиме, т.е. во время работы с ними других пользователей.

Я планирую делать так: с SQL Server сначала беру необходимые данные и выгружаю их в промежуточные, временые дбф таблицы. Затем уже из промежуточных дбф загружать данные в целевую базу.

Так вот вопрос: 1) Если БД для Фокс Про для Доса, то можно ли для работы с ними использовать VisualFox Pro?
2) Можно ли изменять данные в целевых таблицах, не блокируя их? т.е. чтобы сохранялся многопользовательский режим работы.
...
Рейтинг: 0 / 0
01.04.2009, 11:48
    #35905276
Viktor_d
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update таблиц и многопользовательская работа.
На второй вопрос кажется нашел ответ. Написал небольшую програмку на 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 все ровно похоже блокирует всю таблицу.
...
Рейтинг: 0 / 0
01.04.2009, 11:49
    #35905279
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update таблиц и многопользовательская работа.
Viktor_d1) Если БД для Фокс Про для Доса, то можно ли для работы с ними использовать VisualFox Pro?
Да, можно.

Но при соблюдении определенных ограничений:

1. Даблица DBF должна иметь установленный признак кодовой страницы. Т.е. CPDBF() должно иметь не нулевое значение. Для русского языка это обычно 866

2. Если существует структурный индексный файл по таблицам DOS с выражениями тегов, отличных от простого имени файла, например, UPPER(MyField), то после модификации таких таблиц из VFP индексы придется перестраиваеть заново (REINDEX), поскольку они начнут показывать не корректную информацию.

Т.е. лучше DOS-таблицы в этом случае из VFP не модифицировать

Viktor_d2) Можно ли изменять данные в целевых таблицах, не блокируя их? т.е. чтобы сохранялся многопользовательский режим работы.
Вопрос поставлен не корректно.

1. Изменять данные не блокируя их при этом не может никто! Ни одна база данных. Поскольку в этом случае нет никакой гарантии того, что вы запишите корректные данные. Т.е. данные введенные одним процессом, а не "группой товарищей"

2. Однако читать данные можно и в процессе их модификации. Но здесь следует понимать, что вы читаете "грязные" данные. Т.е. пользователь их, конечно, изменил, но может еще передумать и откатить сделанные изменения, вернувшись в исходное состояние. Кроме того, вы можете прочитать частичные (не согласованные) изменения.

FoxPro позволяет читать данные в любой момент. Даже при их блокировке другим процессом. Исключением является открытие таблиц в режиме Exclusive. В этом случае другой процесс просто не сможет открыть таблицу. Как следствие, не сможет и прочить из нее что-либо.
...
Рейтинг: 0 / 0
01.04.2009, 11:51
    #35905290
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update таблиц и многопользовательская работа.
Команда REPLACE c FOR-условием блокирует всю таблицу. Команда REPLACE без условий блокирует только одну (текущую) запись. Команда UPDATE-SQL блокирует только те записи, которые модифицирует.
...
Рейтинг: 0 / 0
04.04.2009, 22:58
    #35912467
gepard45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update таблиц и многопользовательская работа.
ВладимирМ

2. Если существует структурный индексный файл по таблицам DOS с выражениями тегов, отличных от простого имени файла, например, UPPER(MyField), то после модификации таких таблиц из VFP индексы придется перестраиваеть заново (REINDEX), поскольку они начнут показывать не корректную информацию

Я не очень уже помню, но по моему ни каких проблем не будет. У нас в свое время с одними и теме-же таблицами работали модули написанные на FoxPro 2.6 и VFP 6, VFP 8.0
...
Рейтинг: 0 / 0
05.04.2009, 16:35
    #35912962
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update таблиц и многопользовательская работа.
gepard45ВладимирМ

2. Если существует структурный индексный файл по таблицам DOS с выражениями тегов, отличных от простого имени файла, например, UPPER(MyField), то после модификации таких таблиц из VFP индексы придется перестраиваеть заново (REINDEX), поскольку они начнут показывать не корректную информацию

Я не очень уже помню, но по моему ни каких проблем не будет. У нас в свое время с одними и теме-же таблицами работали модули написанные на FoxPro 2.6 и VFP 6, VFP 8.0
Кодовые страницы таблиц? Кодовые страницы среды FoxPro? Выражение индексного ключа? Была ли модификация из VFP тех полей , которые входили в выражение индекса?

Т.е. при соблюдении определенных условий так можно работать и ничего страшного не произойдет. Но если тщательно следить за выполнением этих условий!
...
Рейтинг: 0 / 0
05.04.2009, 17:25
    #35913022
gepard45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update таблиц и многопользовательская работа.
ВладимирМ
Слушай ! Сейчас вопрос совместной работы приложений написанных на Foxpro и VFP носит теоритический характер, но я тебе могу сказать, что в свое время наш коммерчиский продукт успешно работал имея в своем составе модули как на Foxpro так и на VFP
...
Рейтинг: 0 / 0
05.04.2009, 17:39
    #35913040
gepard45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update таблиц и многопользовательская работа.
В догонку
Надо различать таблицы созданные в FoxPro 2.0 и FoxPro 2.6 (начиная с этой версии стали проставлять кодовуя страницу, 2.5 мы опустим, но для Windows лучше таблицы 2.0). Это, мне кажется связано с передачей прав собственности, т.к. FoxLab была раньше не зависимой компанией
...
Рейтинг: 0 / 0
05.04.2009, 18:01
    #35913057
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update таблиц и многопользовательская работа.
gepard45

Ты вообще слышишь (читаешь) то, что я говорю (пишу)?

Работать можно, при соблюдении определенных ограничений

Повторю еще раз: можно, но с условием! Раз ваше приложение работало, значит эти условия выполнялись.

Версия FoxPro никакой роли не играет. Просто для FPD2.0 возникает дополнительное условие.
...
Рейтинг: 0 / 0
05.04.2009, 19:23
    #35913143
gepard45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update таблиц и многопользовательская работа.
ВладимирМ
Если ты так жестко ставиш вопрос
Отвечаю жестко: ни ХРЕНА работать можно без ограничений. А если жопа то это дерьмово написанное мат.обеспечение. Foxpro классный продукт и он поддерживает совместимость своих таблиц (не смотря на многолетние усилия Била убить его)
...
Рейтинг: 0 / 0
06.04.2009, 00:11
    #35913406
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update таблиц и многопользовательская работа.
Это же все легко проверяется. Без хамства и наездов.

- Создайте в FPD таблицу с символьным полем. Создайте по этой таблице структурный индексный файл по выражению UPPER(MyField)
- Теперь откройте эту таблицу в Visual FoxPro в среде с кодовой страницей 1251 и модифицируйте это символьное поле.
- Далее снова вернитесь в FPD и попробуйте через SEEK найти это измененное значение

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


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