Probleme mit ADOTable
Hallo,
ich hab ein Problem mit dieser Funktion. Ich möchte in der Tabelle test1 alle Werte aus der Spalte sSubject auslesen und in eine Datei schreiben. Dies tut er aber irgendwie nicht richtig. An meinem Rechner macht er es allerdings und am anderen nicht. Er schreibt noch in die LogDatei, dass er die Spalte einliest (s. (1)) und der nächste Eintrag in die LogDatei ist bei (2), dass ein Fehler beim Bearbeiten der TAbelle aufgetreten ist. Eintrag (3) kommt auch nicht in der LogDatei an, also müsste er die Tabelle geöffnet haben, oder? Woran kann das nun liegen?
Delphi-Quellcode:
function DBEintraegeInStringListeSortieren():Boolean;
var posx : Integer; s : String; zahl, code: Integer; begin try //alle TabellenEinträge aus sSubject in Stringliste schreiben frmLueckenSucher.ADOTable.TableName:= 'test1'; (1) uLogFile.LogAdd(LogDatei, 'Einlesen der sSubject-Spalte', true); frmLueckenSucher.ADOTable.Open; if not frmLueckenSucher.ADOTable.Active then (3) uLogFile.LogAdd(LogDatei, 'Tabelle konnte nicht geöffnet werden', true) with frmLueckenSucher.ADOTable do begin try First; uLogFile.LogAdd(LogDatei, 'erster Datensatz', true); //solange nicht am Ende while not Eof do begin posx:= pos(':',frmLueckenSucher.ADOTable.FieldValues ['sSubject']); if posx > 0 then begin s:= ''; s:= copy(frmLueckenSucher.ADOTable.FieldValues ['sSubject'],posx+1,Length( frmLueckenSucher.ADOTable.FieldValues['sSubject'])); s:= Trim(s); if length(s) < 6 then next; if not (s='') then begin val(s,zahl, code); if code > 4 then uLogFile.LogAdd(GesamteLuecken, Trim(copy (s,1,code-1)), true); if code = 0 then uLogFile.LogAdd(GesamteLuecken, Trim(inttoStr (zahl)), true); end; end; Next; end; except ShowMessage('Fehler'); end; end; uLogFile.LogAdd(LogDatei, 'mit ganzer Tabelle fertig', true); LueckenListe.LoadFromFile(GesamteLuecken); //dann Stringliste aufsteigend sortieren LueckenListe.Sort; uLogFile.LogAdd(LogDatei, 'Liste sortiert', true); Result:= True; except Result:= False; (2) uLogFile.LogAdd(LogDatei, 'Fehler beim Bearbeiten der Tabelle', true); end; end; |
Re: Probleme mit ADOTable
Nein, die Tabelle wurde nicht geöffnet, da der Fehler wohl ausgelöst wird, wenn du die Tabelle öffnest.
Da der Fehler auf deinem Rechner nicht auftritt, wären folgende Informationen für eine Fehlersuche wichtig: welche Datenbank wird verwendet,ist die Datenbank auf dem zweiten Rechner installiert, ist auf dem zweiten Rechner überhaupt ADO installiert, das du ja verwendest. Sollte auf dem zweiten Rechner kein ADO installiert sein schau mal hier vorbei, da findest du Links zu den notwendigen MDAC's und, falls es sich um MS Access als Datenbank handelt, Links zu den notwendigen Servicepacks. Grüße Mikhal |
Re: Probleme mit ADOTable
Ich stelle in einer anderen Funktion eine Verbindung zur Datenbank her und das macht er ja auch einwandfrei ohne Fehlermeldung auf dem anderen Rechner.
der ConnectionString ist in einer ini-Datei hinterlegt, und der Tabellenname immer gleich. Die Datenbank ist auch auf dem zweiten Rechner, ado auch |
Re: Probleme mit ADOTable
Hi,
wenn Du mit den Adokomponenten arbeitest, würde ich dir ans Herz legen, die folgenden Threads zu studieren, das könnte viel Schmerz ersparen. TBetterAdodataset |
Re: Probleme mit ADOTable
Hi,
weiterhin wäre es eine gute Idee, wenn Du die Fehlermeldung nicht unterdrückst, sondern sie anzeigen, oder in die Logdatei schreiben läßt. Grüsse Woki |
Re: Probleme mit ADOTable
wie komme ich denn an die Fehlermeldung ran?
|
Re: Probleme mit ADOTable
Kommentiere mal deinen äußeren try...except block aus, wenn du dann dein Programm laufen läßt, sollte er dir die Original-Fehlermeldung ausgeben.
[edit]Hier findest du Code, der es dir ermöglicht alle erzeugten Fehlermeldungen auszugeben.[/edit] Grüße Mikhal |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:14 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