Error: Identifier not found "do" [gelöst]

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
AlterMann
Beiträge: 225
Registriert: So 13. Dez 2009, 09:43
OS, Lazarus, FPC: Lazarus 2.0.0 r60307 FPC 3.0.4 i386-win32-win32/win64
CPU-Target: x86 64Bit
Wohnort: Niederösterreich

Error: Identifier not found "do" [gelöst]

Beitrag von AlterMann »

Guten Tag

Hat diese Meldung schon einmal jemand von euch beim Compilieren erhalten?
Ich zweifle grad wieder an meinem Verstand.

Code: Alles auswählen

procedure TForm1.SQLVerbinden;

 begin
  MySQL51Connection1.HostName := Form5.ComboBox1.Text;
  try
  MySQL51Connection1.Open;
  except
   on EDataBaseError do  // <- [b]Hier kommt der Fehler[/b]
    begin
     ShowMessage('Konnte nicht mit Server verbinden'+#13+'Programm wird beendet');
    end;
  end;
  if MySQL51Connection1.Connected then
   begin
    Panel2.Color := clGreen;
    Panel2.Hint:='Mit SQL-Server '+MySQL51Connection1.HostName+' verbunden';
   end;
 end;

Exact diesselbe Abfolge an Befehlen verwende ich in etlichen anderen Programmen und die Compilieren problemlos ... :oops:

Danke für's Lesen
Christian
Zuletzt geändert von AlterMann am So 20. Feb 2022, 17:05, insgesamt 1-mal geändert.
Früher war alles besser. Und aus Holz!

sstvmaster
Beiträge: 512
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.2
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Error: Identifier not found "do"

Beitrag von sstvmaster »

Ich glaube es muss richtig heissen:

Code: Alles auswählen

try
  ...
except
  on E: ... do
  begin
  ...
  end;
end;
Windows 10,
- Lazarus 2.2.2 (stable) + fpc 3.2.2
- Lazarus 2.2.3 (fixes) + fpc 3.3.1
LG Maik

Benutzeravatar
Jorg3000
Lazarusforum e. V.
Beiträge: 42
Registriert: So 10. Okt 2021, 10:24
OS, Lazarus, FPC: Win64
Wohnort: NRW

Re: Error: Identifier not found "do"

Beitrag von Jorg3000 »

Was bedeutet das "E:" eigentlich genau?
Ich habe das "E:" immer als Pascal-Fremdkörper empfunden.

sstvmaster
Beiträge: 512
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.2
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Error: Identifier not found "do"

Beitrag von sstvmaster »

Das wird die Globale Exception Klasse von Lazarus/FPC sein: https://wiki.freepascal.org/Exceptions .
Windows 10,
- Lazarus 2.2.2 (stable) + fpc 3.2.2
- Lazarus 2.2.3 (fixes) + fpc 3.3.1
LG Maik

wp_xyz
Beiträge: 4262
Registriert: Fr 8. Apr 2011, 09:01

Re: Error: Identifier not found "do"

Beitrag von wp_xyz »

Ich meine eher: der Name der Exception-Variablen, die hier - ganz Pascal-untypisch - inline erzeugt wird, so dass man auf die Exception-Properties, insbesondere den Message-Text zugreifen kann. Denn statt E:Exception kann man auch jeden anderen gültigen Pascal-Variablenbezeichner verwenden: "on Absturz:Exception do" geht auch.

AlterMann
Beiträge: 225
Registriert: So 13. Dez 2009, 09:43
OS, Lazarus, FPC: Lazarus 2.0.0 r60307 FPC 3.0.4 i386-win32-win32/win64
CPU-Target: x86 64Bit
Wohnort: Niederösterreich

Re: Error: Identifier not found "do"

Beitrag von AlterMann »

sstvmaster hat geschrieben:
So 20. Feb 2022, 15:26
Ich glaube es muss richtig heissen:

Code: Alles auswählen


  on E: ... do

Dein Hinweis hat mich auf die richtige Spur gebracht.

Ich hatte vergessen die unit "db" einzubinden, deshalb kannte der Compiler den Bezeichner EDataBaseError nicht.
Warum er das do als unbekannt moniert hat, weiß ich nicht. Ist aber auch egal.

Jetzt funktioniert es auf beiderlei Arten mit "E:" davor und ohne.

Danke
Christian
Früher war alles besser. Und aus Holz!

Antworten