Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi In eigener Unit Datenbank öffnen-wieso sehe ich keine Date (https://www.delphipraxis.net/149709-eigener-unit-datenbank-oeffnen-wieso-sehe-ich-keine-date.html)

LingNeu 28. Mär 2010 09:57


In eigener Unit Datenbank öffnen-wieso sehe ich keine Date
 
Liebe Delphifreunde,
habe ein Projekt mit ca. 20 Datenbanken, in denen jeweils mehrere Tabellen sind.
Zwecks Übersichtlichkeit möchte ich auf einer eigenen Form (Unit) die Datenbank-Komponenten unterbringen und dann im Hauptprogramm verwenden
Es klappt soweit, aber ich sehe bei der Datenfeldanzeige leider keine Werte. Öffne ich in der IDE die Komponente, dann sehe ich sofort die Daten.
Wo könnte da der Fehler liegen?
Wäre für jeden Hinweis sehr dankbar.
ciao
LingNeu

Delphi-Quellcode:
unit haupt;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, usw...;
type
  TFRM10 = class(TForm)
  private
  public
  end;

var
  FRM10: TFRM10;
implementation
  uses
    daten ; //datenbankkomponenten
{$R *.dfm}

procedure TFRM10.FormCreate(Sender: TObject);
begin
// es werden nur leere Felder angezeigt - allerdings auch KEINE Fehlermeldung !
// für die Feld-Eigenschaft geschieht aufruf z.B. über a.DS_objects und a.TB_objects['name'] einwandfrei auswählbar - aber keine anzeige beim ausführen
// öffne ich die Datenbanken in der IDE direkt, dann sehe ich die Feldinhalte !!!
end;
Delphi-Quellcode:
unit daten;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, TdbDataSet, TdbLicense ;
  //TdbDataSet = Turbodatenbank
  //TdbLicense = Lizenz dafür
type
  TA = class(TForm)
    DB_objects: TTdbDatabase;
    TB_objects: TTdbTable;
    DS_objects: TDataSource;
    procedure FormCreate(Sender: TObject);
  private
  public
  end;

var
  A: TA;
implementation

{$R *.dfm}

procedure TA.FormCreate(Sender: TObject);
begin
DB_objects.Connected := true; //Datenbank öffnen
TB_objects.Active;            //Tabelle Objekte aktivieren
TB_objects.Open ;             //Tabelle Objekte öffnen
end;
end.

RWarnecke 28. Mär 2010 10:07

Re: In eigener Unit Datenbank öffnen-wieso sehe ich keine Da
 
Um Datenbank-Komponenten in einer Unit zusammen zufassen, benutze ich das Datenbank-Modul. Ich tippe mal, dass irgendwo eine Verknüpfung zur Data-Source noch nicht vorhanden ist.

LingNeu 28. Mär 2010 10:23

Re: In eigener Unit Datenbank öffnen-wieso sehe ich keine Da
 
hallo RWarnecke,
danke für den Hinweis.
Leider kann ich die TurboDB dort nicht einbinden. Es sind alle möglichen Typen vorhanden (Access, BDE, usw) aber nicht die von mir verwendete.
ciao
LingNeu

sven_32 28. Mär 2010 12:31

Re: In eigener Unit Datenbank öffnen-wieso sehe ich keine Da
 
Fehlt da nicht A:=TA.Create(self) irgendwo???

LingNeu 28. Mär 2010 15:19

Re: In eigener Unit Datenbank öffnen-wieso sehe ich keine Da
 
hallo sven_32,
habe folgende Sachen gemacht - bekomme dann aber die fehlermeldung: "duplicate database name db_objects "
was tun, sprach Zeus?
Gibt es den gar nichts Anderes, wo man seine Komponenten auf einer eigenen Form zwecks Ordnung plazieren kann und dann auf diese Teile vom Hauptprogramm aus zugreifen kann. Habe mit Proceduren komischerweise Null-Probleme nur mit non-visuellen Komponenten
Habe mal die Delphisache Datenmodul probiert - da wird auch nichts anderes gemacht, als eine Unit mit den DB-Komponenten. Aber der Zugriff funktioniert dort auch nicht.
ciao
LingNeu

Delphi-Quellcode:
unit haupt;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, usw...;
type
  TFRM10 = class(TForm)
  private
  public
  end;

var
  FRM10: TFRM10;
implementation
  uses
    daten ; //datenbankkomponenten
{$R *.dfm}

procedure TFRM10.FormCreate(Sender: TObject);
var A:TForm; //NEU NEU
begin
A:=TA.CREATE(self); //NEU NEU
// es werden nur leere Felder angezeigt - allerdings auch KEINE Fehlermeldung !
// für die Feld-Eigenschaft geschieht aufruf z.B. über a.DS_objects und a.TB_objects['name'] einwandfrei auswählbar - aber keine anzeige beim ausführen
// öffne ich die Datenbanken in der IDE direkt, dann sehe ich die Feldinhalte !!!
end;
Delphi-Quellcode:
unit daten;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, TdbDataSet, TdbLicense ;
  //TdbDataSet = Turbodatenbank
  //TdbLicense = Lizenz dafür
type
  TA = class(TForm)
    DB_objects: TTdbDatabase;
    TB_objects: TTdbTable;
    DS_objects: TDataSource;
    procedure FormCreate(Sender: TObject);
  private
  public
  end;

var
  A: TA;
implementation

{$R *.dfm}

procedure TA.FormCreate(Sender: TObject);
begin
DB_objects.Connected := true; //Datenbank öffnen
TB_objects.Active;            //Tabelle Objekte aktivieren
TB_objects.Open ;             //Tabelle Objekte öffnen
end;
end.

sven_32 31. Mär 2010 14:47

Re: In eigener Unit Datenbank öffnen-wieso sehe ich keine Da
 
Schau mal unter Projekt / Optionen /TAB Formulare

Ist Dein TA in der Liste automatisch erzeugen???

Muss dort raus...

Sven

LingNeu 31. Mär 2010 16:00

Re: In eigener Unit Datenbank öffnen-wieso sehe ich keine Da
 
hi sven_32
ich habe mein Problem dadurch gelöst, das ich ein DataModul gemacht habe - und was soll ich sagen - es funktioniert wirklich einwandfrei.
Ich kann auf alle Komponenten von der Hauptform aus zugreifen.
Gruß
LingNeu


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 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