AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Projekt: Dynamischer StoredProcedure Viewer
Thema durchsuchen
Ansicht
Themen-Optionen

Projekt: Dynamischer StoredProcedure Viewer

Ein Thema von r3v0 · begonnen am 9. Aug 2007 · letzter Beitrag vom 10. Aug 2007
Antwort Antwort
r3v0

Registriert seit: 26. Mär 2007
Ort: Wegberg
45 Beiträge
 
Delphi 7 Enterprise
 
#1

Projekt: Dynamischer StoredProcedure Viewer

  Alt 9. Aug 2007, 14:12
Hallo DP Gemeinde,

Ich wollte hier mal ein Projektbegleitenden Thread aufmachen.
wo ich euch über den Projektstand informieren kann. Und ihr evtl mir helfen könnt bei Problemen.
Wenn dies im DP Board nicht erlaubt ist. Bitte ich den Thread zu löschen

Es geht sich um ein Programm was auf eine DB2 Zugreifen soll. Sich von der DB2 Die Anzahl der Stored Procedure holen soll plus die Parameter.
Dann in einer PageControl soviele TabSheets wie vorhandende Proceduren und soviele TLabeledEdit Felder wie Parameter vorhanden erzeugen.

irgendwann soll das programm dann tatsächlich die SP anpsrechen und holt sich datensätze.

Momentaner Stand. Screen anhängend!
Design fast abgeschlossen.
StoredProcedure Namen und Anzahl kriege ich raus.
Parameter Anzahl Namen Typ und In/Out kriege ich auch raus.
TabSheets werden automatisch erzeugt
TLabelededit Werden automatisch beschriftet (Parameternamen) und erzeugt
Button wird erzeugt.
Grids werden erzeugt!

problem.
Da ich immer näher zum ende vom design komme!
Wie kann ich die einzelnen btns grids und editfelder ansprechen. Wenn ich zum Beispiel ein ONClick ereigniss dranhängen will?


Erzeugen tu ich das Dynamische so:
Delphi-Quellcode:
unit TabSheetfrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ExtCtrls, Grids, StdCtrls;

type
  TfrmTabSheet = class(TForm)
    pnlTabSheet: TPanel;
    PageControl: TPageControl;
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    LblEdit: TLabeledEdit;
    top,left,height,length,counterSheets,counterlblEdit: integer;
    Sheet: TTabSheet;
    Grid: TStringGrid;
  public
    { Public-Deklarationen }
    ListeTabSheet: TList;
    ListelblEdit: TList;
    pnllbledit: TPanel;
    pnlgrid: TPanel;
    excecbtn: TButton;
    procedure TabSheeterstellung(anzahl: Integer);
    procedure pnlerstellunglbledit;
    procedure lblEditerstellung;
    procedure Sheeterstellung(AktuSpzahl: integer);
    procedure pnlerstellungGrid;
    procedure Griderstellung;
    procedure Excecutebtnerstellung;
  end;

var
  frmTabSheet: TfrmTabSheet;

implementation
uses Memofrm, SPViewerMainfrm;

{$R *.dfm}

{ TfrmTabSheet }

procedure TfrmTabSheet.TabSheeterstellung(anzahl: Integer);
var
  i: integer;
begin
  top:= 20;
  left:= 20;
  height:= 25;
  length:= 0;
  counterSheets:= 0;
  for i:= 0 to anzahl-1 do
  begin
    counterlblEdit:= 0;
    frmMain.ADOQry.SQL.Text:= 'Select * FROM qsys2.sysparms WHERE SPECIFIC_SCHEMA=''KOSYFAREV'' AND SPECIFIC_NAME=''' + frmMain.ProcedureNamen[i] + '''';
    frmMain.ADOQry.Open;
    frmMain.ADOQry.First;
    while not frmMain.ADOQry.Eof do
    begin
      if length < Canvas.TextWidth(frmMain.ADOQry.Fields[4].AsString)then
        length:= Canvas.TextWidth(frmMain.ADOQry.Fields[4].AsString);
      frmMain.ADOQry.Next;
    end;
    frmMain.ADOQry.First;
    if frmMain.ADOQry.RecordCount<> 0 then
    begin
      Sheeterstellung(i);
      pnlerstellunglbledit;
      pnlerstellungGrid;
      while not frmMain.ADOQry.Eof do
        lblEditerstellung;
      Griderstellung;
      counterSheets:= counterSheets + 1;
      Excecutebtnerstellung;
      frmMemo.lblEditerstellt(counterlblEdit);
    end;
    length:= 0;
    height:= 25;
    top:= 20;
    left:= 20;
  end;
  frmMemo.insgesammtsheet(counterSheets);
end;

procedure TfrmTabSheet.FormShow(Sender: TObject);
begin
  PageControl.SetFocus;
end;

procedure TfrmTabSheet.FormCreate(Sender: TObject);
begin
  ListelblEdit:= TList.Create();
end;

procedure TfrmTabSheet.lblEditerstellung;
begin
  LblEdit:= TLabeledEdit.Create(self);
  LblEdit.Parent:= pnllbledit;
  LblEdit.EditLabel.Caption:= frmMain.ADOQry.Fields[4].AsString;
  LblEdit.LabelPosition:= lpLeft;
  LblEdit.Text:= '';
  LblEdit.Top:= top;
  LblEdit.Left:= left + length;
  LblEdit.Height:= height;
  top:= top + 20;
  counterlblEdit:= counterlblEdit + 1;
  frmMain.ADOQry.next;
end;

procedure TfrmTabSheet.Sheeterstellung(AktuSpzahl: integer);
begin
  Sheet:= TTabSheet.Create(PageControl);
  Sheet.Parent:= PageControl;
  Sheet.Caption:= frmMain.ProcedureNamen[AktuSpzahl];
  frmMemo.Tabsheeterstellt(Sheet.Caption);
  Sheet.PageControl:= PageControl;
end;

procedure TfrmTabSheet.Griderstellung;
begin
  grid:= TStringgrid.create(self);
  grid.Parent:= pnlgrid;
  grid.Left:= 0;
  grid.RowCount:= 2;
  grid.DefaultRowHeight:=15;
  grid.ColCount:= 2;
  grid.DefaultColWidth:= 60;
  grid.ColWidths[0]:= 15;
  grid.Align:= alClient;
end;

procedure TfrmTabSheet.pnlerstellunglbledit;
begin
  pnllbledit:= TPanel.Create(self);
  pnllbledit.Parent:= Sheet;
  pnllbledit.Left:= 0;
  pnllbledit.Width:= 350;
  pnllbledit.Align:= alLeft;
end;

procedure TfrmTabSheet.pnlerstellungGrid;
begin
  pnlgrid:= TPanel.Create(self);
  pnlgrid.Parent:= Sheet;
  pnlgrid.Left:= 350;
  pnlgrid.Align:= alClient;
end;
procedure TfrmTabSheet.Excecutebtnerstellung;
begin
  excecbtn:= TButton.Create(self);
  excecbtn.Parent:= pnllbledit;
  excecbtn.Caption:= 'Excecute SP';
  excecbtn.Top:= top + 30;
  excecbtn.Left:= length+left;
end;

end.
Miniaturansicht angehängter Grafiken
spviewer2_138.jpg  
Blub ich bin die Sig.
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#2

Re: Projekt: Dynamischer StoredProcedure Viewer

  Alt 9. Aug 2007, 14:18
Wenn du uns jetzt noch verrätst für welche DAtenbank der StoreProcedure Viewer sein soll können wir die vielleicht auch eher helfen. Mir fallen da spontan mehrere DB's ein die StoredProcedures unterstützen (ORACLE, Inerbase, Firebird, MySQL, ...).
  Mit Zitat antworten Zitat
r3v0

Registriert seit: 26. Mär 2007
Ort: Wegberg
45 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Projekt: Dynamischer StoredProcedure Viewer

  Alt 9. Aug 2007, 14:21
Hab ich getan

DB2 datenbank

immoment geht es sich noch nicht um die anbindung zur datenbank das klappt immoment noch!
Es geht sich das ich wahllos labelededit felder und buttons und grids erstelle ich aber nachher auf die zugreifen möchte
Blub ich bin die Sig.
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#4

Re: Projekt: Dynamischer StoredProcedure Viewer

  Alt 9. Aug 2007, 14:40
Zitat von r3v0:
Hab ich getan
Sorry, hab ich übersehen
Aber besser einmal zuviel wie zu wenig gefragt...

So ein Teil würde mich nämlich auch interessieren, allerdings aber für ORACLE.
  Mit Zitat antworten Zitat
r3v0

Registriert seit: 26. Mär 2007
Ort: Wegberg
45 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Projekt: Dynamischer StoredProcedure Viewer

  Alt 10. Aug 2007, 08:58
Hallu,

Ich habe eine Frage,

Und zwar wenn ich das Programm starte dauert es einige Zeit bis der sich alle infos holt und alle Sheets erstellt!

Kann ich dem irgendwie sagen beim ersten start baue dich. Beim 2ten Start behalte das aussehen wie beim ersten start damit es schneller geht! Oder Baue dich neu wenn es eine änderung gibt??
wie kann man das lösen?
Blub ich bin die Sig.
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Projekt: Dynamischer StoredProcedure Viewer

  Alt 10. Aug 2007, 14:35
Dann müsstest du einfach alles abgefragte Speichern, mit den dazugehörigen Werten und diese dann mit der DB vergleichen. Wenn sich nichts verändert hat, dann kannst du die gespeicherten nehmen.

Anders wirst du das wohl nicht lösen können, aber da er ja wieder abfragen muss, find ich kannst du es gleich jedes mal machen lassen
Lars S.
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:06 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