Есть ли новые опции ODBC для Foxpro? - PullRequest
2 голосов
/ 03 августа 2009

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

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

Спасибо.

Ответы [ 2 ]

2 голосов
/ 07 августа 2009

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

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

http://www.sybase.com/ianywhere

1 голос
/ 03 августа 2009

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

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

После регистрации и информации о типе библиотеки «Добавить ссылку» в приложение C # (или другое) вы можете вызывать функции с любыми необходимыми параметрами. Есть много вещей, которые вы можете вернуть обратно, но обычно таблицы, которые я отправляю обратно как XML (через класс FoxAdapter 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
...