SQL Fehlermeldung
Moderator: SYNERPY
-
- Beiträge: 20
- Registriert: Mo Jun 30, 2008 12:57 pm
SQL Fehlermeldung
Hallo Leute,
ich bin neu hier im Forum und beschäftige mich seit kurzem mit AvERP
Ich arbeite gerade die Übungsaufgabe aus der Programmierdokumentation ab.
Beim erstellen der Trigger, sowie der View, erhalte ich SQL-Fehlermeldung und ein Rollback.
BeforeInsertTrigger: Invalid Token Dynamic SQL Error. SQL Error code = -104 Token unknown - line 3, char 1
CREATE
View: This operation is not defined for system tables. Dynamic SQL Error. SQL error code = -607. Invalid command. Number of columns does not match select list.
Kann mir da jemand weiterhelfen?
Gruß
ich bin neu hier im Forum und beschäftige mich seit kurzem mit AvERP
Ich arbeite gerade die Übungsaufgabe aus der Programmierdokumentation ab.
Beim erstellen der Trigger, sowie der View, erhalte ich SQL-Fehlermeldung und ein Rollback.
BeforeInsertTrigger: Invalid Token Dynamic SQL Error. SQL Error code = -104 Token unknown - line 3, char 1
CREATE
View: This operation is not defined for system tables. Dynamic SQL Error. SQL error code = -607. Invalid command. Number of columns does not match select list.
Kann mir da jemand weiterhelfen?
Gruß
-
- Beiträge: 589
- Registriert: Mi Apr 16, 2008 7:51 am
-
- Beiträge: 1295
- Registriert: Fr Jul 28, 2006 9:13 am
Mit welchem Tool arbeitest Du denn ... ?
Die Fehlermeldung besagt eigentlich nur, daß der SQL-Interpreter den Befehl CREATE nicht kennt.
Davon ausgehend, daß Du IBexpert verwendest: Trigger und Prozeduren werden nicht im SQL-Editor, sondern im SQL-Script Executive geschrieben.
Gruß
Michael
Die Fehlermeldung besagt eigentlich nur, daß der SQL-Interpreter den Befehl CREATE nicht kennt.
Davon ausgehend, daß Du IBexpert verwendest: Trigger und Prozeduren werden nicht im SQL-Editor, sondern im SQL-Script Executive geschrieben.
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
Triggerquellcode
Viewquellcode:
Ich arbeite mit IBExpert, das Script Executive habe ich noch nicht gefunden. Ich habe mich strickt an das Handbuch gehalten.
Gruß F
Code: Alles auswählen
CREATE TRIGGER BAVERP_BI2 FOR BAVERP
ACTIVE BEFORE INSERT POSITION 2
AS
DECLARE VARIABLE SJA VARCHAR(1);
DECLARE VARIABLE SNEIN VARCHAR(1);
BEGIN
/* Letzter Stand 17.04.2006 16:49:44 AS */
/* Protokollieren, dass Aktion hier durchgelaufen ist */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('BAVERP_BI2');
/* Kürzel für Ja und Nein aus dem Firmenstamm holen */
EXECUTE PROCEDURE P_BFIRMA_JANEIN RETURNING_VALUES (:SJA, :SNEIN);
/* Wert für das Feld ID vom Generator holen, wenn noch nicht vorhanden */
IF (NEW.ID IS NULL) THEN NEW.ID = GEN_ID(GEN_BAVERP,1);
/* Änderungen des Datensatzes dokumentieren */
NEW.BENUTZER = USER;
NEW.GESPEICHERT = CURRENT_TIMESTAMP;
/* Plausibilisierung für Tabellefelder */
IF (NEW.BKUNDE_ID = 0) THEN NEW.BKUNDE_ID = NULL;
IF (NEW.BSM_ID = 0) THEN NEW.BSM_ID = NULL;
/* Block der nicht mit dem Benutzer WORSTCASE ausgeführt wird */
IF (USER <> 'WORSTCASE') THEN
BEGIN
/* Ein neuer Datensatz kann noch nicht gedruckt sein */
NEW.GEDRUCKT = sNEIN;
END
END
Code: Alles auswählen
CREATE VIEW V_BAVERP(
ID,
MASKENKEY,
BKUNDE_ID,
BSM_ID,
DATUM,
GEDRUCKT,
BEMERKUNG,
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)
AS
SELECT
A.ID,
A.MASKENKEY,
A.BKUNDE_ID,
A.BSM_ID,
A.DATUM,
A.GEDRUCKT,
A.BEMERKUNG,
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
;
Gruß F
-
- Beiträge: 1295
- Registriert: Fr Jul 28, 2006 9:13 am
@Geri: Die Frage nach dem Tool ging an Fanja, um zu wissen, wie man helfen kann ... aber Urlaub ist auch mal keine schlechte Idee
@Fanja: Erst die View und dann den Trigger anlegen. Und im Script Executive solche "Einspielskripte" für Views, Trigger etc. immer aufbauen wie folgt:
Die beiden SET TERM Befehle sind zum umschalten des Befehlsendezeichens von ; auf ^, da Du den ; im normalen Skript ja miteingeben mußt. Der Interpreter bleibt deswegen auch am ersten Semikolon hängen und denkt der Befehl sei zu Ende. Und da kommt beim Eingeben eines Skriptes natürlich nur Blödsinn bei rüber
Gruß
Michael
@Fanja: Erst die View und dann den Trigger anlegen. Und im Script Executive solche "Einspielskripte" für Views, Trigger etc. immer aufbauen wie folgt:
Code: Alles auswählen
SET TERM ^;
CREATE .....
END
^ /* Wichtig */
SET TERM;^
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
Also auch da erhalte ich eine Exception:
Über select DB habe ich die aber vorher ausgewählt
Linie 48 ist das ^ zwischen und
Hier nocheinmal der Viewscript mit obengenannten Aufbau:
Gruß
Code: Alles auswählen
Script executed with errors!
Code: Alles auswählen
Linie 48 cannot perform operation--DB is not open.
Linie 48 ist das ^ zwischen
Code: Alles auswählen
end
Code: Alles auswählen
set term;^
Code: Alles auswählen
set term ^;
CREATE VIEW V_BAVERP(
ID,
MASKENKEY,
BKUNDE_ID,
BSM_ID,
DATUM,
GEDRUCKT,
BEMERKUNG,
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)
AS
SELECT
A.ID,
A.MASKENKEY,
A.BKUNDE_ID,
A.BSM_ID,
A.DATUM,
A.GEDRUCKT,
A.BEMERKUNG,
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
;
end
^
set term;^
-
- Beiträge: 1295
- Registriert: Fr Jul 28, 2006 9:13 am
Schau mal oben in der Icon-Leiste direkt über dem Texteditor-bereich im Script Executive. Da gibt es neben der Datenbankauswahl noch ein kleines Kästchen "Use Current Connect", welches aktiviert sein muß.
Gruß
Michael
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: 515
- Registriert: Di Okt 19, 2004 5:45 am
- Wohnort: Diepholz
Hallo Franja,
ich könnte noch das Handbuch für IBExpert empfehlen, das im Downloadbereich von IBExpert als PDF zur Verfügung stehtFanja hat geschrieben:Code: Alles auswählen
Script executed with errors!
Code: Alles auswählen
Linie 48 cannot perform operation--DB is not open.
MfG
KDP
----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
KDP
----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
-
- Beiträge: 20
- Registriert: Mo Jun 30, 2008 12:57 pm
@festus01:
mein Name ist Fanja, ohne "R", oder meinst du Franjo - das ist aber ein Mann und noch nicht mal ein Ehrenhafter!
Ich habe mir aber deinen Rat zu HErzen genommen und mir die IBExpert-Doku besorgt. Diese ist allerdings sehr allgemein gehalten.
@miboe:
Use current connect erzeugt folgenden Fehler: Linie 48 Invalide Token. Dynamic SQL Error. SQL error code = -104. token unknown - line46, char 1. end. Ich steh vor einem Rätsel
mein Name ist Fanja, ohne "R", oder meinst du Franjo - das ist aber ein Mann und noch nicht mal ein Ehrenhafter!
Ich habe mir aber deinen Rat zu HErzen genommen und mir die IBExpert-Doku besorgt. Diese ist allerdings sehr allgemein gehalten.
@miboe:
Use current connect erzeugt folgenden Fehler: Linie 48 Invalide Token. Dynamic SQL Error. SQL error code = -104. token unknown - line46, char 1. end. Ich steh vor einem Rätsel
-
- Beiträge: 589
- Registriert: Mi Apr 16, 2008 7:51 am
@Michael: Gestern hatte ich nach mehreren Stunden im IBExpert zum einen Dein Posting falsch verstanden und zum anderen noch nicht mal mehr genug Power, um mein Posting zu überprüfen. (Du bist hier schließlich der Forenkönig.) Deshalb der beschämte Rückzieher ohne nochmal zu kontrollieren. Heute würde ich sagen, ich habe keine falsche Info an Fanja weitergegeben. Ich denke, der Urlaub ist wirklich nötig.miboe hat geschrieben:@Geri: Die Frage nach dem Tool ging an Fanja, um zu wissen, wie man helfen kann ... aber Urlaub ist auch mal keine schlechte Idee
@Fanja: Für mich ist hier das END zuviel
Gruß
Geri12
-
- Beiträge: 20
- Registriert: Mo Jun 30, 2008 12:57 pm
HI Geri,
das habe ich mir auch gedacht und es einfach mal weggelassen
Fehlermeldung:
Gut habe ich das Feld Bemerkung nicht berücksichtigt, also A.BEMERKUNG raus.
Fehlermeldung:
Ich glaube ich fang am Besten noch mal von vorne an.
edit:
So, das Feld BEMERKUNG ist in der Tabelle,
das habe ich mir auch gedacht und es einfach mal weggelassen
Fehlermeldung:
Code: Alles auswählen
Column does not belong to reference table. Dynamic SQL error code=-206. Column unknown A.BEMERKUNG. At line 28 column3.
Fehlermeldung:
Code: Alles auswählen
This operation is not defined for system tables. Dynamic SQL error. Error code=-607. Invalid command. number of columns does not match.
edit:
So, das Feld BEMERKUNG ist in der Tabelle,
-
- Beiträge: 589
- Registriert: Mi Apr 16, 2008 7:51 am
Hallo Fanja,
dann vielleicht erst mal das SELECT-Statement prüfen, bevor Du weiterarbeitest: den Abschnitt zwischen SELECT bis inkl. dem letzten JOIN kopieren und in den SQL-Editor einfügen. Dort mit [Ausführen (F9)] durchlaufen lassen und korrigieren, bis keine Fehler mehr auftreten ...
Gruß
Geri12
P.S. bzgl. der COLUMNS-Fehlermeldung siehe mein Posting oben
dann vielleicht erst mal das SELECT-Statement prüfen, bevor Du weiterarbeitest: den Abschnitt zwischen SELECT bis inkl. dem letzten JOIN kopieren und in den SQL-Editor einfügen. Dort mit [Ausführen (F9)] durchlaufen lassen und korrigieren, bis keine Fehler mehr auftreten ...
Gruß
Geri12
P.S. bzgl. der COLUMNS-Fehlermeldung siehe mein Posting oben
-
- Beiträge: 20
- Registriert: Mo Jun 30, 2008 12:57 pm
hi,
es sind keine Fehler aufgetreten, glaube ich zumindest. Im Grid View wird mir eine Zeile mit allen Feldern angezeigt. Überall steht NULL. heißt das er findet keine Datensätze?
Die Anzahl der Listenelemente stimmt überein, Quellcode habe ich ja gepostet.
Aber klasse dieser SQL editor, so hat man schon mal eine Vorschau für das was man plant.
Problem noch nicht gelöst
es sind keine Fehler aufgetreten, glaube ich zumindest. Im Grid View wird mir eine Zeile mit allen Feldern angezeigt. Überall steht NULL.
Code: Alles auswählen
0 records fetched
Die Anzahl der Listenelemente stimmt überein, Quellcode habe ich ja gepostet.
Aber klasse dieser SQL editor, so hat man schon mal eine Vorschau für das was man plant.
Problem noch nicht gelöst