Delphi-PRAXiS
Seite 9 von 12   « Erste     789 1011     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Datenerfassung mit Firebird Datenbank (https://www.delphipraxis.net/129737-datenerfassung-mit-firebird-datenbank.html)

Jens Hartmann 26. Feb 2009 17:56

Re: Datenerfassung mit Firebird Datenbank
 
Um nochmal auf das Case Sensitiv zu kommen.

Wenn ich das jetzt richtig vertanden habe, brauchte ich die Anführungszeichen gar nicht, da ich in meiner Datenbank auch nicht mit Anführungszeichen gearbeitet habe, und somit meine Feldnamen nicht Case sensitiv sind

DeddyH 26. Feb 2009 17:57

Re: Datenerfassung mit Firebird Datenbank
 
Richtig, bei den Feldnamen brauchst Du sie nicht, aber bei den Stringfeldern. Hier wäre es sowieso besser, mit SQL-Parametern zu arbeiten.

mkinzler 26. Feb 2009 17:58

Re: Datenerfassung mit Firebird Datenbank
 
Es sihet aber so aus, als ob du das hättest. Zum Bsp. wenn du die entsprechende Option im IBExpert gesetzt hast

Jens Hartmann 26. Feb 2009 17:59

Re: Datenerfassung mit Firebird Datenbank
 
In der Form.Create sage ich...

Delphi-Quellcode:
procedure TFUebung.FormCreate(Sender: TObject);
var
i : integer;
begin
  {Datenbankverbindung aufbauen über ZConnection (ZEOS)}
  ConSecurdat.Connect;
Dann öffne ich die Datenbank...

Delphi-Quellcode:
{Datenbank Öffnen}
procedure TFUebung.Button8Click(Sender: TObject);
begin
  QrySecurdat.Open;
end;
Und beim eintrage sage ich...

Delphi-Quellcode:
procedure TFUebung.Button9Click(Sender: TObject);
var
  i : integer;
begin
  QrySecurdat.Active := false;
  QrySecurdat.SQL := Memo1.Lines;
  QrySecurdat.Active := true;
Und dann habe ich noch AfterPost angelegt

Delphi-Quellcode:
{Refreshanweisung nach AfterPost}
procedure TFUebung.QrySecurdatAfterPost(DataSet: TDataSet);
begin
  QrySecurdat.Refresh;
end;

mkinzler 26. Feb 2009 18:02

Re: Datenerfassung mit Firebird Datenbank
 
Delphi-Quellcode:
  QrySecurdat.Close;
  QrySecurdat.SQL := Memo1.Lines;
  QrySecurdat.ExecSQL;
.Open/.Active := True nur bei Selects. Bei DML-Statements immer .ExecSQL!

Jens Hartmann 26. Feb 2009 18:12

Re: Datenerfassung mit Firebird Datenbank
 
Zitat:

Es sihet aber so aus, als ob du das hättest. Zum Bsp. wenn du die entsprechende Option im IBExpert gesetzt hast
Ich vermute du meinst den Haken "datenbankobjektnamen immer groß schreiben" in der Datenbank Registrierung.

Ist aber nicht so.


Zitat:

.Open/.Active := True nur bei Selects. Bei DML-Statements immer .ExecSQL!
Jetzt ist zwar der Fehler weg, aber bei der SQL-Abfrag mit SELECT, erscheinen keine Daten

Delphi-Quellcode:
{SQL-Abfrage starten}
procedure TFUebung.Button7Click(Sender: TObject);
begin
  QrySecurdat.Open;
  QrySecurdat.SQL := Memo2.Lines;
  QrySecurdat.Active := true;
end;

[EDIT]...
Zitat:

Finde es irgenwie beruhigend, das Du über die Steine stolperst, über die ich vor ein paar Tagen gestolpert bin (selber SQL Anfänger)
Hast du den einen Thread oder so, wo ich eine bißchen lesen könnte oder Info´s sammeln könnte die Dir weiter geholfen haben

mkinzler 26. Feb 2009 18:15

Re: Datenerfassung mit Firebird Datenbank
 
Bei Abfragen, welche eine Datenmenge zurückgeben (Select):
Delphi-Quellcode:
  QrySecurdat.Close;
  QrySecurdat.SQL := Memo2.Lines;
  QrySecurdat.Open;

Satty67 26. Feb 2009 18:21

Re: Datenerfassung mit Firebird Datenbank
 
Nein, aber ein gutes Buch und Zeit (lese hier jeden Thread, der auftaucht und Hilfreiche Informationen beinhalten könnte)... und natürlich auch ein Übungsprojekt.

Für die Abfrage mal
Delphi-Quellcode:
  Query.SQL.Text := 'SELECT...';
  Query.Open;
Zu dem Anführungszeichen Wirrwarr, also was mir geholfen hat war irgendwo die Information:

Feldnamen anfangs immer in Anführungszeichen einschließen (dieser doppel Strich über der 2)
Datenwerte in Apostroph einschließen (die einzelnen Striche wie bei Delphi-Strings)

Ersteres wäre nur nötig bei CaseSensitiven Namen, aber schadet auch erstmal nicht. Man kommt mit reservierten Wörtern nicht in die Quere.

Query.FieldByName('Name').AsString ist besser, hat mich aber Anfangs sehr verwirrt, weil ich bei Mengen nicht wusste welcher Satz aktiv ist.

Jens Hartmann 26. Feb 2009 18:26

Re: Datenerfassung mit Firebird Datenbank
 
Zitat:

Nein, aber ein gutes Buch und Zeit
Zeit ist immer so eine Sachen, momentan habe ich genug davon. Ein gutes Buch, was würdest Du empfehlen.

Satty67 26. Feb 2009 18:31

Re: Datenerfassung mit Firebird Datenbank
 
Ich kenne nur zwei SQL Bücher, konnte ja nicht alles kaufen. Sehr gut finde ich von Markt&Technik "Jetzt lerne ich SQL". Das ist einfach und geht nicht zu sehr in die Tiefe (was am Anfang aber eher hilfreich ist).

Das zweite ist "SQL Gritty", was ich unübersichtlich finde. Aber das könnte besser sein, wenn ich mehr verstanden hab'.

Beide Bücher sind wohl schon etwas älter, aber mit SQL-92 / SQL-99 was ja ausreichend ist (Firebird oder Interbase Spezialitäten behandeln beide leider nicht)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 Uhr.
Seite 9 von 12   « Erste     789 1011     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz