Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Probleme mit ADOTable (https://www.delphipraxis.net/29681-probleme-mit-adotable.html)

Susanne 13. Sep 2004 08:10


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;

mikhal 13. Sep 2004 09:03

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

Susanne 13. Sep 2004 09:26

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

woki 13. Sep 2004 09:30

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.

Hier im Forum suchenTBetterAdodataset

woki 13. Sep 2004 09:35

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

Susanne 13. Sep 2004 10:10

Re: Probleme mit ADOTable
 
wie komme ich denn an die Fehlermeldung ran?

mikhal 13. Sep 2004 10:13

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