Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Error writing data to the connection ??? (https://www.delphipraxis.net/110469-error-writing-data-connection.html)

Sascha-L 18. Mär 2008 14:33

Datenbank: Firebird • Version: 1.5 • Zugriff über: BDE

Error writing data to the connection ???
 
Hallo,

Ich habe fogendes Problem, in einem alten Delphi Projekt greife ich mit einem Select auf eine Firebird Datenbank zu und bekomme dann die Fehlermeldung "Allgemeiner SQL Fehler - Error writing data to the connection".
Was hat dies zu bedeuten und wieso tritt der Fehler auf?


MfG Sascha Lütkemeier

Der_Unwissende 19. Mär 2008 05:28

Re: Error writing data to the connection ???
 
Hi,

ich muss Dir echt meine Bewunderung aussprechen, es ist glaube ich echt schwer noch stärker mit Informationen zu geizen, als Du es jetzt gerade mit Deinem Post tust.
Wie meinst Du denn können Dir die Leute helfen, wenn Du nicht sagst, was genau Du machst? Wie sieht der zugehörige Code aus? Was ist in der DB? Klappt denn dort überhaupt der Zugriff (z.B. von der Konsole)? Ist also die Select-Anweisung überhaupt gültig? Klappt generell der Verbindungsaufbau? ....

Also sei doch bitte so nett und ergänz so viel Information wie möglich, insbesondere sollte immer gesagt werden, was genau Du machst oder schon versucht hast und was davon klappt und was nicht. Und ist sichergestellt, dass der Fehler von dem Absetzen der Select-Anweisung kommt?

Gruß,
Der Unwissende

Sascha-L 19. Mär 2008 07:41

Re: Error writing data to the connection ???
 
Hi und ersteinmal entschuldigung für den 1. schwammigen Post...

Das Projekt besteht schon seit 3 Jahren und Plötzlich erhielten wir diese Meldung, leider mehrfach in den letzten Tagen.
Mit Mad Exception habe ich festgestellt, dass es bei einem Select-Befehl klemmt. Das System greift mit mehreren CLients verteilt auf 2 Rechner auf die Datenbank zu.

Delphi-Quellcode:
           Cl_DBDataBase3.StartTransaction;
           Try
             hlpStr := 'Select' +
             ' Laenge,' +
             ' inneresseitenbrettldg2,' +
             ' wsinnerebrseitenml_dg2,' +
             ' innbrettlaengelns,' +
             ' ausseresseitenbrettldg2,' +
             ' wsausserebrseitenml_dg2,' +
             ' AussBrettlaengeLNS,' +
             ' GanzAusseresSeitenbrettLDG2,' +
             ' wsgaausserebrseitenml_dg2,' +
             ' ganzaussbrettlaengelns,' +
             ' inneresseitenbrettrdg2,' +
             ' wsinnerebrseitenmr_dg2,' +
             ' innbrettlaengerns,' +
             ' ausseresseitenbrettrdg2,' +
             ' wsausserebrseitenmr_dg2,' +
             ' aussbrettlaengerns,' +
             ' ganzausseresseitenbrettrdg2,' +
             ' wsgaausserebrseitenmr_dg2,' +
             ' ganzaussbrettlaengerns' +
             ' From T_Inputdaten';
             hlpStr := hlpStr + ' Where LaufIdx=';
             hlpStr := hlpStr + IntToStr(hIdx);

             Cl_QueryReadSWNachschnitt.Close;

             Cl_QueryReadSWNachschnitt.SQL.Clear;
             Cl_QueryReadSWNachschnitt.SQL.Add(hlpStr);
             Cl_QueryReadSWNachschnitt.Active := True;
             Cl_DBDataBase3.Commit;

             Except
               Cl_DBDataBase3.Rollback;
               Cl_QueryReadSWNachschnitt.Close;
             end;
Die Transaktionscounter gemäß Statistik schweifen nicht weit auseinander. Ich habe bisher noch nichts dagegen machen können, da ich die Bedeutung dieser Fehlermeldung nicht kenne.

Ich hoffe mithilfe dieser Informationen könnt ihr mehr zu dem Problem sagen.

MfG Sascha Lütkemeier

mkinzler 19. Mär 2008 08:04

Re: Error writing data to the connection ???
 
Mich wundert warum er nicht Schreiben kann :gruebel:
Wo tritt der Fehler genau auf? Vielleicht beim Commit? Deaktiviere mal den exception handler.

Hast du dir mal den erzeugten hlpStr anzeigen lassen?
Warum verwendest du keine (SQL-)Parameter?
BTW. Statt
Delphi-Quellcode:
    Cl_QueryReadSWNachschnitt.SQL.Clear;
    Cl_QueryReadSWNachschnitt.SQL.Add(hlpStr);
kannst du auch
Delphi-Quellcode:
    Cl_QueryReadSWNachschnitt.SQL.Text := hlpStr;
schreiben.

Peinhard 19. Mär 2008 08:06

Re: Error writing data to the connection ???
 
Warum denn überhaupt einen Lesezugriff in eine Transaktion kapseln? Da gibt es ja wirklich nichts zu schreiben...

Sascha-L 19. Mär 2008 08:25

Re: Error writing data to the connection ???
 
@ mkinzler Den ExceptionHandler haben wir schon in einen eigenen umgebogen, trotzdem schlägt die Fehlermeldung zu, dies geschieht beim commit. Die SQL-Strings loggen wir alle mit, und es macht keinen Unterschied ob ich meinen Quellcode so verwende oder deinen Vorschlag umsetze. In dem obrigen Post hatte ich mich vertan, die Transaktionscounter laufen nicht auseinander.

@ Peinhard Ich Kapsel das in eine Transaktion, da es ein älteres Projekt ist und noch über die BDE auf die Datenbank zugegriffen wird. Wenn ich dass nicht mache, macht die BDE dann automatisch, jedoch weiß dass niemand genau wann die Transaktion geschlossen wird, desshalb mache ich es manuell.(Ich habe mal versucht es wegzulassen, brachte allerdings auch keinerlei Veränderungen mit sich).

Im Wesentlichen würde ich erst einmal gerne wissen wodurch diese Fehlermeldung ausgelöst werden kann...

MfG Sascha

mkinzler 19. Mär 2008 08:30

Re: Error writing data to the connection ???
 
Kennst du einen Ralf Eberhard? Der hat eine gleichlautende Frage im Entwickler Forum gestellt

Sascha-L 19. Mär 2008 08:39

Re: Error writing data to the connection ???
 
Nein, aber hört sich so an, als wenn ich nicht der einzigste mit solch einem Problem wäre.

Komisch ist nur, dass auch er bisher noch keine Antwort bekommen hat, die ihn weiterbringt... :(

mkinzler 19. Mär 2008 08:44

Re: Error writing data to the connection ???
 
Hast du mal die DB validiert bzw. ein Sweep gestartet oder noch besser ein Backup/Restore durchgeführt?

Sascha-L 19. Mär 2008 08:50

Re: Error writing data to the connection ???
 
Ja, wir haben eigens ein Programm zur Instandhaltung der Datenbenken, dieses führt nach einiger Zeit immer diese Befehle aus und sorgt dafür, dass die Datenbank sauber bleibt...
Der Fehler trat auch nach Ausführung dieses Programms trotzdem weiterhin auf...

PS.: Gibt es irgendwo eine Seite, auf der man die Bedeutung und evtl. Ursachen der Fehlermeldungen nachlesen kann, habe schon gesucht aber bisher keine Quellen gefunden, die zufriedenstellende Ergebnisse brachten...


MfG Sascha


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:44 Uhr.
Seite 1 von 2  1 2      

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