AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Absolute Database - Memo Text ?
Thema durchsuchen
Ansicht
Themen-Optionen

Absolute Database - Memo Text ?

Ein Thema von Blackheart · begonnen am 3. Feb 2009 · letzter Beitrag vom 3. Feb 2009
 
raiguen
(Gast)

n/a Beiträge
 
#6

Re: Absolute Database - Memo Text ?

  Alt 3. Feb 2009, 22:05
Hier mal kurz ein Beispiel aus einem meiner Demoprojekte, wie mithilfe von SQL-Statements und Parametern ein Kundendatensatz eingefügt bzw geändert werden kann (die entsprechenden Querys Kunden_Hinzu bzw Kunden_Aendern liegen im DatenModul DMKunden):
Delphi-Quellcode:
//--NeuDatum und UpdateDatum sind hier NICHT mehr ÜbergabeParameter der Funktion/Procedure
procedure TDMKunden.Kunden_Hinzu(const aKUNR, aNAME, aSTR, aPLZ, aORT,
                                       aLAND, aNOT: String);
begin
  KundenHinzu.Close;

  //--Kommando vorbereitet?
  if not KundenHinzu.Prepared then
  begin
    KundenHinzu.SQL.Text := 'INSERT INTO Kunden (KundenNr, Datum, Name, '+
                                                         'Strasse, Plz, Ort, ' +
                                                         'Land, Notizen) ' +
                                                         'VALUES(:KUNR, :DATUM, :NAME, ' +
                                                         ' :STR, :PLZ, :ORT, '+
                                                         ' :LAND, :NOT )';

    //--ParameterTyp festlegen
    KundenHinzu.Params[0].DataType := ftString;
    KundenHinzu.Params[1].DataType := ftDateTime;
    KundenHinzu.Params[2].DataType := ftString;
    KundenHinzu.Params[3].DataType := ftString;
    KundenHinzu.Params[4].DataType := ftString;
    KundenHinzu.Params[5].DataType := ftString;
    KundenHinzu.Params[6].DataType := ftString;
    KundenHinzu.Params[7].DataType := ftMemo;
    KundenHinzu.Prepare;
  end;

  //--Parameter belegen und ausführen
  KundenHinzu.Params[0].Value := aKUNR;
  KundenHinzu.Params[1].Value := Now();
  KundenHinzu.Params[2].Value := aNAME;
  KundenHinzu.Params[3].Value := aSTR;
  KundenHinzu.Params[4].Value := aPLZ;
  KundenHinzu.Params[5].Value := aORT;
  KundenHinzu.Params[6].Value := aLAND;
  KundenHinzu.Params[7].Value := aNOT;
  KundenHinzu.ExecSQL;
end;
 //------------------------------------------------------------

procedure TDMKunden.Kunden_Aendern(
                               const aNAME, aSTR, aPLZ, aORT, aLAND, aNOT: String;
                               const aKuNr: String; aUpdate: TDateTime);
begin
  KundenAendern.Close;
  //--Kommando bereits erstellt?
  if not KundenAendern.Prepared then
    begin
      KundenAendern.SQL.Text := 'UPDATE Kunden SET Name=:NAME '+
                                                           ', Strasse=:STR'+
                                                           ', Plz=:PLZ' +
                                                           ', Ort=:ORT' +
                                                           ', Land=:LAND' +
                                                           ', Notizen=:NOT' +
                                                           ', UpDate=:UPDATE '+
                                                           'WHERE KundenNr=:KuNr ';
      //--ParameterTyp festlegen
      KundenAendern.Params[0].DataType := ftString;
      KundenAendern.Params[1].DataType := ftString;
      KundenAendern.Params[2].DataType := ftString;
      KundenAendern.Params[3].DataType := ftString;
      KundenAendern.Params[4].DataType := ftString;
      KundenAendern.Params[5].DataType := ftMemo;
      KundenAendern.Params[6].DataType := ftDateTime;
      KundenAendern.Params[7].DataType := ftString;
      KundenAendern.Prepare;
  end;

  //--jetzt die Parameter belegen und ausführen
  KundenAendern.Params[0].Value := aNAME;
  KundenAendern.Params[1].Value := aSTR;
  KundenAendern.Params[2].Value := aPLZ;
  KundenAendern.Params[3].Value := aORT;
  KundenAendern.Params[4].Value := aLAND;
  KundenAendern.Params[5].Value := aNOT;
  KundenAendern.Params[6].Value := aUPDATE; //hier wird das aktuelle Änderungsdatum eingetragen
  KundenAendern.Params[7].Value := aKUNR;
  KundenAendern.ExecSQL;
end;
 //------------------------------------------------------------
aufgerufen werden diese Proceduren bspw. vom KundenDialog:
Delphi-Quellcode:
procedure TFmKundenDialog.BtnOKClick(Sender: TObject);
var istGeandert: bool;
    updateDatum: TDateTime;
begin
...

  if not KundeNeu then
    DMKunden.Kunden_Aendern( EdName.Text,
                                  EdStrasse.Text,
                                  EdPlz.Text,
                                  EdOrt.Text,
                                  EdLand.Text,
                                  MeNotizen.Text, //<< ist eine Memofeld ;)
                                  EdKundenNr.Text,
                                  updateDatum)
  else
    DMKunden.Kunden_Hinzu(EdKundenNr.Text,
                          EdName.Text,
                                 EdStrasse.Text,
                                 EdPLZ.Text,
                                 EdOrt.Text,
                                 EdLand.Text,
                                 MeNotizen.Text);
 end;
...
Anhand dieser exemplarischen Vorgehensweise kannst dir ja deine Statements anpassen

Gruss Rainer
  Mit Zitat antworten Zitat
 


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 04:27 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