Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Prism Etwas in einer Tabelle/Dataset ändern (https://www.delphipraxis.net/57794-etwas-einer-tabelle-dataset-aendern.html)

Taladan 26. Nov 2005 21:06

Datenbank: Firebird • Version: 1.52 • Zugriff über: Ado.net

Etwas in einer Tabelle/Dataset ändern
 
Ich erstelle meine Datenbank nu per Hand und nicht über die IDE, da die häufig etwas vergisst (zu löschen oder zu schreiben). Bis zum Anzeigen bin ich schon gekommen. Jedoch weiß ich nicht wie ich nun meine Daten verändern, löschen neue Datensätze hinzufügen kann.

So sieht meine Beispieltabelle aus:

Kunden:
ID Integer not Null primary key
Name Char(80)
Vorname Char(80)
...

So mache ich es:
Delphi-Quellcode:
  fbCon := FbConnectionStringBuilder.Create;
  fbcon.UserID := 'SYSDBA';
  fbcon.Password := 'masterkey';
  fbcon.Database := Application.StartUpPath + '\DATENBANK.FDB';
  fbcon.ServerType := 1; // embedded Firebird Con.
  fbcon.Charset := 'ISO8859_1';
  fbcon.Dialect := 3;
  Embetted := FBconnection.Create(fbCon.ToString);
  fbcon.ServerType := 0;
  Server := FBconnection.Create(fbCon.ToString);

  Daten := DataSet.Create('Datenbank');
  if typ then
  begin
    Con := Server;
  end else begin
    Con := Embetted;
  end;
  daKD := FBDataAdapter.Create('Select * from Kunden', con);
  dtkd := Datatable.Create('Kunden');
  Daten.Tables.Add(dtkd);
  daTalente.Fill(dtkd);
Dann werden die Elemente noch verbunden.
Delphi-Quellcode:
 
  DataGrid1.DataSource := Daten;
Doch ein
Delphi-Quellcode:
Daten.AcceptChanges;
Bringt nur das die anderen verbundenen Elemente die Änderungen auch anzeigen. Sobald ich das Programm neu starte, sind die änderungen verfallen, bzw wurden gar nicht in der Datenbank hinterlegt.
Wie gehe ich nu vor?

Taladan 27. Nov 2005 17:15

Re: Etwas in einer Tabelle/Dataset ändern
 
Mehr infos.

Ein BtClick führt die Proceure Speichern aus.

Delphi-Quellcode:
procedure TDatenbank.speichern;
var
  Txn : FBTransaction;
  comm : fbcommand;
begin
  con.Open();
  txn := con.BeginTransaction;
  Daten.AcceptChanges;
  daTalente.Update(Daten, 'Talente');
  txn.Commit();
  con.Close();
end;
So erstelle ich die Conn
Delphi-Quellcode:
procedure TDatenbank.createdb(typ : boolean);
begin
  ErstelleConnections;
  Daten := DataSet.Create('Datenbank');
  if typ then
  begin
    Con := Server;
  end else begin
    Con := Embetted;
  end;
  ErstelleTalente;
end;

procedure TDatenbank.ErstelleConnections;
var
  ConnStr: string;
begin
  fbCon := FbConnectionStringBuilder.Create;
  fbcon.UserID := 'SYSDBA';
  fbcon.Password := 'masterkey';
  fbcon.Database := Application.StartUpPath + '\DATENBANK.FDB';
  fbcon.ServerType := 1; // embedded Firebird Con.
  fbcon.Dialect := 3;

  Embetted := FBconnection.Create(fbCon.ToString);

  fbcon.ServerType := 0;

  Server := FBconnection.Create(fbCon.ToString);
end;
Und so sieht die Procedure ErstelleTalente aus
Delphi-Quellcode:
procedure TDatenbank.ErstelleTalente;
var Insert : String;
  comm : FBCommand;
begin
  daTalente := FBDataAdapter.Create('Select * from Talente', con);
  builder := FBCommandBuilder.Create(daTalente);
  dtTalente := Datatable.Create('Talente');
  Daten.Tables.Add(dtTalente);
  daTalente.Fill(dtTalente);
end;
Wie gehe ich nun vor, wenn die im DataSet vorhandenen Daten geschrieben werdne sollen?

Taladan 28. Nov 2005 22:02

Re: Etwas in einer Tabelle/Dataset ändern
 
*push*


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 Uhr.

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