AGB  ·  Datenschutz  ·  Impressum  







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

variabler Datensatz

Ein Thema von manfred_h · begonnen am 26. Jan 2010 · letzter Beitrag vom 28. Jan 2010
Antwort Antwort
Seite 1 von 2  1 2      
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#1

variabler Datensatz

  Alt 26. Jan 2010, 16:11
Datenbank: Firebird • Version: 2.1 • Zugriff über: Fibplus
Hallo zusammen

in meiner Anwendung möchte ich gerne eine Möglichkeit
haben um auf div. variable Datensätze zuzugreiffen.

Am einfachsten vieleich mit einem Bsp. zu erklären:
Delphi-Quellcode:
procedure TDM_hospital.search_reset(Sender: TObject);
begin
  with Hospital do
  begin
    Close;
    SelectSQL.Text := ('SELECT * FROM HOSPITAL ORDER BY NAME');
    Open;
  end;
end;
gerne würde ich anstelle von with Hospital do with "variable" do
verwenden. Da ich dies zigfach verwende. Geht das?

Manfred
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: variabler Datensatz

  Alt 26. Jan 2010, 16:26
Zitat von manfred_h:
gerne würde ich anstelle von with Hospital do with "variable" do
verwenden. Da ich dies zigfach verwende.
Wenn alle diese Tabellen die gleiche Struktur haben, dann hast du schon einen Fehler gemacht.
Beipiel:
Es gibt die Tabellen HospitalJan, HospitalFeb,...HospitalDez in einer Datenbank.
Das ist aber ungeschickt, da man doch besser nur eine Tabelle hat und um die monatl. Daten zu
unterscheiden führt man einfach ein neues Feld "Monat" ein.

Wenn deine Tabellen alle unterschiedliche Struktur haben, dann ist deine Datenbankstruktur in Ordnung.
Allerdings ist dann deine Programmstruktur suboptimal.
Jede SQL-Abfrage sollte an das aktuelle Problem angepasst sein.
Eine Abfrage wie
SELECT * FROM <variabler_Tabellenname> ORDER BY NAME ist aber so allgemein gehalten, dass es keinen Sinn macht.
Andreas
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: variabler Datensatz

  Alt 26. Jan 2010, 16:27
Pack das Ganze in eine Prozedur, welcher du die DataSets übergibst
Markus Kinzler
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#4

Re: variabler Datensatz

  Alt 26. Jan 2010, 16:38
>> shmia
Zitat:
Wenn deine Tabellen alle unterschiedliche Struktur haben, dann ist deine Datenbankstruktur in Ordnung.
Die Struktur is io. Danke für den Hinweis.
Zitat:
Eine Abfrage wie
SQL-Code: markieren
SELECT * FROM <variabler_Tabellenname> ORDER BY NAME

ist aber so allgemein gehalten, dass es keinen Sinn macht.
Die Idee ist das ich die SQL's als Variabele übergebe. Das geht auch alles. Ausser das Anpassen der Datasets.

>> mkinzler
Zitat:
Pack das Ganze in eine Prozedur, welcher du die DataSets übergibst
Das ist das was ich machen möchte mir ist nur nicht klar wie.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

Re: variabler Datensatz

  Alt 26. Jan 2010, 16:51
Hallo Manfred,

Deine Frage ist etwas mißverständlich
zum einen hast Du eine Query, die "Hospital" heißt, da wäre "Get_HospitalBestand" vielleicht günstiger.
Zum anderen existiert in Deiner DB wohl eine Tabelle mit dem Namen"Hospital". Welches der beiden Hospitäler möchtest Du denn jetzt variabel gestalten und warum?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: variabler Datensatz

  Alt 26. Jan 2010, 16:53
Hallo,

das DataSet als Variable zu verwenden,
ist nicht möglich.
Also lass es.

Als Prozedur:
Delphi-Quellcode:
procedure PrepareQuery(theQuery: TQuery; const theTableName: String);
begin
  with theQuery do
  begin
    SQL.Clear;
    SQL.Add('Select * From '+theTableName);
  end;
end;
Macht aber nicht viel Sinn:

Select * ist eines der schlimmsten Performance-Killer.


Heiko
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: variabler Datensatz

  Alt 26. Jan 2010, 17:00
Bei einer richtig normalisierten Tabelle ist die fehlende Einschränkung der Datensatzmenge meisten der größere Killer.
Markus Kinzler
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#8

Re: variabler Datensatz

  Alt 26. Jan 2010, 17:05
Zitat von p80286:
Welches der beiden Hospitäler möchtest Du denn jetzt variabel gestalten und warum?
Gruß
K-H
Das Dataset selber soll variabel sein.

Zitat von hoika:
Delphi-Quellcode:
procedure PrepareQuery(theQuery: TQuery; const theTableName: String);
begin
  with theQuery do
  begin
    SQL.Clear;
    SQL.Add('Select * From '+theTableName);
  end;
end;
Select * ist eines der schlmimmsten Performance-Killer.
Besten Dank trotzdem. Da nicht viele Daten vorhanden sind ging es bis jetzt.

Werde mir das mal anschauen.

Shalom
Manfred
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

Re: variabler Datensatz

  Alt 26. Jan 2010, 17:15
Zitat von manfred_h:
Besten Dank trotzdem. Da nicht viele Daten vorhanden sind ging es bis jetzt.

Werde mir das mal anschauen.

Shalom
Manfred
Warum so niedergeschlagen?

In einer "Select-Abfrage" (brr welch grausliches wort) gibt es nun mal keine variablen Werte. Du als Benutzer oder Dein Programm muß da variabel reagieren. (SPs lassen wir mal außen vor)
Wenn Select * ein Performance-Killer ist, dann "nur" aus dem Grund, daß alle Daten sich über eine Leitung quälen mussen. Zumindestens die PrimaryKeys interessieren Benutzer relativ wenig und sind zunächst einmal überflüssig.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#10

Re: variabler Datensatz

  Alt 26. Jan 2010, 17:27
Zitat von p80286:
Warum so niedergeschlagen?
Danke für dein Nachfragen. Bin gerade ein wenig am rumtesten.
Delphi-Quellcode:
procedure PrepareDataset(theDataset: TpFIBDataSet; const theSQL: String);
begin
  with theDataset do
  begin
    close;
    SelectSQL.Text := (theSQL);
    open;
  end;
end;
Danke schon mal für Eure Ideen.
Shalom
Manfred
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:28 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