AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datenübertragung von DB zu LV zu Grid

Ein Thema von Impulz · begonnen am 1. Dez 2011 · letzter Beitrag vom 2. Dez 2011
Antwort Antwort
Seite 2 von 2     12   
Impulz

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

AW: Datenübertragung von DB zu LV zu Grid

  Alt 1. Dez 2011, 11:55
Bei bedarf könnte ich mein Programm als Quellcode posten, wenn das jemandem weiterhilft
Danil
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#12

AW: Datenübertragung von DB zu LV zu Grid

  Alt 1. Dez 2011, 12:03
Wieso änderst Du nicht einfach nur die Reihenfolge in Deiner Komponenten Architektur?
Code:

DB>Dataset>Listview
          >DBGrid[>DBEdit]
Wenn du etwas editiert hast, landet es automatisch wieder in der DB und wenn Du neu abrufst, wird die LV wieder aus dem Dataset befüllt.

Ps.: Das sieht nicht so aus wie ich wollte. mist
Ps2: Jetzt kann man es glaub ich erkennen.
Gruß, Jo

Geändert von jobo ( 1. Dez 2011 um 12:09 Uhr) Grund: blabla, formatprobleme
  Mit Zitat antworten Zitat
Impulz

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

AW: Datenübertragung von DB zu LV zu Grid

  Alt 1. Dez 2011, 12:11
danke erstmal,

aber wie soll der schritt aussehen:

Listview--> Grid dafür habe ich halt keine idee
Danil
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Datenübertragung von DB zu LV zu Grid

  Alt 1. Dez 2011, 12:34
Nicht ListView -> Grid, sondern Dataset -> Grid, Du greifst ja auf dieselben Daten zu.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#15

AW: Datenübertragung von DB zu LV zu Grid

  Alt 1. Dez 2011, 12:40
Mein Vorschlag war nicht Listview>Grid, sondern Dataset>Listview und separat Dataset>Grid.
Ein DBGrid ist nicht dazu gedacht aus einem Listview befüllt zu werden. Ein Grid schon eher, aber wenn Du sowieso mit einer DB arbeitest ist der erste Schritt sehr naheliegend:
1. DB > Dataset
2. "danach" aus dem Dataset Listview und DBGrid befüllen
3. Editieren im DBGrid oder DBEdits, speichern

(rote Box) DeddyH war schneller, aber ich hab keine Lust es zu löschen.
Gruß, Jo
  Mit Zitat antworten Zitat
Impulz

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

AW: Datenübertragung von DB zu LV zu Grid

  Alt 1. Dez 2011, 12:42
okay, danke ich probier das gleich mal aus
Danil
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Datenübertragung von DB zu LV zu Grid

  Alt 1. Dez 2011, 14:35
Ich hab da mal eine kleine Demo geschrieben, wie man so etwas machen kann. Die Listview erzeuge ich dynamisch, damit auch die Einstellungen auf jeden Fall passen. Das Dataset ist nur gefaked, wichtig ist der untere Teil im FormCreate.
Delphi-Quellcode:
unit DSFake;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Contnrs, ComCtrls;

type
  TFakeField = class
  private
    FValue: string;
    function GetAsString: string;
  public
    property Value: string read FValue write FValue;
    property AsString: string read GetAsString;
  end;

  TFakeDataset = class
  private
    FIndex: integer;
    FNames,
    FFirstnames,
    FDaysOfBirth: TObjectList;
    function GetEOF: Boolean;
  public
    constructor Create;
    destructor Destroy; override;
    procedure Open;
    procedure Close;
    procedure Next;
    procedure First;
    function FieldByName(const Fieldname: string): TFakeField;
    property EOF: Boolean read GetEOF;
  end;

  TfrmMain = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private-Deklarationen }
    FDataset: TFakeDataset;
    FListview: TListView;
  public
    { Public-Deklarationen }
    property Dataset: TFakeDataset read FDataset;
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

{ TFakeDataset }

procedure TFakeDataset.Close;
begin
  //Brauch ma nich
end;

constructor TFakeDataset.Create;
var
  aName, aFirstname, aBirthday: TFakeField;
begin
  (* Wir tun mal so, als wäre das hier eine Ergebnismenge *)
  FNames := TObjectList.Create;
  FFirstNames := TObjectList.Create;
  FDaysOfBirth := TObjectList.Create;
  aName := TFakeField.Create;
  aFirstname := TFakeField.Create;
  aBirthday := TFakeField.Create;
  aName.Value := 'Korn';
  aFirstname.Value := 'Klara';
  aBirthday.Value := '12.12.1912';
  FNames.Add(aName);
  FFirstnames.Add(aFirstname);
  FDaysOfBirth.Add(aBirthday);
  aName := TFakeField.Create;
  aFirstname := TFakeField.Create;
  aBirthday := TFakeField.Create;
  aName.Value := 'Cron';
  aFirstname.Value := 'Maria';
  aBirthday.Value := '01.12.1924';
  FNames.Add(aName);
  FFirstnames.Add(aFirstname);
  FDaysOfBirth.Add(aBirthday);
  aName := TFakeField.Create;
  aFirstname := TFakeField.Create;
  aBirthday := TFakeField.Create;
  aName.Value := 'Beam';
  aFirstname.Value := 'Jim';
  aBirthday.Value := '12.10.1899';
  FNames.Add(aName);
  FFirstnames.Add(aFirstname);
  FDaysOfBirth.Add(aBirthday);
  aName := TFakeField.Create;
  aFirstname := TFakeField.Create;
  aBirthday := TFakeField.Create;
  aName.Value := 'Fiddich';
  aFirstname.Value := 'Glen';
  aBirthday.Value := '02.10.1990';
  FNames.Add(aName);
  FFirstnames.Add(aFirstname);
  FDaysOfBirth.Add(aBirthday);
end;

destructor TFakeDataset.Destroy;
begin
  FNames.Free;
  FFirstNames.Free;
  FDaysOfBirth.Free;
  inherited;
end;

procedure TFakeDataset.First;
begin
  FIndex := 0;
end;

function TFakeDataset.GetEOF: Boolean;
begin
  Result := FIndex >= FNames.Count;
end;

function TFakeDataset.FieldByName(const Fieldname: string): TFakeField;
begin
  if AnsiSameText(Fieldname, 'Name') then
    Result := TFakeField(FNames[FIndex])
  else if AnsiSameText(Fieldname, 'FirstName') then
    Result := TFakeField(FFirstNames[FIndex])
  else if AnsiSameText(Fieldname, 'DayOfBirth') then
    Result := TFakeField(FDaysOfBirth[FIndex])
  else
    Result := nil;
end;

procedure TFakeDataset.Next;
begin
  inc(FIndex);
end;

procedure TFakeDataset.Open;
begin
  First;
end;

{ TFakeField }

function TFakeField.GetAsString: string;
begin
  Result := FValue;
end;

(* Ende Fake, Anfang Simulation *)

procedure TfrmMain.FormCreate(Sender: TObject);
var
  Item: TListItem;
  Column: TListColumn;
begin
  FListview := TListview.Create(self);
  FListview.Parent := self;
  FListview.Align := alClient;
  FListview.ViewStyle := vsReport;
  Column := FListView.Columns.Add;
  Column.Caption := 'Name';
  Column.Width := 120;
  Column := FListView.Columns.Add;
  Column.Caption := 'Vorname';
  Column.Width := 120;
  Column := FListView.Columns.Add;
  Column.Caption := 'Geburtsdatum';
  Column.Width := 120;
  FDataset := TFakeDataset.Create;
  (* So sähe das in etwa auch bei einem "normalen" Dataset aus *)
  Dataset.Open;
  while not Dataset.EOF do
    begin
      Item := FListview.Items.Add;
      Item.Caption := Dataset.FieldByName('Name').AsString;
      Item.SubItems.Add(Dataset.FieldByName('Firstname').AsString);
      Item.SubItems.Add(Dataset.FieldByName('DayOfBirth').AsString);
      Dataset.Next;
    end;
  Dataset.Close;
end;

procedure TfrmMain.FormDestroy(Sender: TObject);
begin
  Dataset.Free;
end;

end.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Impulz

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

AW: Datenübertragung von DB zu LV zu Grid

  Alt 2. Dez 2011, 05:22
Vielen Dank klappt alles soweit . Danke, dass ihr mit mir die Geduld hattet
Danil
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 07:25 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