Einzelnen Beitrag anzeigen

Impulz

Registriert seit: 19. Aug 2011
Ort: Lübeck
68 Beiträge
 
Delphi 7 Professional
 
#6

AW: 2 Units zusammenfassen in eine Untergeordnete Logikschicht

  Alt 21. Dez 2011, 13:06
Die aufgabe der Connection Unit besteht darin:

wie du schon richtig sagtest: die Verbindung herzustellen.


Nur außerdem Erstellt sie die Queries und die Transaktionen und feuert die SQL's ab für verschiedene Situationen, DatenSpeichern, Laden,Löschen,bearbeiten.

Sie übernimmt die Funktion der Logik zwischen Datenbank und Oberfläche also alles was von der DB an die Oberfläche geht geht aus der Connection
als beispiel hier zb:




Code:
procedure TDataconnect.LegeSendungAn(ASendung: TSendung);

var
  neuerSeQuery: TIBOQuery;
  neuerSeTransa:TIBOTransaction;
begin
  neuerSeQuery:= TIBOQuery.Create(nil);
  neuerSeTransa:= TIBOTransaction.Create(nil);
  neuerSeTransa.IB_Connection:=neuerseQuery.IB_Connection ;
  try
    neuerSeQuery.IB_Connection:= FDataBase;
    neuerSeTransa.IB_Connection:= FDatabase;
    try
      neuerSeQuery.SQL.Text:= 'INSERT INTO Sendungsverfolgung (Status,Rechnung) Values ('+QuotedStr(ASendung.Status)+','+QuotedStr(ASendung.Rechnung)+') returning Sendungsverfolgung_ID';
      neuerSeQuery.ExecSQL;
      neuerSETransa.Commit;
    Except
      on E : Exception do
      begin
        ShowMessage('FEHLER IN LEGE Sendung AN');
        neuerSeTransa.Rollback;
      end;
    end;
  Finally
    neuerSeQuery.Free;
    neuerSeTransa.Free;
  end;
end;
und auf die funktion greift die oberfläche zu und zwar hier:::::::::::::
*SIEHE SENDUNG*

Code:
procedure TStartseite.Hinzufgen1Click(Sender: TObject);
var
  Kunde: TKunde;
  Buch: TBuch;
  Sendung: TSendung;
  Autor: TAutor;
begin
  Dateneditieren.StrGrAuswahl.Cells[0,0]:='';
  Dateneditieren.StrGrAuswahl.Cells[1,0]:='';
  if IsPositiveResult(Dateneditieren.ShowModal()) then
  begin
    case (rgAuswahl.ItemIndex) of
      0 : begin
            Kunde :=TKunde.create (0,Dateneditieren.StrGrAuswahl.Cells[0,0],Dateneditieren.strgrauswahl.cells[1,0]);
            connect.LegeKundeAn(Kunde);
            addKundetoLV(Kunde);

          end;
      1 : begin
            Sendung:= TSendung.Create(0,Dateneditieren.StrGrAuswahl.Cells[0,0],Dateneditieren.strgrauswahl.cells[1,0]);
            connect.LegeSendungAn(Sendung);
            addSendungetoLV(Sendung);
          end;
      2 : begin
            Autor:= TAutor.Create(0,dateneditieren.StrGrAuswahl.Cells[0,0],Dateneditieren.strgrauswahl.cells[1,0]);
            connect.LegeAutorAn(Autor);
            addAutortoLV(Autor);
          end;
      3 : begin
            Buch:= TBuch.Create(0,StrToInt(Dateneditieren.StrGrAuswahl.Cells[0,0]),Dateneditieren.StrGrAuswahl.Cells[1,0]);
            connect.LegeBuchAn(Buch);
            addBuchtoLV(Buch);
          end;
    else
      begin
        ShowMessage('Ups, beim Anlegen des Kunden lief etwas schief');
      end;
    end;
  end;
end;
Danil

Geändert von Impulz (21. Dez 2011 um 13:13 Uhr)
  Mit Zitat antworten Zitat