![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: Fibplus
variabler Datensatz
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:
gerne würde ich anstelle von with Hospital do with "variable" do
procedure TDM_hospital.search_reset(Sender: TObject);
begin with Hospital do begin Close; SelectSQL.Text := ('SELECT * FROM HOSPITAL ORDER BY NAME'); Open; end; end; verwenden. Da ich dies zigfach verwende. Geht das? Manfred |
Re: variabler Datensatz
Zitat:
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
SQL-Code:
ist aber so allgemein gehalten, dass es keinen Sinn macht.
SELECT * FROM <variabler_Tabellenname> ORDER BY NAME
|
Re: variabler Datensatz
Pack das Ganze in eine Prozedur, welcher du die DataSets übergibst
|
Re: variabler Datensatz
>> shmia
Zitat:
Zitat:
>> mkinzler Zitat:
|
Re: variabler Datensatz
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 |
Re: variabler Datensatz
Hallo,
das DataSet als Variable zu verwenden, ist nicht möglich. Also lass es. Als Prozedur:
Delphi-Quellcode:
Macht aber nicht viel Sinn:
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 schlimmsten Performance-Killer. Heiko |
Re: variabler Datensatz
Bei einer richtig normalisierten Tabelle ist die fehlende Einschränkung der Datensatzmenge meisten der größere Killer.
|
Re: variabler Datensatz
Zitat:
Zitat:
Werde mir das mal anschauen. Shalom Manfred |
Re: variabler Datensatz
Zitat:
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 |
Re: variabler Datensatz
Zitat:
Delphi-Quellcode:
Danke schon mal für Eure Ideen. :dp:
procedure PrepareDataset(theDataset: TpFIBDataSet; const theSQL: String);
begin with theDataset do begin close; SelectSQL.Text := (theSQL); open; end; end; Shalom Manfred |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 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 by Thomas Breitkreuz