AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi - Mysqlerror ausgeben?
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi - Mysqlerror ausgeben?

Ein Thema von LoewenZahn · begonnen am 17. Okt 2013 · letzter Beitrag vom 17. Okt 2013
Antwort Antwort
Benutzerbild von LoewenZahn
LoewenZahn

Registriert seit: 10. Okt 2013
22 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Delphi - Mysqlerror ausgeben?

  Alt 17. Okt 2013, 11:45
Datenbank: Mysql • Version: 5.5.31 • Zugriff über: Delphi
Hallo,

um mir etwas Arbeit zu vereinfachen, habe ich mir ein Programm geschrieben das alle sql Befehle in einer .txt abklappert, dies ist dann nötig wenn ich z.b. eine zu große Liste mit bspw. 300 mio Zeichen habe. Das ganze funktioniert auch ganz gut, nur weiß ich nicht wie ich auf einen Sql-Error reagieren kann.

Beispielsweise möchte ich einen INSERT durchführen, aber eine Spalte existiert nicht. Mysql/phpmyadmin gibt mir dann "#1054 - Unknown column 'BETRAG3' in 'field list'" als Msg aus, doch wie kann ich die gleiche in Delphi ausgeben?

Delphi-Quellcode:
  try
     if query.active then query.Close;
     query.sql.Text := abfrage;
     query.ExecSQL;
  except
      showmessage('Fehler!');
  end;
Ich habe gedacht, dass man hier eventuell mit Try except arbeitet und mehr als nur ein Showmessage anwendet... Leider komme ich nicht drauf.

Hat jemand eine Anregung/Tipp ?

Gruß
Tim
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Delphi - Mysqlerror ausgeben?

  Alt 17. Okt 2013, 11:48
Du musst mit der Exception-Message arbeiten. Frei ohne Compiler getippt:

Delphi-Quellcode:
try
  ...
except
  on e: Exception
    ShowMessage('Fehler: ' + e.Message);
end;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von LoewenZahn
LoewenZahn

Registriert seit: 10. Okt 2013
22 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Delphi - Mysqlerror ausgeben?

  Alt 17. Okt 2013, 11:54
Oh nein so einfach? Und da dachte ich aufgrund meiner Suche wäre die Antwort um einiges schwerer.. Wenn man weiß wonach man suchen muss wird man jetzt schnell findig..

Vielen Dank!!
Tim
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi - Mysqlerror ausgeben?

  Alt 17. Okt 2013, 11:58
Es geht übrigens auch sowas
Delphi-Quellcode:
// in System.ExceptObject steckt die letzte/aktuelle Exception (also zufällig die von dem aktuellen Except-Block)
// und SysUtils.ShowException zeigt den normalen Exception-Dialog an
try
  ...
except
  ShowException(ExceptObject, ExceptAddr);
end;
Delphi-Quellcode:
// entspricht in etwa dem ShowMessage(E.Message);
try
  ...
except
  on E: Exception do
    ShowException(E, nil);
end;
Delphi-Quellcode:
// entspricht in etwa dem ShowMessage('Fehler: ' + E.Message);
try
  ...
except
  on E: Exception do begin
    E.Message := 'Fehler: ' + E.Message;
    ShowException(E, nil);
  end;
end;
$2B or not $2B

Geändert von himitsu (17. Okt 2013 um 12:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#5

AW: Delphi - Mysqlerror ausgeben?

  Alt 17. Okt 2013, 11:58
Darf ich noch fragen welche Komponente du nutzt um auf den MySQL Server zuzugreifen ?
00111100001100110010000001000100011001010110110001 1100000110100001101001
  Mit Zitat antworten Zitat
Benutzerbild von LoewenZahn
LoewenZahn

Registriert seit: 10. Okt 2013
22 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Delphi - Mysqlerror ausgeben?

  Alt 17. Okt 2013, 13:46
Hallo Back2Code,

ich nutze eine TmySQLDatabase mit zugehöriger Dataset und query. Die Elemente habe ich von "DAC for MySQL".

Gruß
Tim
  Mit Zitat antworten Zitat
VCLControls

Registriert seit: 14. Aug 2013
31 Beiträge
 
Delphi 7 Professional
 
#7

AW: Delphi - Mysqlerror ausgeben?

  Alt 17. Okt 2013, 16:40
ich nutze eine TmySQLDatabase mit zugehöriger Dataset und query. Die Elemente habe ich von "DAC for MySQL".
Ich benutze die Komponenten von denen zwar schon lange nicht mehr, aber es müsste nach meiner Erinnerung bei der Datenbankkomponente(den Namen weiß ich nicht mehr aus dem Kopf), so was wie ein onError-Event geben, mit dem man alle auftretenden Fehler behandeln kann.
Spart man sich evt. jede Menge try-except Behandlungen und hat es an zentraler Stelle.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:04 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