Zitat von
haentschman:
!!!Eigenwerbung:
Hihi, kann ich auch:
Bei mir liegen für gewöhnlich alle Statements in eine Datenbanktabelle.
Lediglich das Statement zum Holen der Statements ist "fest verdrahtet".
Dadurch kann ich die Statements erstmal "ausprobieren". Jedes hat 'ne eindeutige ID, über die es angesprochen wird.
Parameter sind natürlich möglich, sowohl die
SQL-Stringlistentypischen Doppelpunkt-Parameter, als auch die für ein Format erforderlichen %-Parameter. Selbst Kombinationen funktionieren.
Und bei 'nem Datenbankwechsel muss nur in dieser Tabelle die Syntax entsprechend den Anforderungen der Datenbank angepasst werden (soweit überhaupt erforderlich).
Typ(ück)isches Beispiel:
Select first 10 * from Tabelle
Select top 10 * from Tabelle
Select * from Tabelle where RowNum <= 10
Oder mal heißt es IsNull, dann mal IfNull oder Nvl oder Coalesce ...
Oder mal ||, um VarChars "zusammenzupappen" oder halt eben mit + ...
Wenn irgendmöglich, liegt das alles in der Datenbank und zwar so, dass es für das Programm absolut transparent ist.
"Datenbankwechsel?"
"Nagut, wenn Sie meinen. Daten in neue Datenbank kopieren, Tabelleninhalt anpassen und geht." (fast immer)
Bei mandandenfähiger Software ist es dann besonders schön, wenn für unterschiedliche Mandanten unterschiedliche Datenbanken genutzt werden, die Anwender aber nur eine Exe haben, die per Auswahldialog zwischen den Mandanten wechselt. Der Rest geht für Anwendung (und natürlich auch den Anwender) absolut transparent.
Zugegeben: Sowas musste ich bisher nur einmal bauen.