Ошибка поставщик vfpoledb 1 не зарегистрирован на локальном компьютере

Alright, so I’ve got a Windows service that has a FileSystemWatcher that watches an output folder for some Visual FoxPro database files. And it leverages the VFPOLEDB.1 provider to read those files. I cannot go away from this provider because it’s being used in production.

However, I’ve never had to support this application before so that’s why my development box isn’t setup for it. Here is my environment:

  • Windows 7 x64
  • Visual Studio 2005
  • .NET 2.0 Windows service

so, when I first started getting the error I figured I just didn’t have the provider at all, and I was right. So, I downloaded and installed it from here.

I then proceeded to drop the files in the folder again, but I got the same error.

I figured because it’s an x64 machine I might be experiencing problems with it getting registered since it was probably dropped into SysWOW64, and it was as I expected, so I ran this command:

regsvr32 "C:WindowsSysWOW64mscomct2.ocx"

and it said it was successfully registered (which means about nothing LOL) but I dropped the files in again — same error.

I have not yet rebooted my machine, and I can if somebody has a compelling reason that’s the problem, but generally speaking if the assembly is registered properly with regsvr32 that’s not necessary. I’ve worked with a ton of COM objects and never have to reboot to get to the object as long as I’ve registered it.

Does anybody know another step I need to perform to get this thing registered?

Can you please test this code (provided you have or created c:temp):

void Main()
{
    if (IntPtr.Size == 8)
    {
        Console.WriteLine("Sorry this is not going to work in 64 bits");
    }
    else
    {
        DataTable tbl=new DataTable();
        using (OleDbConnection con = new OleDbConnection(@"Provider=VFPOLEDB;Data Source=c:Temp"))
        {
            con.Open();
            new OleDbCommand("create table myTest (id int, dummy c(10))",con).ExecuteNonQuery();
            var cmd = new OleDbCommand(@"insert into myTest (id, dummy) values (?,?)",con);
            cmd.Parameters.Add("id", OleDbType.Integer);
            cmd.Parameters.Add("dum", OleDbType.VarChar,10);

            for (int i = 0; i < 10; i++)
            {
                cmd.Parameters["id"].Value = i + 1;
                cmd.Parameters["dum"].Value = $"Dummy#{i+1}";
                cmd.ExecuteNonQuery();
            }

            tbl.Load(new OleDbCommand("select * from myTest",con).ExecuteReader());
        }
        foreach (DataRow row in tbl.Rows)
        {
            Console.WriteLine($"{(int)row["id"]} : {(string)row["Dummy"]}");
        }
    }
    Console.ReadLine();
}

Or if you edit in Notepad and compile with csc:

using System;
using System.Data;
using System.Data.OleDb;
namespace Test
{
  class Test
  {

static void Main()
{
    if (IntPtr.Size == 8)
    {
        Console.WriteLine("Sorry this is not going to work in 64 bits");
    }
    else
    {
        DataTable tbl=new DataTable();
        using (OleDbConnection con = new OleDbConnection(@"Provider=VFPOLEDB;Data Source=c:Temp"))
        {
            con.Open();
            new OleDbCommand("create table myTest (id int, dummy c(10))",con).ExecuteNonQuery();
            var cmd = new OleDbCommand(@"insert into myTest (id, dummy) values (?,?)",con);
            cmd.Parameters.Add("id", OleDbType.Integer);
            cmd.Parameters.Add("dum", OleDbType.VarChar,10);

            for (int i = 0; i < 10; i++)
            {
                cmd.Parameters["id"].Value = i + 1;
                cmd.Parameters["dum"].Value = $"Dummy#{i+1}";
                cmd.ExecuteNonQuery();
            }

            tbl.Load(new OleDbCommand("select * from myTest",con).ExecuteReader());
        }
        foreach (DataRow row in tbl.Rows)
        {
            Console.WriteLine($"{(int)row["id"]} : {(string)row["Dummy"]}");
        }
    }
    Console.ReadLine();
}

}
}

Save it, say VFPOLEDBTest.cs and compile with:

csc VFPOLEDBTest.cs /platform:x86

and run:

VFPOLEDBTest.exe

Output:

d:Academy>VFPOLEDBTest.exe
1 : Dummy#1
2 : Dummy#2
3 : Dummy#3
4 : Dummy#4
5 : Dummy#5
6 : Dummy#6
7 : Dummy#7
8 : Dummy#8
9 : Dummy#9
10 : Dummy#10

  • Remove From My Forums
  • Question

  • Hi there.

    Long time no see:)

    My VS2008 Ult 64 bit crashed and I had to replace it with Windows 7. At this point I decided finally to convert ALL my VFP DBs to Sql Server (I still have a couple of very important not converted). I installed VFP v 9.0, I installed SP1 and SP2, I installed OleDB Provider for VFP, I can open tables in VFP Management Console but I get this error when I try to use my C# conversion routines.

    What am I missing.

    Thanks.


    AlexB — Win_7 Pro64, SqlSer64 WinSer64

Answers

  • This is for anyone that still needs to use the VFPOLEDB driver for their 32-bit apps, but need to do their development in Windows 7 64-bit.  Installing it should be the same as Vista, but the steps below I did not need to do in Vista 64, only Windows 7 64…

    1.  If the Driver is installed, uninstall it.
    2.  Open a Command Prompt running «As Administrator»
    3.  Run the VFPOLEDBSetup.msi from the command prompt.

    It will install successfully and work correctly for your 32 bit apps.  As all of you should know by now, it will not work on 64-bit compiled applications.

    Happy Legacy Coding!!! :)


    Gregfig

    • Proposed as answer by

      Friday, March 5, 2010 8:54 PM

    • Marked as answer by
      Martin_Xie
      Monday, March 8, 2010 5:11 AM

  • Once its get registered, then do you change your APPLICATION->COMPILE OPTION as x86 CPU ?


    U.PARANTHAMAN

    • Proposed as answer by
      Mike Hills
      Friday, March 26, 2010 5:26 AM
    • Marked as answer by
      Martin_Xie
      Tuesday, March 30, 2010 6:06 AM

  • Thanks for helpful hints.

    I went to my Vista machine (Vista Ult x64 ) and ran the routines successfully converting all my tables to Sql Server. I used OleDb driver VFPOLEDB.1. Dbcd driver did not work. It gave me the same exception: the method is not supported.

    So, for all practical purposes the issue is closed.

    Unless proven otherwise I maintain that with every new OS MS drops support to VFP lower and lower. Nothing is checked in terms of compatbility. No support, no checking. Therefore if one driver is not recognized for some reason so be it. I hope this information will help some to asess their committment to VFP. I was attacked by one weirdo for no reason. What I said was true. The fact that Cetin is not here is another ominous sign. I remember he told me that he was switching to Sql Server although I haven’t seen him much over there either but I don’t use it that much since I’ve learned what I need at the minimum. I wish somebody warned me years ago that VFP would demise but nobody had integrity to do it. I had to figure it out myself. The same thing happened when I was doing Visual dBase. There was a forum and people were active, then all of a sudden membership dropped and in a matter of a few months the forum died. I switched to VFP and invested two years for nothing.


    AlexB — Win_7 Pro64, SqlSer64 WinSer64

    • Marked as answer by
      Martin_Xie
      Monday, January 25, 2010 6:17 AM
    • Edited by
      AlexBB — Vista Ult64 SqlSer64 WinSer64
      Monday, March 1, 2010 3:04 PM

  • To make sure you are allowing 32-bit apps, go to IIS Manager/Application Pools select your application, click advanced settings and set enable 32-bit applications to true.

    • Proposed as answer by
      charoldson
      Monday, March 4, 2013 5:28 PM
    • Marked as answer by
      Naomi N
      Wednesday, January 29, 2014 11:09 PM

RRS feed

  • Remove From My Forums
  • Общие обсуждения

  • Здравствуйте.

    При попытке запустить приложение (.net), использующее vfpoledb провайдер, появляется сообщение типа «Поставщик ‘VFPOLEDB’ не зарегистрирован на локальном компьютере«. Дословно — приведу завтра. Провайдер, скачанный с сайта

    microsoft установлен.

    На 2003-м сервере все работает нормально.

    Помогите решить проблему.

    • Изменен тип
      Vinokurov Yuriy
      27 июля 2010 г. 11:18
      давность и отсутствие активности в теме

Все ответы

  • Сделал как указали.При команде regsvr32 vfpoledb.dll выводит сообщении об успешном выполнении. Также пробовал ставить vfpodbc и делать соединение через odbc — результат примерно одинаков(vfpoledb: «Поставщик vfpoledb не зарегистрирован на локальном
    компьютере»).

  • У вас установлен FoxPro на этой машине? Если да, то какой? И еще один вариант, слегка бредовый — оставьте в системе только 1 копию библиотеки поставщика, другую удалите начисто. И попробуйте разрегистрировать, а потом зарегистрироват поставщика заново.


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется «как есть» без каких-либо гарантий
    Доклады на Techdays:
    http://www.techdays.ru/speaker/Vinokurov_YUrij.html

  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме.


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется «как есть» без каких-либо гарантий
    Доклады на Techdays:
    http://www.techdays.ru/speaker/Vinokurov_YUrij.html

Hi everyone,

when i restarted my power bi query editor, i’ve seen that my queries had all this error:

DataSource.Error: An error happened while reading data from the provider: 'The 'VFPOLEDB.1' provider is not registered on the local machine.'
Details:
    DataSourceKind=OleDb

and my data will not refresh.

What can i do?

Solved!

Go to Solution.

  • Ошибка посредник подключений к удаленному рабочему столу не готов к rpc
  • Ошибка последовательной связи фуджитсу
  • Ошибка последовательного порта usb убедитесь что контроллер подключен попробуйте обновить страницу
  • Ошибка последовательного порта pci
  • Ошибка последовательного порта 11 системе не удается найти указанный путь