Připojení k FoxPro tabulkám v C# pomocí ODBC
Petr Wiedemann, 8. srpen 2010
Pro otevření DBF souborů v C# můžeme použít ODBC ovladač pro Visual FoxPro. Podmínkou je jeho existence v systému. Ovladač je možné stáhnout na stránce Visual FoxPro ODBC Driver. Následující kousek kódu ukazuje, jak je možné otevřít DBF soubor a načíst jeho obsah.
class Dbf2
{
public OdbcConnection Connect(string SourceDB)
{
try
{
OdbcConnection conn = new OdbcConnection();
conn.ConnectionString =
"Driver={Microsoft Visual FoxPro Driver};" +
"SourceType=DBF;" +
"SourceDB=" + SourceDB + ";" +
"Exclusive=No";
conn.Open();
return conn;
}
catch (OdbcException e)
{
DisplayOdbcError(e);
return null;
}
}
private void DisplayOdbcError(OdbcException e)
{
string errorMessages = "";
for (int i = 0; i < e.Errors.Count; i++)
{
errorMessages += "Index #" + i + "\n" +
"Message: " + e.Errors[i].Message + "\n" +
"NativeError: " + e.Errors[i].NativeError.ToString() + "\n" +
"Source: " + e.Errors[i].Source + "\n" +
"SQL: " + e.Errors[i].SQLState + "\n";
}
Console.WriteLine(errorMessages);
}
public void Run()
{
OdbcConnection conn = Connect("D:\\dbfdata");
if (conn == null)
return;
try
{
string SQL = "SELECT * FROM dbfsoubor";
OdbcCommand MyCommand = new OdbcCommand(SQL, conn);
OdbcDataReader dr = MyCommand.ExecuteReader();
while (dr.Read())
{
StringBuilder sb = new StringBuilder();
for (int col = 0; col < dr.FieldCount; col++)
{
sb.Append(dr[col].ToString().Trim());
if (col < dr.FieldCount - 1)
sb.Append(", ");
}
Console.WriteLine(sb.ToString());
}
dr.Close();
}
catch (OdbcException e)
{
DisplayOdbcError(e);
}
if (conn != null)
conn.Close();
}
}