Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   try und except (https://www.delphipraxis.net/102695-try-und-except.html)

little-x 2. Nov 2007 15:30


try und except
 
Hallo,

ich greife mittels bde auf informix zu und muss ermitteln ob es eine temptable schon gibt. Dazu schieße ich ein Select ab (mit TQuery). Ich hatte vor, die Fehlermeldung, die bei TQuery.Open kommt (falls die Tabelle nicht da ist), mittels try/Except zu unterdrücken. Aber irgendwas mache ich falsch.

Hier mein Code:
Delphi-Quellcode:
FUNCTION check_if_table(temp_tab: string): BOOLEAN;
        var    qry:   TQuery;
                retVal: boolean;
begin
        retVAL:= true;
        qry:= TQuery.Create(Application);
        qry.DatabaseName := 'meinedb';
        qry.SQL.Append('select * from ' + temp_tab + ' where 1=2');
        try
                // Bei der nächsten kommt schon die Fehlermeldung. Das finde ich
                // doof, schließlich ist doch der try-except dafür da
                // dass man erstmal "versucht".
                qry.Open;
        except
                  // Wat muss nu hier rein???????
                  // Ich bin leicht genervt.
                  // Wobei ich zugeben muss bisher kaum mit tryexcept gearbeitet zu haben.
                 retVal:= false;
        end;
        qry.free;
        result:= retVal;
end;
Danke schön.

3_of_8 2. Nov 2007 15:34

Re: try und except
 
try-except fängt in der Tat Exceptions ab. Aber der Debugger stoppt trotzdem. Wenn du die fertige EXE ausführst, kommt keine Meldung. Du kannst aber in den Debugger-Optionen einstellen, dass der Debugger bei bestimmten Exceptions nicht anhält, oder auch gar nicht anhält.

little-x 2. Nov 2007 15:39

Re: try und except
 
Danke !!!

Jetzt kann ich das endlich im großen Stil anwenden.

Programmiere seit einem 3/4 Jahr mit Delphi und hatte try/except anfangs mal versucht. Habe es dann bleiben lassen, weil es ja "scheinbar" nicht so funktionierte (wie jetzt) - bis ich jetzt nicht anders kann als es zu verwendet.

grenzgaenger 2. Nov 2007 17:50

Re: try und except
 
besser ist es da, mal ins informix handbuch zu lurken und die tabelle herauszusuchen, in welcher die tabellen gespeichert sind... dann kannste einfach 'n select absetzen und schon weisste ob du die hast... und das ganze ohne das system zu vergewaltigen.... :-)

DP-Maintenance 2. Nov 2007 18:10

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Ein delphispezifisches Problem

little-x 5. Nov 2007 15:06

Re: try und except
 
Zitat:

besser ist es da, mal ins informix handbuch zu lurken und die tabelle herauszusuchen, in welcher die tabellen gespeichert sind... dann kannste einfach 'n select absetzen und schon weisste ob du die hast... und das ganze ohne das system zu vergewaltigen....
War ja das erste was ich probiert habe. Leider kann ich trotz intensiver Suche den Ort, an dem sich Informix die Temptables merkt, nicht finden. Standardtables werden in "systables" gespeichert - temporäre Tabellen nicht.

Muss es leider mit der "Vergewaltigungs-Methode" machen. Sonst bliebe nur die Variante der Merk-Variablen (globaler Merker: boolean, true=Temptable erstellt, false=noch nicht). Da ich sehr viele Temptables brauche und diese sich bis auf einen Zähler am Ende vom Namen her gleichen, und die Anzahl aber nicht vorhersehbar ist, wäre das ziemlich unübersichtlich. Habe einfach keine Lust darauf.

Wenn aber jemand weiß wo man Informix per SQL die Temptables der aktuellen (User-)Session ermitteln kann, wäre ich diesem Jemand sehr dankbar :lol:


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