:: Не фоксом единым
Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
Chips

Сообщений: 93
Дата регистрации: 11.02.2016
Здравствуйте.

Не получается подключится в C# к FoxPro DBF файлам.
Нулевой байт BDF 0x30

www.microsoft.com

Supported Operating System
Windows 2000 Service Pack 3, Windows 98, Windows ME, Windows Server 2003, Windows XP

А для Win 7 где взять, кто нибудь знает?
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
Chips
Здравствуйте.
Не получается подключится в C# к FoxPro DBF файлам.
Нулевой байт BDF 0x30

www.microsoft.com

Supported Operating System
Windows 2000 Service Pack 3, Windows 98, Windows ME, Windows Server 2003, Windows XP

А для Win 7 где взять, кто нибудь знает?
Там же и тот же. Просто во времена его создания про Win7 еще не знали.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
Может вы его тупо не там администрировать пытаетесь?

Потыкайтесь в х86 ODBC источники:
c:\Windows\SysWOW64\odbcad32.exe
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Может быть он пытается из x64 приложения подключиться, а провайдера то 64-разрядного майкрософтовского то и нету...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
Chips

Сообщений: 93
Дата регистрации: 11.02.2016
Я скачал VFPOLEDBSetup.msi, установил.
Захожу в папку C:\Windows\SysWOW64
Запускаю odbcad32.exe

Вкладка "Пользовательский DSN"
Нажимаю кнопку "Добавить"

Из предложенного списка выбираю "Microsoft Visual FoxPro Driver"
Получаю сообщение:
"You must first install the current version of the Visual FoxPro ODBC Driver.
Go to msdn.microsoft.com. Select Product Updates, then
Visual FoxPro ODBC Driver"

Что я делаю не так? =(
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
Chips
Что я делаю не так? =(
Выбираете не тот драйвер.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
Chips

Сообщений: 93
Дата регистрации: 11.02.2016
ssa
Chips
Что я делаю не так? =(
Выбираете не тот драйвер.

А какой надо?

Там есть такие варианты:
Driver para o Microsoft Visual FoxPro
Microsoft dBase VFP Driver
Microsoft FoxPro VFP Driver
Microsoft Visual FoxPro Driver
Microsoft Visual FoxPro-Treiber

Результат выбора одинаков.



Исправлено 1 раз(а). Последнее : Chips, 12.08.16 14:51
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
OLEDB <> ODBC
Установленные OLE DB провайдеры можно увидеть лишь в 32-битной версии утилитки-редактора udl файлов. Запуск её на x64 системе идёт через команду
C:\Windows\Syswow64\Rundll32.exe "%CommonProgramFiles(x86)%\System\OLE DB\oledb32.dll",OpenDSLFile some_path\test.udl

Лично у меня, отчего-то, попытка сконфигурировать источник для VFP провайдера заканчивается его вылетом по ошибке


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
Chips

Сообщений: 93
Дата регистрации: 11.02.2016
Видимо из Win 7 подключить фоксовские файлы невозможно.
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Через ODBC попробуй - сначала VFP ODBC драйвер установи, потом используй "провайдер для ODBC".
Дело в том, что C# в любом случае не работает напрямую ни с OLEDB, ни с ODBC - всё через обёртки/wrapper-ы - а "родного" .NET провайдера для VFP MS никогда не делало.
Впрочем, стоит попробовать разобраться почему не работает собственно vfp oledb провайдер... Раньше у меня не было проблем с ним - да и у клиентов работает у многих...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
Chips
Видимо из Win 7 подключить фоксовские файлы невозможно.
Что за чушь? Ставите провайдера, настраиваете строку подключения и из 32-битного кода вперед и с песней. На 10-ке работает, а на 7-ке -сам бог велел.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
Chips

Сообщений: 93
Дата регистрации: 11.02.2016
ssa
Что за чушь? Ставите провайдера, настраиваете строку подключения и из 32-битного кода вперед и с песней. На 10-ке работает, а на 7-ке -сам бог велел.

Я побывал и у меня ничего не получилось.
А можно по подробней как это сделать?
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
using System;
using System.Data;
using System.Data.OleDb;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
using (IDbConnection connection = new OleDbConnection(@"Provider=VFPOLEDB.1;Data Source=""D:\Test\testDB.dbc"""))
{
connection.Open();
using (IDbCommand command = connection.CreateCommand())
{
command.CommandText = "select * from test";
using (IDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader.GetValue(0));
}
}
}
}
Console.ReadLine();
}
}
}
У меня работает - переустановил провайдер... Кавычки в пути к БД не обязательны, если в пути нет пробелов. Для FREE таблиц в качестве источника указывается просто папка.


------------------
WBR, Igor
Ratings: 0 negative/1 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
Александр Жевелев

Сообщений: 2723
Откуда: Новосибирск
Дата регистрации: 09.10.2003
Свободные таблицы на 7-ке читаются и с использованием
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + putFileName + "; Extended Properties=dBASE IV;"
где
putFileName
- путь к папке с dbf
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
Chips

Сообщений: 93
Дата регистрации: 11.02.2016
Получилось все сделать по коду Igor Korolyov
Откуда вы всё это узнаёте?
Я очень долго искал, так ничего и не нашёл.

Возник вопрос!
Что лучше?
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + putFileName + "; Extended Properties=dBASE IV;"

или

IDbConnection connection = new OleDbConnection(@"Provider=VFPOLEDB.1;Data Source=""D:\Test\testDB.dbc""")

P.S.

Как перегнать объект класса IDataReader в какую нибудь коллекцию =) ?
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
Разумеется VFPOLEDB, ибо только он родной и самый последний. Microsoft.Jet.OLEDB.4.0 - как уже написано - только со свободными таблицами и без некоторых фичек фоксовых таблиц.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Chips
Как перегнать объект класса IDataReader в какую нибудь коллекцию
В какую именно?
Начнём с того что IDataReader это не объект а интерфейс.
Реализующий данный интерфейс объект (в данном случае это будет OleDbDataReader) не содержит в себе никаких данных и там по сути нечего "перегонять" - он лишь даёт доступ к данным. Ну примерно как водопроводный кран даёт доступ к воде поступающей из водопровода.
Но это всё так - теория и терминология (которую всё же стоит знать и уважать).

Теперь к самой задаче - если нужна коллекция (массив/список) объектов из "записей таблицы" то нужен маппер - средство осуществляющее преобразование "голых" данных получаемых при помощи того же IDataReader в соответствующую коллекцию. Как правило маппер занимается и обратным преобразованием - т.е. переносит данные из некоторого объекта или коллекции объектов обратно в таблицу БД.
Сейчас в .net имеется практически "встроенный" маппер (разрабатывается в т.ч. силами MS, весьма мощный и уже не зубодробительно сложный в использовании - каким он появился изначально) - называется он EntityFramework. Лучше будет изучить именно его, а не писать самоделки

Впрочем, если уж очень хочется "народного творчества", то нет особых проблем - например второй ответ в этой теме вполне себе ничего (если .net несвежий, то можно очень просто заменить все эти лямбда-методы, методы-расширения и автоматические классы на тупой прямолинейный код)... Примитивный хардкодинг, зато простой как грабли.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
Chips

Сообщений: 93
Дата регистрации: 11.02.2016
"Впрочем, если уж очень хочется "народного творчества"" - Вообще никак не хочется!
Очень сильно сомневаюсь что напишу что-то лучше чем парни из MS.

Спасибо всем за помощь.
Ratings: 0 negative/0 positive
Re: Где взять microsoft ole db provider for visual foxpro 9.0 для windows 7
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Тогда сразу изучай EF (особенно если не нужно к старой БД цепляться - т.е. можно перепроектировать схему под себя - так как удобнее для написания нового софта), про DataReader можешь на время забыть - он слишком низкоуровневый.
Датасеты - тоже по сути обёртка над низкоуровневыми ридерами - слишком убого и устарело - с объектами, как правило, гораздо удобнее работать чем с DataTable и иже с ними...


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 6 (Гостей: 6)

© 2000-2024 Fox Club 
Яндекс.Метрика