AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Datenerfassung mit Firebird Datenbank
Thema durchsuchen
Ansicht
Themen-Optionen

Datenerfassung mit Firebird Datenbank

Ein Thema von Jens Hartmann · begonnen am 24. Feb 2009 · letzter Beitrag vom 27. Feb 2009
Antwort Antwort
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#1

Re: Datenerfassung mit Firebird Datenbank

  Alt 27. Feb 2009, 21:44
Sorry, das ich mich hier immer reindrängel, aber der Thread passt halt prima auf meine eigene Situation/Fragestellungen

Ich hab' jetzt mal INSERT via FieldByParam in meinem Übungsprojekt umgesetzt:
Delphi-Quellcode:
zQueryArtikel.SQL.Text = 'INSERT INTO '+sql_tbl_ArticleIO+' ('+
                         sql_fn_Location+','+
                         sql_fn_ArticleNo+','+
                         sql_fn_ArticleDesc+','+
                         sql_fn_PackCount+','+
                         sql_fn_Packing+','+
                         sql_fn_Quantity+','+
                         sql_fn_QuantityUnity+','+
                         //...da kommt noch einiges...
                         sql_fn_Remarks+
                         ') VALUES ('+
                         ':'+CutQuotes(sql_fn_Location)+','+
                         ':'+CutQuotes(sql_fn_ArticleNo)+','+
                         ':'+CutQuotes(sql_fn_ArticleDesc)+','+
                         ':'+CutQuotes(sql_fn_PackCount)+','+
                         ':'+CutQuotes(sql_fn_Packing)+','+
                         ':'+CutQuotes(sql_fn_Quantity)+','+
                         ':'+CutQuotes(sql_fn_QuantityUnity)+','+
                         //...da kommt genausoviel
                         ':'+CutQuotes(sql_fn_Remarks)+
                         ');
Bei mir sind alle Feldnamen als Konstante gespeichert (incl. "..."). Damit ich nicht doppelte Konstanten hab', muss ich jetzt für Parameter-Namen die Quotes wieder entfernen.

Insert via ParamByName:
Delphi-Quellcode:
with zQueryArtikel do begin
  ParamByName(CutQuotes(sql_fn_Location)).AsString := EditLocation.Text;
  ParamByName(CutQuotes(sql_fn_ArticleNo)).AsString := EditArticleNo.Text;
  ParamByName(CutQuotes(sql_fn_ArticleDesc)).AsString := EditArticleDesc.Text;
  ParamByName(CutQuotes(sql_fn_PackCount)).AsString := EditPackCount.Text;
  ParamByName(CutQuotes(sql_fn_Packing)).AsString := EditPacking.Text;
  ParamByName(CutQuotes(sql_fn_Quantity)).AsString := EditQuantity.Text;
  ParamByName(CutQuotes(sql_fn_QuantityUnity)).AsString := EditQuantityUnity.Text;
  // usw...
  ExecSQL;
end;
INSERT wie ich es vorher hatte, als Funktionsaufruf:
Delphi-Quellcode:
function InsertArtikel(Location, ArticleNo, ArticleDesc [...] String):Integer;
// In der Funktion wird Insert generiert und abgesetzt
// als Feldwerte die Parameter der Funktion übernommen
  [...]VALUES ('+
QuotedStr(Location)+
','+
QuotedStr(ArticleNo)+
','+
QuotedStr(ArticleDesc)+
','+
Eventuelle Tipp-Fehler mal ignorieren, Copy+Paste ist gerade nicht verfügbar (deshalb auch stark gekürzt)...

Das sind ja (in meinem Fall) gut 15 weitere Methodenaufrufe pro Datenfeld. CutQuotes() gleicht sich mit QuotedStr() aus. Wirklich übersichtlicher ist es für mich auch nicht.

Mir stellt sich jetzt die Frage, wo die Vorteile von FieldByParam sind?

PS: Mein SQL-Buch behandelt Parameter nicht wirklich, wie sie in TQuery's verwendet werden. Zugriff via Delphi, C/C++ etc. ist da überhaupt kein Thema.
  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 01:41 Uhr.
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