Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBExpress und View (https://www.delphipraxis.net/171623-dbexpress-und-view.html)

stahli 15. Nov 2012 20:00

Datenbank: Firebird • Version: 2.5 • Zugriff über: DBExpress

DBExpress und View
 
Ich habe in einer Datenbank eine View definiert (v_Test).

Im Daten-Explorer kann ich die View-Daten anzeigen lassen.
Also Script wird "select * from v_Test" angezeigt.

Wenn ich die View auf ein DataModule ziehe, wird ein SQLDataSet erzeugt, das sich aber nicht aktivieren lässt: "Tabelle v_Test unbekannt".
Auch als Query komme ich nicht weiter.

Ich kann das natürlich auch als normale Query von den Tabellen ausführen, aber sollte das nicht auch direkt mit der View gehen?

jobo 15. Nov 2012 20:11

AW: DBExpress und View
 
Vielleicht ein Berechtigungsproblem?
Welcher User hat den View erzeugt?
Welcher User öffnet ihn im Datamodule?

Wenn es der gleiche User war, sollte es natürlich gehen.

stahli 15. Nov 2012 20:26

AW: DBExpress und View
 
Alles SYSDBA.
Ich versuche mal noch eine andere View...

jobo 15. Nov 2012 20:42

AW: DBExpress und View
 
Nächste Vermutung wären Hochkomma oder Groß/Kleinschreibung im Viewnamen oder sowas beim Anlegen des Views oder eine gewisse Trägheit der IDE (gecachete Repositorydaten)
Wie sieht das Statement zur Viewerzeugung aus?

p80286 15. Nov 2012 21:32

AW: DBExpress und View
 
wie wäre es mit dem falschen Schema?
sind denn die vorhandenen Tabellen erreichbar?

gruß
K-H

stahli 15. Nov 2012 23:53

AW: DBExpress und View
 
Liste der Anhänge anzeigen (Anzahl: 3)
Ich habe die View neu mit einem anderen Programm (Rapid SQL XE3) angelegt, mit dem gleichen Effekt.

Die View lässt sich in Rapid SQL und dem Daten-Explorer ausführen, aber nicht im Delphi-Projekt...

Perlsau 16. Nov 2012 02:32

AW: DBExpress und View
 
Bei mir sieht die View-Erstellung (gleiche Datenbank-Version) z.B. so aus:

Code:
CREATE OR ALTER VIEW A_CODELISTE(
    CODE_INDEX,
    CODE_TITEL,
    CODE_SPRACHE,
    CODE_KATEGORIE,
    CODE_CODE,
    CODE_BESCHREIBUNG,
    CODE_MARKIERT)
AS
select
CODELISTE.IDX_CODELISTE,
CODELISTE.TITEL,
CODESPRACHE.SPRACHE,
KATEGORIE.K_NAME,
CODELISTE.CODE,
CODELISTE.BESCHREIBUNG,
CODELISTE.MARKIERT
from CODELISTE
inner join CODESPRACHE on CODESPRACHE.IDX_CODESPRACHE = CODELISTE.SPRACHE
inner join KATEGORIE  on KATEGORIE.IDX_KATEGORIE    = CODELISTE.KATEGORIE
;
Ob das mit deinem Problem zusammenhängt, daß du zuerst das View löschst und danach gleich wieder mit demselben Namen erstellst (und vermutlich kein Commit dazwischen), weiß ich nicht. Aber ich verwende andere DB-Komponenten (FibPlus), und dabei habe ich eine Besonderheit festgestellt, die mir nach kurzer Zeit einleuchtete:

Neben der Select-SQL darf das entsprechende Dataset nur noch eine Refresh-SQL enthalten, sonst funktioniert es nicht. Insert-, Update- und Delete-SQL müssen leer bleiben, weil ein View immer ReadOnly ist.


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