Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Cannot connect to a DBF file via oleDbConnection
Message
Information générale
Forum:
ASP.NET
Catégorie:
ADO.NET
Divers
Thread ID:
00672175
Message ID:
00675745
Vues:
16
I confirmed as per MSDN article "Registry Entries":

When you install the Visual FoxPro OLE DB Provider, the installation program updates your system's registry, HKEY CLASSES_ROOT, to add the following new keys:

HKEY_CLASSES_ROOT\VFPOLEDB

HKEY_CLASSES_ROOT\VFPOLEDB.1

HKEY_CLASSES_ROOT\Vfpoledb.ConnectionPage

HKEY_CLASSES_ROOT\Vfpoledb.ConnectionPage.1

HKEY_CLASSES_ROOT\VFPOLEDB.ErrorLookup

HKEY_CLASSES_ROOT\VFPOLEDB.ErrorLookup.1



>Check in the registry to see if it made the proper entries. Have you tried using the OLEDB provider outside of .NET?
>
>>Just tried regsvr32 and it still doesn't work...
>>
>>>It sounds like the OLEDB provider is not registered correctly. Locate your VFPOLEDB.DLL file and register it with regsvr32. The installer may have had trouble installing it.
>>>
>>>>I do not have this problem when running the Web Service below on a machine with VFP 7 installed.
>>>>
>>>>Do I have to do something special to register the VFP OLEDB Provider on a target machine that does not have VFP 7 installed?
>>>>
>>>>I applied VFP7SP1 and re-booted prior to generating an InstallShield installer with the VFP OLEDB Provider merge module.
>>>>
>>>>What am I doing wrong?
>>>>
>>>>>I have installed the VFP OleDB Provider and I can access a free DBF table after dragging the OleDbConnection and OleDbDataAdapter objects onto my C# WebService project design pannel and generate a DataSet.
>>>>>
>>>>>However, I cannot access the free table via a DataReader object.
>>>>>
>>>>>My WebService has the following code:
>>>>>
>>>>> [WebMethod]
>>>>> public string GetLastPrefix()
>>>>> {
>>>>> string sqlString;
>>>>> string lastPrefix;
>>>>>
>>>>> OleDbCommand sqlCmd = new OleDbCommand();
>>>>>
>>>>> sqlString = "SELECT cPrefix FROM bsreg";
>>>>> sqlCmd.CommandType = CommandType.Text;
>>>>> sqlCmd.CommandText = sqlString;
>>>>> sqlCmd.Connection = xOleDbConn;
>>>>>
>>>>> // Init lastPrefix to ""
>>>>> lastPrefix = "";
>>>>>
>>>>> xOleDbConn.Open();
>>>>>
>>>>> OleDbDataReader dr = sqlCmd.ExecuteReader();
>>>>> if (dr.Read())
>>>>> lastPrefix = dr[0].ToString();
>>>>>
>>>>> xOleDbConn.Close();
>>>>>
>>>>> return lastPrefix;
>>>>> }
>>>>>
>>>>>And I get the following error when I invoke the WebService:
>>>>>
>>>>>System.InvalidOperationException: The 'VFPOLEDB.1' provider is not registered on the local machine. ---> System.Data.OleDb.OleDbException: No error information available: REGDB_E_CLASSNOTREG(0x80040154).
>>>>> --- End of inner exception stack trace ---
>>>>> at System.Data.OleDb.OleDbConnection.CreateProviderError(Int32 hr)
>>>>> at System.Data.OleDb.OleDbConnection.CreateProvider()
>>>>> at System.Data.OleDb.OleDbConnection.Open()
>>>>> at wsBSSN.BSSN.GetLastPrefix() in d:\develop\net\bssn\wsbssn\bssn.asmx.cs:line 96
>>>>>
>>>>>
>>>>>Line 96 points to: xOleDbConn.Open();
>>>>>
>>>>>I'm not getting any compile errors.
>>>>>
>>>>>Does the VFP OleDb Provider work with the DataReader object?
>>>>>
>>>>>
>>>>>>You need to use the OLEDB provider that ships with VFP7 not ODBC. There are samples available about how to access VFP data using ADO.NET in the following whitepaper:
>>>>>>
>>>>>>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfoxgen7/html/usingaspnetwithvfp7.asp
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform