Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Fehlermeldungen für Benutzer bauen (https://www.delphipraxis.net/82648-fehlermeldungen-fuer-benutzer-bauen.html)

Kattl 17. Dez 2006 12:56

Datenbank: Acess • Zugriff über: ADOConnection

Fehlermeldungen für Benutzer bauen
 
Ich änder mal den Monstertext...

Kattl 17. Dez 2006 13:41

habs kürzer gefasst
 
Das wollte ich damit nicht bezwecken. Die Hausaufgaben habe ich ja ansich schon fertig, doch mit den Fehlermeldungen komme ich nicht klar.

Delphi-Quellcode:
ADOQuery1.SQL.Add(mabfrage.Text);

 If mabfrage.Text = '' then
  MessageDlg ('SQL Anweisung eingeben!',mtError,[mbOk],0)
else
//ADOQuery1.ExecSQL;

MAusgabe.Clear;
Ich möchte dann, dass das Programm dem Nutzer sagt, das er eine SQL anweisung eingeben soll. Warum das Program dann abstürzt, wenn keine drin steht, weiß ich selbst, aber eben das will ich ja verhindern, damit der Benutzer keine Probleme hat.

Ich habe versucht:

mit einer not an weisung
Delphi-Quellcode:
 If mabfrage.Text not 'abfrage.txt' then begin
dann kommt der Einlesecode

und dann:

Delphi-Quellcode:
else begin
Else will er aber nicht anerkennen. Dann kommen Fehlermeldungen , dass else nicht nach einem ; steht oder ein end erwartet wird.

Dann habe ich es mit mehreren If Anweisungen probiert. Inzwischen bin ich soweit, dass es zwar die Fehlermeldung anzeigt, aber das Porgramm trotzdem abstürzt.

Ich hätte mich nie an ein Forum gewandt, wenn ich es selbst gekonnt hätte. Da ich ehrgeizig genug bin alles selbst hinzubekommen, doch wenn man wirklich nicht weiter weiß, braucht man nun Mal Hilfe und da ich das noch nie gemacht habe, sah es etwas unspezifisch aus.

Ich werde nächstes Mal drauf achten

Nils_13 17. Dez 2006 13:46

Re: Fehlermeldungen für Benutzer bauen
 
Du hast wahrscheinlich vor dem else noch ein end; stehen, entferne das Semikolon und es sollte funktionieren.

Delphi-Quellcode:
procedure TForm1.btnfladenClick(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    if FileExists(OpenDialog1.Filename) then
      lbxFeldnamen.Items.LoadFromFile(OpenDialog1.FileName);
  end;
end;

Klaus01 17. Dez 2006 13:48

Re: Fehlermeldungen für Benutzer bauen
 
Hallo,

geht es denn nicht so?

Delphi-Quellcode:
begin
  ADOQuery1.Active:=False; //Daten werden nicht mehr angezeigt
  ADOQuery1.SQL.Clear;

  If mabfrage.Text = '' then begin
     MessageDlg ('SQL Anweisung eingeben!',mtError,[mbOk],0)
  else
    begin
      ADOQuery1.SQL.Add(mabfrage.Text);
      ADOQuery1.ExecSQL;
    end;
  ADOQuery1.Active:= True;
  MAusgabe.Clear;
...
Ansonsten besteht noch die Möglichkeit
Fehler mit try except einzuklammern und dann entsprechend
darauf zu reagieren.

Grüße
Klaus

r2c2 17. Dez 2006 13:57

Re: habs kürzer gefasst
 
Zitat:

Zitat von Kattl
Das wollte ich damit nicht bezwecken.

Damit der Satz auch verstanden wird: http://forum.dsdt.info/viewtopic.php?t=31829

Zitat:

Ich habe versucht:

mit einer not an weisung
Delphi-Quellcode:
 If mabfrage.Text not 'abfrage.txt' then begin

Du solltest dich mal etwas mit den Grundlagen befassen. not is n Boolscher operator. der hilft dir das nicht. <> muss es heißen. In deinem konkreaten Fall aber fehlen die begin...end-Blöcke... Klaus hat hierzu schon was geschrieben...

Zitat:

Delphi-Quellcode:
else begin
Else will er aber nicht anerkennen. Dann kommen Fehlermeldungen , dass else nicht nach einem ; steht oder ein end erwartet wird.
Das hat Nils schon erklärt.

Zitat:

Ich hätte mich nie an ein Forum gewandt, wenn ich es selbst gekonnt hätte. Da ich ehrgeizig genug bin alles selbst hinzubekommen, doch wenn man wirklich nicht weiter weiß, braucht man nun Mal Hilfe und da ich das noch nie gemacht habe, sah es etwas unspezifisch aus.

Ich werde nächstes Mal drauf achten
Der Grund, warum ich deinen Thread geschlossen habe, war einzig und allein der nicht verlinkte Crosspost...
Gegen Fragen hat niemand etwas, solange du dich mit dem Problem auseinandersetzt.

Und noch n paar Links, die dir bei solchen Problemen helfen könnten:
http://www.dsdt.info/grundlagen/
http://www.dsdt.info/tutorials/?cat=1

mfg

Christian

Kattl 17. Dez 2006 14:05

Re: Fehlermeldungen für Benutzer bauen
 
Hey super, danke für die schnellen Antworten :) und es funktioniert super
@Nils Das mit dem FileExists kannte ich noch nicht, hab es auch in keiner Hilfe gefunden - aber dxamit funktioniert es super, danke :D

@Klaus01 es lag daran, dass ich das begin hinter Else vergessen habe - jetzt funktioniert es so - danke :D

@r2c2 mit <> habe ich es auch schon probiert, aber da kommt nicht mal eine Fehlermeldung, sondern es passiert gar nichts. Deswegen war ich verwundert - hm, das not ein boolscher operator ist wusste ich zwar, aber naja - anfangen konnte ich damit nicht viel ^^: Sollte ich, ja Ich werde mir die grundlagen mal ansehem, die helfen mir dann auch bei der Prüfung, wenn denn Delphi drankommt

r2c2 17. Dez 2006 14:13

Re: Fehlermeldungen für Benutzer bauen
 
Zitat:

Zitat von Kattl
Das mit dem FileExists kannte ich noch nicht, hab es auch in keiner Hilfe gefunden - aber dxamit funktioniert es super, danke :D

Mal wieder n Beispiel dafür, was Crossposts machen. FileExists hab ich dir im geschlossenen thread ne halbe Stunde früher schon genannt. Nur hier wusste keiner davon...
Damit das nicht nochmal passiert, hier n Link zum nächsten Crosspost:
Cosspost bei dsdt.info: http://forum.dsdt.info/viewtopic.php?t=31832

mfg

Christian


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