Вопрос

Обычно мы используем MS Visual Foxpro версии 9.0 SP1, язык, таблицы и отчеты.Однако иногда мы используем драйвер ODBC для подключения к таблицам.Драйвер ODBC был написан для Foxpro версии 6 и не поддерживает определенные вложенные выборки, поля автоинкремента или встроенные приведения.

Мы хотели бы найти альтернативу тому, что у нас есть.Это может быть другой драйвер ODBC, который работает с Visaul Foxpro v9, или полная альтернатива ODBC.Существует ли такая вещь?

Спасибо.

Это было полезно?

Решение

(Поговорим о повторном использовании, просто ответил на это сегодня в другой теме)

Если вы ищете драйвер ODBC для баз данных и таблиц VFP, вы могли бы рассмотреть возможность использования базы данных Advantage от iAnywhere.У них есть локальный движок и серверный движок.Локальный движок имеет движок для доступа к данным DBF, но в вашем случае у него также есть ODBC-накопитель, который работает с данными VFP вплоть до текущей версии Visual FoxPro 9 включительно.Локальный движок и прилагаемый драйвер ODBC бесплатны.

http://www.sybase.com/ianywhere

Другие советы

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

Вы можете создавать как однопоточную, так и многопоточную библиотеку DLL.

После регистрации, когда в typelibrary будет указано "Добавить ссылку" на C # (или другое) приложение, вы сможете выполнять вызовы функций с любыми необходимыми вам параметрами.Есть много вещей, которые вы можете вернуть обратно, но обычно таблицы я отправляю обратно в виде XML (через класс Foxpro XmlAdapter), затем потоковое преобразование в таблицу один раз в C #.Прошло некоторое время с тех пор, как я работал таким образом, но это дает огромную гибкость, поскольку вы можете выполнять свои запросы, циклы сканирования и другое сложное условное тестирование и обновление курсора, прежде чем генерировать XML и возвращать его в виде строки.

DEFINE CLASS YourClass as CUSTOM  OLEPUBLIC
  FUNCTION GetMyData( lcSomeString as String)
    select * from (YourPath + "SomeTable" ) where ... into cursor C_SomeCursor readwrite
    .. any other manipulation, testing, etc...
    oXML = CREATEOBJECT( "xmladapter" )
    lcXML =  ""
    oXML.AddTableSchema( "C_SomeCursor" )
    oXML.ToXML( "lcXML", "", .f. )

    return lcXML
  ENDFUNC 
ENDDEFINE
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top