Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Wann SQL Ergebnismenge editierbar? (https://www.delphipraxis.net/152514-wann-sql-ergebnismenge-editierbar.html)

RSF 25. Jun 2010 10:31

Datenbank: ADS • Version: 9 • Zugriff über: ADD

Wann SQL Ergebnismenge editierbar?
 
Diese Abfrage erzeugt eine Ansicht die nicht editierbar ist. (Statischer Cursor)
Ohne Begrenzung "WHERE" ist die Datenmenge editierbar.
Ein Statischer Cursor entsteht doch nur, wenn eine temporäre Tabelle angelegt wird.
(z.B. bei Abfragen über mehrer Tabellen)
Ist das bei "WHERE" auch der Fall?

Code:
SELECT k.id_kunden, k.kundennummer, k.debitornr, k.an, k.name, k.name2,
  k.vorname, k.strasse, k.plz, k.ort, k.postfach, k.plz_postfach, k.landkennzeichen,
  k.bundesland, k.kennung, k.ansprechpartner, k.telefon, k.fax, k.funk,
  k.user1
FROM kunden1 k
Where k.user1 = user

mkinzler 25. Jun 2010 11:11

AW: Wann SQL Ergebnismenge editierbar?
 
Dürfte eigentlich nicht der Fall sein ( kenne aber ADS nicht)

RSF 25. Jun 2010 11:21

AW: Wann SQL Ergebnismenge editierbar?
 
Zitat:

Zitat von mkinzler (Beitrag 1031527)
Dürfte eigentlich nicht der Fall sein ( kenne aber ADS nicht)

ADS = Advantage Database Server von SYBASE
ADD = Advantage Data Dictionary

mkinzler 25. Jun 2010 11:23

AW: Wann SQL Ergebnismenge editierbar?
 
Was ADS ist, weis ich schon ( vom Namen her) wie es aber genau bei diesem DBMS ist halt nicht.

Tyrolean 25. Jun 2010 12:23

AW: Wann SQL Ergebnismenge editierbar?
 
Zitat:

Zitat von RSF (Beitrag 1031515)
Ein Statischer Cursor entsteht doch nur, wenn eine temporäre Tabelle angelegt wird.
(z.B. bei Abfragen über mehrer Tabellen)
Ist das bei "WHERE" auch der Fall?

Code:
SELECT k.id_kunden, k.kundennummer, k.debitornr, k.an, k.name, k.name2,
  k.vorname, k.strasse, k.plz, k.ort, k.postfach, k.plz_postfach, k.landkennzeichen,
  k.bundesland, k.kennung, k.ansprechpartner, k.telefon, k.fax, k.funk,
  k.user1
FROM kunden1 k
Where k.user1 = user

Prinzipiell richtig. Ich würde hier auch keinen statischen cursor erwarten. Ist das wirklich genau der SQL-Befehl wie du ihn losschickst? was ist dann 'user'?

ZusatzInfo: http://devzone.advantagedatabase.com...ere_clause.htm


Gruß
günter

RSF 25. Jun 2010 16:02

AW: Wann SQL Ergebnismenge editierbar?
 
Ja dieser Code wird so in Views verwendet.
user = aktueller angemeldeter Benutzer (Login: Benutzername)
Dieser hat aber die Rechte. (Read,Update,Insert,Delete auf Views)

idefix2 25. Jun 2010 16:23

AW: Wann SQL Ergebnismenge editierbar?
 
Möglicherweise gilt "user" in ADS als Funktion, die den aktuellen User als Resultat liefert. Dann wäre in Verbindung mit dem Link von Tyrolean aus Posting #5 der statische Curasor erklärt.

RSF 25. Jun 2010 18:05

AW: Wann SQL Ergebnismenge editierbar?
 
Idefix2 vielen Dank:thumb:
genau das ist der entscheidende Hinweis(Lösung).
Ich habe es ausprobiert. Die Funktion „USER“ im SQL-Statement erzeugt einen
statischen Cursor.
Man lernt immer was dazu.

joachimd 1. Jul 2010 09:45

AW: Wann SQL Ergebnismenge editierbar?
 
Zitat:

Zitat von RSF (Beitrag 1031619)
Idefix2 vielen Dank:thumb:
genau das ist der entscheidende Hinweis(Lösung).
Ich habe es ausprobiert. Die Funktion „USER“ im SQL-Statement erzeugt einen
statischen Cursor.
Man lernt immer was dazu.

Ist vielleicht schon etwas spät dafür (ein paar Tage außer Haus und mir fehlt in der neuen DP 'Beiträge seit letztem Besuch'): USER, so verwendet, müßte eigentlich einen Fehler werfen. Wenn die Funktion, dann bitte mit den Klammern USER().

RSF 3. Jul 2010 11:55

AW: Wann SQL Ergebnismenge editierbar?
 
Code:
SELECT k.*
FROM kunden1 k
Where k.user1 = user
Code:
SELECT k.*
FROM kunden1 k
Where k.user1 = user()
Beide Varianten erzeugen keinen Fehler bei Ausführung (ADA SQL Utility 9.10.0.23).


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:42 Uhr.
Seite 1 von 2  1 2      

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