![]() |
AW: Firebird Embedded + AUTOINC
Zitat:
Aber immer öfter. |
AW: Firebird Embedded + AUTOINC
Zitat:
Zitat:
Und bitte nicht vergessen, es gibt Datenbanken, da kommt man als Benutzer nur an die Views heran. Gruß K-H |
AW: Firebird Embedded + AUTOINC
Das Problem der neu zu compilierenden Views gibt es bei Oracle auch, wenn die Definitionen der zugrundeliegenden Tabellen geändert werden, das zieht sich aber durch über procedures und functions, Jobs, Trigger etc. Liegt wohl in der Natur der Sache.
Dass es Datenbanken gibt, bei denen der Benutzer nur die Views zu sehen bekommt, liegt wohl eher daran, dass der Benutzer ausschließlich die Rechte erhalten hat, Views zu verwenden. In Data Ware House Datenbanken war und ist das üblich, damit die Daten nicht verändert werden können. Grüße Mikhal |
AW: Firebird Embedded + AUTOINC
Probleme mit Views kenne ich bei einer View, die '*' verwendet, wobei die verwendete Tabelle in der Struktur erweitert/verändert wird.
Code:
Ein Wort noch zu Views: Wer wiederverwendbaren Code schreibt, oder Clean-Code anwendet (also Codeteile durch Einbetten in eine kleine Methode dokumentiert), sollte auch Views, UDF und SP verwenden. Damit wird der SQL-Code einfach lesbarer. Wer Obfuscation liebt, der verwendet die natürlich nicht, ist ja klar.
CREATE VIEW View_WillBlowUp as
select * from Foobar Und wenn sich einmal die Definition der 'OpenInvoices' ändern sollte (bitte keine internen Rechnungen an die IT), dann macht man das an einer einzigen Stelle: Nämlich in der View. Und ab *sofort* sind alle Reports, Auswertungen und Programme angepasst und zeigen stringent die gleiche Information. Allerdings ist die Verwendung einer View in extrem komplexen Queries (also wenn die Query selbst mit Views arbeitet) nicht immer schneller. Leider. Da muss man die View dann materialisieren und mit einem Index versehen, oder zu anderen Tricks greifen. |
AW: Firebird Embedded + AUTOINC
Ich habe da noch eine Frage, aber davor Danke Perlsau so ist das ja echt :thumb:
Muss ich in Firedac noch was eistellen mein counter zählt nicht der ist bis jetzt ein einfaches FDTable1COUNTER: TLargeintField; was übersehe ich ? |
AW: Firebird Embedded + AUTOINC
Erstelle einen Datenbank-Trigger und fertig.
|
AW: Firebird Embedded + AUTOINC
Danke
Nur wenn ich das in der Datenbank mit IBExpert mache, geht das, mit Firedac nicht. OK mal sehen.:pale: Before is Active as begin if (new.counter is null) then new.counter = gen_id(gencounter,1); end |
AW: Firebird Embedded + AUTOINC
Das
Delphi-Quellcode:
:-D
FDTable1COUNTER.AutoGenerateValue := arAutoInc;
muss man initialisieren, dann geht es. War unter den vielen Infos, nicht leicht zu finden, ![]() gehört meiner Meinung als Info auf folgende Seite ![]() |
AW: Firebird Embedded + AUTOINC
Das kann so fast nicht sein. FireDAC müsste dann irgendwie den Trigger in der Datenbank aushebeln. Wie das ? :shock: Und warum ? Sorry, aber meine Phantasie reicht da nicht aus.
|
AW: Firebird Embedded + AUTOINC
Wozu sollte Firedac den Trigger aushebeln müssen? Firedac übergibt einfach den Wert für das Feld und das wars.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:22 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