AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi View mit Instead Of Trigger nutzen
Thema durchsuchen
Ansicht
Themen-Optionen

View mit Instead Of Trigger nutzen

Ein Thema von seb83 · begonnen am 5. Mai 2022 · letzter Beitrag vom 5. Mai 2022
Antwort Antwort
seb83

Registriert seit: 25. Jun 2015
9 Beiträge
 
#1

View mit Instead Of Trigger nutzen

  Alt 5. Mai 2022, 16:33
Datenbank: SQL Server • Version: >2005 • Zugriff über: AdoQuery
Hi,

zurzeit ist ein DbGrid über eine AdoQuery angebunden, nun muss ich was dort angezeigt wird erweitern.
Zurzeit hängt dahinter eine einfache View, jetzt musste ich eine benutzen die ein UNION ALL enthält, nun geht ja das INSERT nicht mehr, also habe ich ein INSTEAD OF INSERT Trigger gebaut.
Per normalen SQL kann ich problemlos einfügen in die View, aber in Delphi geht nichts mehr...
Bekomme erst den Fehler das Spalten nicht NULL enthalten dürfen und dann "... kann nicht aktualisiert werden da die Definition einen UNION Operator enthält".
Wie macht Delphi das und umgeht den INSTEAD OF Trigger? Gibt es eine Lösung?

View wurde mit VIEW_METADATA erstellt

Geändert von seb83 ( 5. Mai 2022 um 16:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: View mit Instead Of Trigger nutzen

  Alt 5. Mai 2022, 17:07
In der Regel benötigt man in einem solchen Fall drei instead of trigger: delete, insert und update.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: View mit Instead Of Trigger nutzen

  Alt 5. Mai 2022, 20:07
Erstmal ne doofe Frage: Muss es wirklich ein Union sein? Nach meiner Erfahrung gibt es hier oft Missverständnisse, die ein UNION Statement als einzige Option erscheinen lassen.

Wenn sich UNION nicht vermeiden lässt, würde ich trotzdem versuchen, keinen Instead Of Trigger zu nutzen.
Das kann erfolgen durch
- Nutzung einer SP für Insert/ Update / Delete (Code wahrscheinlich relativ ähnlich zu den Triggern)
- Nutzung eines anonymen Blocks (fast wie oben, nur das es eine reine Clientveranstaltung ist)
- Entzerrung der ganzen Form
Der letzte Fall kann beliebig bastelig sein/ werden, Richtung Trennung von Darstellung und Editierung bzw. der Persisistierung der editierten Daten, also Fallunterscheidung bereits im Client, fallweise gefolgt von 2 separten Update Statements.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 22:02 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