Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   C# Select-Befehle für wiederholte Benutzung speichern? (https://www.delphipraxis.net/81999-select-befehle-fuer-wiederholte-benutzung-speichern.html)

Jürgen Thomas 6. Dez 2006 13:23

Datenbank: Firebird • Version: 2.0 • Zugriff über: Firebird Net Provider

Select-Befehle für wiederholte Benutzung speichern?
 
Hallo,
der Anwender soll in der Applikation (über eines oder mehrere Eingabeformulare) SELECT-Befehle mit Parametern erstellen und speichern können; bei späterer Gelegenheit soll der Befehl wieder verwendet werden mit anderen Inhalten der Parameter.

Was ist am praktischsten, wo und wie Befehl, Parameter-Name und -Typ sowie Beschreibung zu speichern wären?
  1. ausschließlich als Stored Procedure
  2. wie eine View in der Systemtabelle RDB$Relations
  3. mit eigenen Tabellen in der Datenbank (z.B. RDB$Select und RDB$Parameter)
  4. mit eigenen Tabellen in einer Xml-Datei
  5. oder gibt es noch andere geeignete Verfahren?
Bei Begründungen und Diskussionen könnt Ihr Euch kurz fassen; ich kann mir die Konsequenzen selbst ausmalen. Danke! Jürgen

Heffalump 8. Dez 2006 08:21

Re: Select-Befehle für wiederholte Benutzung speichern?
 
Ich halte 4. für die beste Lösung. Man kann sicher die Daten auch in der Datenbank halten, aber bei mehreren Benutzern müsste dann noch so etwas wie "Mandantenfähigkeit" für Benutzer eingebaut werden. Dazu gehört auch, wie man sicherstellt, das die Benutzer nicht gegenseitig in die Selects schauen können, usw.. Lösung Nr. 4 un damit in das Profilverzeichnis eines Benutzers.

mkinzler 8. Dez 2006 08:40

Re: Select-Befehle für wiederholte Benutzung speichern?
 
Ich würde 1+2 bevorzugen.

hoika 8. Dez 2006 08:41

Re: Select-Befehle für wiederholte Benutzung speichern?
 
Hallo,

"natürlich" in die DB, egal wie (die XML als Blob z.B.).
Das jeder Nutzer nur seine eigenen sihet (oder die sogar als
"kuck mal, kannst du auch haben", für alle speichert,
ist nur ein bisschen Programmierung.

Zu dem Profilverzeichis,
solange keine servergespeicherten Profile genutzt werden,
könnte der Nutzer ja nicht an einen anderen Rechner gehen
und dort wie gewohnt weiterarbeiten.


Heiko

Elvis 8. Dez 2006 09:20

Re: Select-Befehle für wiederholte Benutzung speichern?
 
Zitat:

Zitat von mkinzler
Ich würde 1+2 bevorzugen.

Ist in Firebird leider nicht wirklich so nett möglich wie es wohl ursprünglich gedacht war, da Firebird weder Schemas noch Packages kennt.
Natürlich könnte man diesen Objekte witzige, vllt zufällig generierte, Namen geben, die in Quotes eingeschlossen sind.

Der Name, den der Benutzer sehen würde, würde dann in den Metadaten stehen.
Da Views in FB ein wenig stiefmütterlich behandelt wurden und selectable SProcs im Vergleich zu anderen DBMS weniger Overhead haben, würde ich in dem Fall für SProcs plädieren.
Macht auch die Parametrisierung einfacher. :)

Jürgen Thomas 8. Dez 2006 18:15

Re: Select-Befehle für wiederholte Benutzung speichern?
 
Danke für alle Kommentare.

Ich habe mich entschlossen, alles (auch variable Inserts usw.) per SProc zu registrieren: Schreibender Zugriff auf die Systemtabellen ist kaum möglich (und natürlich äußerst riskant); aber für SProcs bin ich mit Input- und Output-Parametern hinreichend flexibel.

Jürgen


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