Выполнение запросов к файлам DBF на SQL Server

Как я уже писал в этой теме Мне нужно синхронизировать SQL Server (не только SQL Server, если вы порекомендуете другой сервер, который делает то же самое) и VFP DBF таблицы для использования в системах компании.

Как сказал @alex-k, Linked Server не поддерживает INSERT, UPDATE и DELETE, но мне нужны операторы CRUD для работы системы. Я уже пробовал предложение @alex-k, но возвращает ошибку.

Поскольку у многих вещей в вычислениях есть более чем один способ, что вы порекомендуете в моей ситуации?

Спасибо.


person Danniel Magno    schedule 29.02.2012    source источник


Ответы (4)


На самом деле я только что установил SQL2008R2 на старую машину. Успешно создан связанный сервер и выполнено обновление непосредственно из SQL. Столкнулся с той же ошибкой, что это не сработает. Итак, я тоже осмотрелся и нашел кое-что на форуме «tek-Tips», в котором описывалось открытие набора строк для применения обновления через эта ссылка

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

SQL Server заблокировал доступ к STATEMENT «OpenRowset/OpenDatasource» компонента «Ad Hoc Distributed Queries», поскольку этот компонент отключен как часть конфигурации безопасности для этого сервера. Системный администратор может включить использование «нерегламентированных распределенных запросов» с помощью процедуры sp_configure. Дополнительные сведения о включении «нерегламентированных распределенных запросов» см. в разделе «Конфигурация контактной зоны» в электронной документации по SQL Server.

Поскольку я не хочу открывать функции, касающиеся безопасности, даже на машине только для примера, вы можете быть более открыты для включения/отключения этой функции и попробовать предложение из tek-tips...

В остальном удачи.

person DRapp    schedule 10.03.2012

Сегодня файлы DBF широко не поддерживаются. Насколько я знаю, Microsoft Access по-прежнему поддерживает файлы dBASE DBF, которые должны быть совместимы с файлами VFP DBF.

Вы можете создать какой-то шлюз в MS Access, отвечающий за синхронизацию баз данных VFP и SQL Server.

person Radek    schedule 29.02.2012

Я не использовал их с тех пор, как они были до Аполлона (это sed, чтобы называться Successware или SDE), но у этой компании может быть что-то, что поможет. Проблема, с которой вы столкнетесь с другими решениями, которые могут читать и записывать dbfs, заключается в том, что они могут быть не в состоянии поддерживать индексные файлы в актуальном состоянии (cdx, ndx и т. д.). Если у них нет драйвера, который помогает, вам, возможно, придется прибегнуть к созданию расширенной хранимой процедуры для собственного вызова их интерфейса. Надеюсь, вам не придется прибегать к этому.

-Дон

person Don Dickinson    schedule 29.02.2012
comment
Что ж. Я только что попробовал SQL Server и выполнил несколько команд, чтобы проверить его функциональность. Когда он вставляет новые записи, он автоматически обновляет индексные файлы, но, как я видел в Интернете, как подключить его к файлам BDF, он не может ни UPDATE, ни DELETE. Решения Apollo работают как демон или их нужно включать в приложение? - person Danniel Magno; 01.03.2012

Рассматривали ли вы создание небольшого приложения Visual FoxPro для этого. Visual FoxPro может читать и писать как в SQL Server, так и в DBF. Мы делали это множество раз. Ключ в том, чтобы понять, какие записи изменились, и использовать суррогатные первичные ключи для обоих наборов данных.

Рик

person Rick Schummer    schedule 01.03.2012
comment
Но если мы это сделаем, нам придется держать некоторый cron для проверки изменений в SQL Server и таблицах DBF. И когда мы будем мигрировать систему шаг за шагом, может случиться так, что два или более человека будут одновременно обращаться к одной и той же таблице (в приложениях VFP и Java), таким образом, целостность будет нарушена. . Или я ошибаюсь? - person Danniel Magno; 01.03.2012
comment
Да, должно быть что-то, чтобы сказать процессу, чтобы проверить данные и сделать обновления. Мне кажется, что это имеет двусторонние обновления, которые необходимо учитывать (например, обновление таблиц VFP, для которых необходимо обновить транзакцию в SQL Server. Еще что-то, что следует учитывать, — это создание собственного журнала транзакций для обработки в другой базе данных, но хитрость заключается в том, чтобы устранить неизбежные конфликты, когда люди в обеих системах обновляют одну и ту же запись в разных базах данных.Насколько чувствительны данные ко времени?Как долго они могут быть устаревшими в другой базе данных? - person Rick Schummer; 01.03.2012