AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DBF-Datenbank einlesen

Ein Thema von Matze · begonnen am 16. Jul 2011 · letzter Beitrag vom 17. Jul 2011
Antwort Antwort
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

DBF-Datenbank einlesen

  Alt 16. Jul 2011, 13:28
Datenbank: dBase? • Version: - • Zugriff über: C#
Hi zusammen,

ich habe hier eine DBF-Datei, die ich mit C# einlesen möchte. Leider klappt das hinten und vorne nicht.
Versucht habe ich es so (Leerzeichen in der Pfadangabe gehen leider nicht ):

Code:
string dbfPah = @"C:\Dokumente und Einstellungen\Eingeschraenkt\Desktop\tmp\";

StringBuilder dbfShortPath = new StringBuilder(255);
GetShortPathName(dbfPah, dbfShortPath, dbfShortPath.Capacity);

dbfPah = dbfShortPath.ToString();

OdbcConnection oConn = new OdbcConnection();
oConn.ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=" + dbfPah + ";Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;";
oConn.Open();

OdbcCommand oCmd = oConn.CreateCommand();
oCmd.CommandText = @"SELECT * FROM [" + dbfPah + "FILE.DBF]";
DataTable dt = new DataTable();
dt.Load(oCmd.ExecuteReader()); // Fehler
oConn.Close();

dataGridView1.DataSource = dt;
Bei
Code:
oCmd.ExecuteReader()
kommt immer der Fehler:

Zitat:
ERROR [42000] [Microsoft][ODBC dBASE Driver] Das Datenbankmodul kann 'C:\DOKUME~1\EINGES~1\Desktop\tmp\FILE.DBF' nicht finden. Stellen Sie sicher, dass es sich um einen gültigen Parameter oder Alias-Namen handelt, der keine ungültigen Zeichen oder falsche Zeichensetzung enthält und dessen Name nicht zu lang ist.
Der Pfad existiert jedoch genau so (C:\DOKUME~1\EINGES~1\Desktop\tmp\).

Wie funktioniert das?
Mit
Code:
System.Data.OleDb
geht's genauso wenig.

Grüße
Matze
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.874 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: DBF-Datenbank einlesen

  Alt 16. Jul 2011, 13:33
Mal mit einem kürzeren Pfad getestet?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: DBF-Datenbank einlesen

  Alt 16. Jul 2011, 13:35
Ja, da kommt dann fast die gleiche Meldung:
Zitat:
ERROR [42S02] [Microsoft][ODBC dBASE Driver] Das Microsoft Jet-Datenbankmodul konnte das Objekt 'D:\tmp\FILE.DBF' nicht finden. Stellen Sie sicher, dass das Objekt existiert und dass die Namens- und Pfadangaben richtig eingegeben wurden.
Vielleicht ist die Art des Aufrufs auch falsch. Nur in einigen Foren wurde es so gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#4

AW: DBF-Datenbank einlesen

  Alt 16. Jul 2011, 14:58
Gibt die InnerException noch mehr Informationen?

//Edit:
Zitat:
Der Pfad existiert jedoch genau so (C:\DOKUME~1\EINGES~1\Desktop\tmp\).
Dadurch, dass es beim Aufbauen der Connection noch nicht knallt, gehe ich davon aus, dass er den Pfad auch findet.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell

Geändert von Mithrandir (16. Jul 2011 um 15:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#5

AW: DBF-Datenbank einlesen

  Alt 16. Jul 2011, 15:17
Eins noch: Sicher, dass es "echtes" dBase und nicht Visual Foxpro ist? Könnte sonst sein, dass du eher auf "VFPOLEDB" wechseln musst.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: DBF-Datenbank einlesen

  Alt 16. Jul 2011, 17:06
Ne, da geht gar nichts. Mal kommt die Pfad-Meldung, mal dass irgendeine Xbase-Memo-Datei nicht gefunden wird etc.

Edit: Halt, es geht. Danke.
Ich dachte, die Datenbank sei die DBF-Datei, aber die anderen Dateien in dem Verzeichnis gehören dazu!
Aber es geht nur mit dem ganz kurzen Pfad (D:\tmp\), mit dem langen (auch in Kurzform) nicht.

Geändert von Matze (16. Jul 2011 um 17:14 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz