Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   SQLConnect ist erforderlich! (https://www.delphipraxis.net/192314-sqlconnect-ist-erforderlich.html)

haentschman 9. Apr 2017 07:05

AW: SQLConnect ist erforderlich!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin...:P
Zitat:

natürlich noch mehr bemühen, dies zu beherzigen.
...laß doch andere für dich arbeiten. 8-) Haufenweise Tools nehmen dir die Strafarbeit ab. Im CnPack gibt es Tools die nicht mehr missen möchte...andere braucht jemand anders. :wink: (siehe Bild)
1. Codevervollständigung (besser als die eingebaute)
2. SourceHighlight Erweiterung (die bunten Striche) Da sieht man sofort in welcher "Ebene" man ist.
3. Cleaner
4. CodeFormatter
...usw.
Zitat:

Ist der connect-Button mit der Methode überhaupt nötig, wenn doch ohnehin beim Aufruf des Programms die Verbindung zur Datenbank hergestellt wird.
...nein. :wink: Das Datenbank Connect passiert im "Hintergrund". Der User muß nicht darauf achten ob eine Verbindung besteht. Das Programm muß selbst prüfen ob eine Verbindung besteht und sie ggf. herstellen.
Zitat:

ist ebenso der execute-Button mit der Methode nötig, da ohnehin alles bereits läuft?
...nein/ja. :wink: Als Außenstehender kann man nicht wissen wie es funtionieren soll. "Execute" würde ich zu "Speichern" umbenennen... Mache dir mal einen Plan, auf Papier :wink:, was in welcher Situation an Buttons aktiv ist und welche "Aufgaben" erledigt werden sollen. Das Programm selbst, wie du es bereits gemacht hast :wink:, sollte seinen Zustand kennen.
Zitat:

Du schreibst, dass an gleicher Stelle das ein active Setzen nicht notwenig sei, das dies automatisch geschieht:
...ja. :wink: Automatisch heißt das du nicht darum kümmern mußt. :zwinker:
Delphi-Quellcode:
try
  qryMain.SQL.Text := 'SELECT * FROM WARENVERKAUF';
  // Im Open/ExecSQL wird die Query INTERN geschlossen und am Ende wieder INTERN auf Active := True gesetzt.
  qryMain.Open;
except
  on E: Exception do
    outputMemo.text := 'Fehlermeldungstext execute: ' + E.Message;
end;
Delphi-Quellcode:
procedure TMainFrm.FormCreate(Sender: TObject);
begin
  conMain.LibraryName := ExtractFilePath(Application.ExeName) + 'sqlite3.dll';
  conMain.Params.Add('DataBase=' + ExtractFilePath(Application.ExeName) + 'WarenVK.sqlite'); // !!! keine hardcodierte Pfade verwenden
  conMain.Connected := True;
  //qryMain.SQL.Clear; // nicht notwendig...passiert intern
  //qryMain.Params.Clear; // nicht notwendig...passiert intern
  qryMain.SQL.Text := 'SELECT ID,KDNR,NAME,VORNAME,FIRMA,PRODUKT,ANZAHL,PREIS FROM WARENVERKAUF'; // Ich bevorzuge bei SQL immer die Großschreibung. Da grenzt sich das SQL von normalen Texten ab...kannst halten wie es willst...aber dann konsequent!
  qryMain.Open;
  while not qryMain.Eof do
  begin
    RefreshItems(qryMain.FieldByName('ID').AsString,
                 qryMain.FieldByName('KDNR').AsString,
                 qryMain.FieldByName('NAME').AsString, // Feldname "NAME" kann in die Hose gehen...reserviertes Wort.
                 qryMain.FieldByName('VORNAME').AsString,
                 qryMain.FieldByName('FIRMA').AsString,
                 qryMain.FieldByName('PRODUKT').AsString,
                 qryMain.FieldByName('ANZAHL').Asstring,
                 qryMain.FieldByName('PREIS').Asstring);
    qryMain.Next;
  end;
  // qryMain.Close; // braucht nicht wirklich geschlossen zu werden. (Ausnahmen bestätigen die Regel (keine Anzeige der Daten)) Mit der nächsten "Ausführung" passiert eh ein Close.
  IsEdit := False;
end;
Nochmal der Hinweis auf das E-Book:
http://www.delphipraxis.net/1364168-post8.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr.
Seite 2 von 2     12   

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