SQL Fehlermeldung
Moderator: SYNERPY
-
- Beiträge: 589
- Registriert: Mi Apr 16, 2008 7:51 am
Hallo Fanja,
das ist wohl in Ordnung so
Da noch keine Daten in der Tabelle sind, kann er auch keine anzeigen. Aber die Syntax der SELECT-Abfrage stimmt, das ist doch schon prima.
Ich persönlich übertrage den kompletten Komplex zwischen CREATE VIEW und dem abschließenden Strichpunkt (inklusive) hinter dem letzten JOIN (also ohne TERM und die ^) in den SQL-Editor und führe die Anweisung dann dort mit [F9] aus. Hat bis jetzt bei korrekter Syntax immer funktioniert.
Was sagt Dein SQL-Editor dazu ?
Gruß
Geri12
das ist wohl in Ordnung so
Da noch keine Daten in der Tabelle sind, kann er auch keine anzeigen. Aber die Syntax der SELECT-Abfrage stimmt, das ist doch schon prima.
Ich persönlich übertrage den kompletten Komplex zwischen CREATE VIEW und dem abschließenden Strichpunkt (inklusive) hinter dem letzten JOIN (also ohne TERM und die ^) in den SQL-Editor und führe die Anweisung dann dort mit [F9] aus. Hat bis jetzt bei korrekter Syntax immer funktioniert.
Was sagt Dein SQL-Editor dazu ?
Gruß
Geri12
-
- Beiträge: 20
- Registriert: Mo Jun 30, 2008 12:57 pm
So, jetzt wirds interessant:
Ich habe den kompletten Aufbau einmal durchlaufen lassen, dabei kam wieder die Fehlermeldung: Anzahl elemente stimmt nicht überein. Also nocheinmal durchgezählt und siehe da: Das Feld Bemerkung existierte nur einmal. Brauch ich eh nicht also raus damit. Fehlerfreier Durchlauf JUHU
Nun das ganze im Script Executive ausgeführt
Fehlermeldung:
Ich glaube das Feld BEMERKUNG in der Tabelle ist der Grund, da es jetzt aus der select und create Anweisung gelöscht wurde. Aber eigendlich müsste das doch egal sein, dann gibt es halt ein Feld in der Tabelle, dass nicht abgefragt wird, oder???
Ich habe den kompletten Aufbau einmal durchlaufen lassen, dabei kam wieder die Fehlermeldung: Anzahl elemente stimmt nicht überein. Also nocheinmal durchgezählt und siehe da: Das Feld Bemerkung existierte nur einmal. Brauch ich eh nicht also raus damit. Fehlerfreier Durchlauf JUHU
Nun das ganze im Script Executive ausgeführt
Fehlermeldung:
Code: Alles auswählen
This operation is not defined for system tables. unsuccessful metadata update. STORE RDB$RELATION_FIELDS failed. deadlock. attempt to store duplicate value (visible to active transaction) in unique index "RDB$INDEX_15".
-
- Beiträge: 589
- Registriert: Mi Apr 16, 2008 7:51 am
Hallo Fanja,
in der Feldliste unter CREATE VIEW scheint ein Feldname doppelt zu sein. Bitte mal nachschauen.
Tabellenfelder nicht in einer View aufzuführen ist in Ordnung. Eine View ist eine neue virtuelle Tabelle. Eine "Sicht" auf diverse (miteinander verbundene) Tabellen. Und was in die View reinkommt bestimmst Du...
...entsprechend der Notwendigkeit, was Du mit der View anfangen willst
Gruß
Geri12
in der Feldliste unter CREATE VIEW scheint ein Feldname doppelt zu sein. Bitte mal nachschauen.
Tabellenfelder nicht in einer View aufzuführen ist in Ordnung. Eine View ist eine neue virtuelle Tabelle. Eine "Sicht" auf diverse (miteinander verbundene) Tabellen. Und was in die View reinkommt bestimmst Du...
...entsprechend der Notwendigkeit, was Du mit der View anfangen willst
Gruß
Geri12
-
- Beiträge: 1295
- Registriert: Fr Jul 28, 2006 9:13 am
Hallo Fanja,
das hört sich jetzt allerdings so an, als würde Dein System versuchen, eine View anzulegen die es schon gibt? Das ist zumindest der Sinn der Fehlermeldung mit dem "Attempt to store duplicate value" und die Nummer des Index, der den Fehler erzeugt ist so niedrig, daß das ein Systemindex sein müßte.
Ich denke am einfachsten wäre es, wenn Du nochmal mit einer leeren Datenbank von vorne anfängst.
Gruß
Michael
das hört sich jetzt allerdings so an, als würde Dein System versuchen, eine View anzulegen die es schon gibt? Das ist zumindest der Sinn der Fehlermeldung mit dem "Attempt to store duplicate value" und die Nummer des Index, der den Fehler erzeugt ist so niedrig, daß das ein Systemindex sein müßte.
Ich denke am einfachsten wäre es, wenn Du nochmal mit einer leeren Datenbank von vorne anfängst.
Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
-
- Beiträge: 20
- Registriert: Mo Jun 30, 2008 12:57 pm
Das ist schön zu hören, dass ich in dem Punkt richtig liege. Dies ist ja auch nur die Beispielaufgabe aus dem Programmierhandbuch.
Ich kann dort nichts doppeltes erkennen, vllt fällt dir ja was auf:
View:
select:
Kannst mir glauben, das wurmt mich total, so ein blödes Handbuch. Aber wenn ich die Aufgabe drin habe, sollte mein eigendliches Vorhaben kein Problem mehr darstellen.
edit:
schau mal im select-code:
MAskenkey beginnt mit B, die Felder werden aber mit C referenziert. Kann es das sein?
Ich kann dort nichts doppeltes erkennen, vllt fällt dir ja was auf:
View:
Code: Alles auswählen
CREATE VIEW V_BAVERP(
ID,
MASKENKEY,
BKUNDE_ID,
BSM_ID,
DATUM,
GEDRUCKT,
BENUTZER,
GESPEICHERT,
BKUNDE_MASKENKEY,
BKUNDE_BADR_NAME,
BKUNDE_BADR_BEZ,
BKUNDE_BADR_ABTEILUNG,
BKUNDE_BADR_STRASSE,
BKUNDE_BADR_BPLZ_MASKENKEY,
BKUNDE_BADR_BPLZ_ORT,
BSM_MASKENKEY,
BSM_NAME)
Code: Alles auswählen
AS
SELECT
A.ID,
A.MASKENKEY,
A.BKUNDE_ID,
A.BSM_ID,
A.DATUM,
A.GEDRUCKT,
A.BENUTZER,
A.GESPEICHERT,
B.MASKENKEY,
C.NAME,
C.BEZ,
C.ABTEILUNG,
C.STRASSE,
D.MASKENKEY,
D.ORT,
E.MASKENKEY,
E.NAME
FROM BAVERP A
LEFT OUTER JOIN BKUNDE B ON A.BKUNDE_ID = B.ID
LEFT OUTER JOIN BADR C ON B.BADR_ID_ADRNR = C.ID
LEFT OUTER JOIN BPLZ D ON C.BPLZ_ID_LANDPLZ = D.ID
LEFT OUTER JOIN BSM E ON A.BSM_ID = E.ID
;
edit:
schau mal im select-code:
Code: Alles auswählen
B.MASKENKEY,
C.NAME,
C.BEZ,
C.ABTEILUNG,
C.STRASSE,
-
- Beiträge: 589
- Registriert: Mi Apr 16, 2008 7:51 am
Hallo Fanja,
hier kann ich auch nichts Doppeltes erkennen.
Das mit den Feldern ist schon in Ordnung (das mit dem Handbuch auch ) ...
B.MASKENKEY enthält die Kunden-Nr. aus der Kundentabelle BKUNDE alias B
C.NAME ist aus der Adressentabelle BADR alias C der zugehörige Name
... das passt schon.
@Michael: Existiert die View schon, gibt's die Fehlermeldung "Table V_??? alredy exists"
Sorry, hier weiß ich nicht mehr weiter. Wenn's bei mir am Anfang geklemmt hat mit dem BAVERP-Beispiel, dann hatte ich meistens irgendwo einen Hund eingebaut. Ich würde hier auch neu beginnen ...
Gruß
Geri12
hier kann ich auch nichts Doppeltes erkennen.
Das mit den Feldern ist schon in Ordnung (das mit dem Handbuch auch ) ...
B.MASKENKEY enthält die Kunden-Nr. aus der Kundentabelle BKUNDE alias B
C.NAME ist aus der Adressentabelle BADR alias C der zugehörige Name
... das passt schon.
@Michael: Existiert die View schon, gibt's die Fehlermeldung "Table V_??? alredy exists"
Sorry, hier weiß ich nicht mehr weiter. Wenn's bei mir am Anfang geklemmt hat mit dem BAVERP-Beispiel, dann hatte ich meistens irgendwo einen Hund eingebaut. Ich würde hier auch neu beginnen ...
Gruß
Geri12
-
- Beiträge: 589
- Registriert: Mi Apr 16, 2008 7:51 am
P.S. Im IBExpert ist bei einer geöffneten Tabelle links von "Zähle Datensätze" ein Symbol namens "Erzeuge View". Damit kannst Du eine Standard-View erst mal vom System erzeugen lassen, dann speichern. Dann stimmt schon als mal die View-Basis. Danach stückweise erweitern und wieder speichern.
Gruß
Geri12
Gruß
Geri12