Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Programmabsturz nach fehlerhaftem SQL-Statement (https://www.delphipraxis.net/28498-programmabsturz-nach-fehlerhaftem-sql-statement.html)

andianon 25. Aug 2004 14:02


Programmabsturz nach fehlerhaftem SQL-Statement
 
Hallo,

ich greife per BDE auf eine Sybase-Datenbank zu.

Delphi-Quellcode:
...
try
  MeineQuery.ExecSQL
except
  on ....
end;
Ich bin in der Entwicklungsphase, d.h. ich teste verschiedene Statements. Auf meinem Desktoprechner(Win2000) geht Delphi nach dem Versuch, ein fehlerhaftes SQL-Statement abzusetzen, sauber in den except-Block und führt die Fehlerbehandlung aus.
Auf meinem Notebook (ebenfalls Win2000, gleiche Delphi-Version...) stürzt das Programm ohne weitere Meldungen ab und der Task ist weg. Im Debug-Modus lande ich in einer endlosen "unzulässiger Zugriff auf [...ellenlange Speicherangabe...]..."-Meldung und kann das Programm dann nur noch mit STRG-F2 abschießen.

Gleiches Verhalten habe ich, wenn ich z.B. einen Tippfehler im SQL-Explorer habe und versuche, das Statement auszuführen. Dann stürzt der ohne Meldung ab.


Hat jemand ne Idee?

Gruß Andi

Bernhard Geyer 25. Aug 2004 14:53

Re: Programmabsturz nach fehlerhaftem SQL-Statement
 
Hab zwar nichts mit Sybase zu tun, aber folgende Angaben fehlen:

- Welche Zugriffsweg wird gewählt (BDE -> SQL-Links / BDE -> ODBC)
- Treiberversionen auf den diversen Rechten

Ich würde dir raten auch die BDE durch einen nativen Zugriff wie z.B. SQL-Direkt zu ersetzen. BDE ist ein aussterbender Weg und mit diversen Bugs/unzulänglichkeiten behaftet.

andianon 25. Aug 2004 15:01

Re: Programmabsturz nach fehlerhaftem SQL-Statement
 
DB-Server: Sybase Adaptive Server Enterprise 12.5.2
BDE: Version 5.0.1 (auf beiden Rechnern)
SQL-Explorer: Version 4.00 (auf beiden Rechnern)
Zugriff über SQL-Links: Native-Sybase-Treiber für BDE: Version 4.00

BDE ist beim Kunden im Einsatz -> liegt nicht an mir, nativer Zugriff wäre mir auch lieber.

Bernhard Geyer 25. Aug 2004 15:32

Re: Programmabsturz nach fehlerhaftem SQL-Statement
 
Ist vieleicht ein HP-Druckertreiber installiert (Delphi 5 (Windows Me) stürzt bei Division durch Null ab

andianon 26. Aug 2004 08:25

Re: Programmabsturz nach fehlerhaftem SQL-Statement
 
Nein, es ist kein HP-Druckertreiber installiert. Und es müsste schon mit dem Teufel zugehen, wenn da eine Division durch null stattfinden sollte. Und im Zweifelsfall müsste das im except-block landen, was ja auf meinem Desktoprechner auch klappt. Ist Windows 2000.

Andi

Bernhard Geyer 26. Aug 2004 13:43

Re: Programmabsturz nach fehlerhaftem SQL-Statement
 
Zitat:

Zitat von andianon
Und im Zweifelsfall müsste das im except-block landen, was ja auf meinem Desktoprechner auch klappt. Ist Windows 2000.

Eben nicht. Wie im Link beschrieben setzen manche HP-Druckertreiber (und ich glaub auch manche DirectX/Graphikkarten-Treiber) das HW-Exceptionhandling außer Kraft (Programmierfehler bzw. zur "Performancestreigerung") und dann nützt dir dein Delphi try-except nichts mehr.

andianon 30. Aug 2004 13:39

Re: Programmabsturz nach fehlerhaftem SQL-Statement
 
Zitat:

Wie im Link beschrieben setzen manche HP-Druckertreiber (und ich glaub auch manche DirectX/Graphikkarten-Treiber) das HW-Exceptionhandling außer Kraft
Es funzt aber auch ohne HP-Druckertreiber nicht. Andere exceptions werden überigens sauber abgearbeitet. Hast du noch Infos, welcher DirectX/GraKa-Treiber da sonst noch rumpfuscht?

Gruß Andi

Bernhard Geyer 30. Aug 2004 15:35

Re: Programmabsturz nach fehlerhaftem SQL-Statement
 
Leider nein :-(

War mal 'ne Antwort von A.Kosch im Entwickler-Forum. Aber es könnte durch dortigen Server-Crash (mit Datenverlust) sein, daß die Anwort nicht mehr vorhanden ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:05 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