Есть ли новые опции ODBC для Foxpro?

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

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

Спасибо.


person jetimms    schedule 03.08.2009    source источник


Ответы (2)


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

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

http://www.sybase.com/ianywhere

person Rick Schummer    schedule 06.08.2009
comment
Я должен попробовать это сейчас. Спасибо за информацию и извините за дежавю :] - person jetimms; 07.08.2009

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

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

После регистрации и информации о библиотеке типов «Добавить ссылку» в приложение 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
person DRapp    schedule 03.08.2009
comment
Вы ответили именно на то, что я спросил, и спасибо за это, кстати:). Я хотел спросить: какие типы драйверов ODBC, альтернативы MS Foxpro 6.0, мы могли бы использовать? На самом деле я рад, что вы опубликовали свой ответ, потому что мне действительно интересно, как использовать архитектуру среднего уровня через Foxpro, и это показывает, как это сделать. Спасибо еще раз. - person jetimms; 03.08.2009
comment
Кстати, о каких проблемах безопасности вы упомянули? - person jetimms; 03.08.2009
comment
На самом деле доступен драйвер OleDB для VFP9, но я не знаю ваших версий данных. Что касается безопасности, если вы запускаете как .DLL, у него будут любые права через учетную запись пользователя .Net, а если он находится в каталоге с ограниченным доступом, он не будет работать, однако вы можете делать имперсинации. Я не специалист по безопасности, но надеюсь, что помог вам двигаться вперед. Я действительно написал некоторый класс-оболочку на C#.net, который позволяет напрямую взаимодействовать с таблицами VFP для SQL-Select, Update, Delete и приспосабливается к параметризованным запросам, чтобы помочь ограничить SQL-инъекцию. - person DRapp; 04.08.2009