Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADOTable und *.DBF (https://www.delphipraxis.net/95171-adotable-und-%2A-dbf.html)

Fritz01 2. Jul 2007 14:58

Datenbank: DBase für Windows • Zugriff über: ADOTable, ADOConnection

ADOTable und *.DBF
 
Hallo,
seit einiger Zeit versuche ich Daten aus einer *.dbf Tabelle mittels ADOTable und ADOConnection in eine TDBLookupListBox zu bringen.
Connection: Provider MSDASQL.1 Microsoft OLE DB Provider for ODBC Drivers, dazu den Microsoft dBaseTreiber(*.dbf). Verbindungtest: erfolgreich
Während der Entwicklung: ADOConnection.Connected:=true, ADOTable.Aktve:=true;
Die (*.dbf) Daten werden in die LookupListBox übertragen. Das ist soweit OK.
Danach ADOConnection.Connected:=false, ADOTable.Aktive:=false; und compilieren.
Mit ButtonClick sollen während der Laufzeit ADOConnection.Connected:=true; ADOTable.Aktve:=true; gesetzt werden.
Nach einiger Zeit erscheint die Meldung:
Variante des Typs (Null) konnte nicht in Typ (String) konvertiert werden.
Wer kennt diese Erscheinung oder hat sogar die Lösung???
Fritz

shmia 2. Jul 2007 18:07

Re: ADOTable und *.DBF
 
Du solltest den Debugger anwerfen.
Wahrscheinlich steht irgendwo eine Zeile wie z.B.
Delphi-Quellcode:
  Anschrift := TableKundenstamm['Anschrift'];
Wenn nun das Feld "Anschrift" den Wert NULL enthält kommt es zum Fehler.
So geht's ohne Fehler:
Delphi-Quellcode:
  Anschrift := TableKundenstamm.FieldByName('Anschrift').AsString;

Fritz01 2. Jul 2007 18:44

Re: ADOTable und *.DBF
 
Hallo Shima,
danke für die schnelle Antwort.
Habe nur die Komponenten DataSource, AdoTable, AdoConnection und die ListBox im DemoPrg.
Da habe ich nur die Datenbank dran, sonst keine Programmierung!
Mit einer AdoQuery erscheint dieser Fehler nicht.
Fritz

Fritz01 3. Jul 2007 21:15

Re: ADOTable und *.DBF
 
Hallo,
nun läuft meine Demo, d.h. Delphi schließen und nur die Demo.exe öffnen.
Danach werden die AdoConnection.connected:=true; und die AdoTable.Aktive:= true; gesetzt.
Aber das dauert entsetzlich lange, das ist doch wohl nicht normal.
Wer hat einen Tipp dazu? Danke
Fritz


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz