![]() |
Stored pocedure
hallo experten,
ich stehe mal wieder auf den schlauch, und lange ist es her ds ich etwas mit stored procedure gemacht habe, DB: ib Zugriff : IBSQL
SQL-Code:
folgende Datenaufbau
CREATE PROCEDURE HELPME (id Integer)
AS DECLARE VARIABLE LETZTEAENDERUNG TIMESTAMP; BEGIN SELECT LETZTEAENDERUNG FROM ART8 WHERE id = :id; IF LETZTEAENDERUNG <> 'NOW' THEN LETZTEAENDERUNG =: 'NOW' ELSE EXIT END ID : integer name : varchar Letzteaenderung :Timestamp schon beim execute Query kommt die Fehlermeldung Zitat:
raik edit : dicke Finger und kleine Tasten :mrgreen: |
Re: Stored pocedure
Hi Kiar!
In Ermangelung eines Interbase Servers (ich hab hier nur nen Oracle zum Spielen!) rate ich einfach mal, aber wenn das mit den Stored Procedures so geht wie in Oracle, dann hast Du schlicht und einfach zwei Semikoli vergessen (siehe unten). Hoffe das behebt das Problem. Viele Grüsse Frank
SQL-Code:
CREATE PROCEDURE HELPME (id Integer)
AS DECLARE VARIABLE LETZTEAENDERUNG TIMESTAMP; BEGIN SELECT LETZTEAENDERUNG FROM ART8 WHERE id = :id; IF LETZTEAENDERUNG <> 'NOW' THEN LETZTEAENDERUNG =: 'NOW'; <<<<<<< HIER ELSE EXIT; <<<<<< HIER AUCH END |
Re: Stored pocedure
Code:
[edit=MrSpock]Code Tags eingefügt. Mfg, MrSpock[/edit]
CREATE PROCEDURE HELPME (id Integer)
AS DECLARE VARIABLE LETZTEAENDERUNG TIMESTAMP; BEGIN SELECT LETZTEAENDERUNG FROM ART8 WHERE id = :id; IF LETZTEAENDERUNG <> 'NOW' THEN LETZTEAENDERUNG =: 'NOW'; <<<<<<< HIER //sollte so aussehen LETZTEAENDERUNG [b]:=[/b] 'NOW'; ELSE EXIT; END |
Re: Stored pocedure
hallo frank,
ich glaube der Interbase server tickt anders, jedenfalls, haben deine einwände 'zu mindestens bei meiner procedure' :mrgreen: nicht zum erfolg geführt. danke raik |
Re: Stored pocedure
Also ich meine wenn dein Zuweisungsoperator genau so im Quelltext steht kommt es unweigerlich zu einer Fehlermeldung!
|
Re: Stored pocedure
Hi Klabim :hi:
Herzlich willkommen in der DP :dp: Bitte formatiere fürs nächste mal deinen Code, für den ObjectPascal Teil gibt es oben den Butten "Delphi-Code", falls du SQL Statements posten willst nimm den "SQL" Button zuhilfe, damit kann man den Quellcode hier im Forum nämlich hervorragend formatieren. Viel Spass noch im Forum :zwinker: mfg phlux :hi: |
Re: Stored pocedure
hallo klabim :mrgreen:
das ist es auch nicht, ich habe jetzt die procedure
SQL-Code:
eingekreist und jetzt moniert er das set Term ^ ... ^
SQL-Code:
raik
SELECT LETZTEAENDERUNG FROM ART8 WHERE id = :id;<---- das letzte zeichen
|
Re: Stored pocedure
Hallo,
probier es doch mal so
SQL-Code:
Gruß
CREATE PROCEDURE HELPME (id Integer)
AS DECLARE VARIABLE LETZTEAENDERUNG TIMESTAMP; BEGIN SELECT LETZTEAENDERUNG FROM ART8 WHERE id = :id; IF LETZTEAENDERUNG <> 'NOW' THEN LETZTEAENDERUNG = 'NOW'; -- Ohne : ELSE EXIT; END Ken |
Re: Stored pocedure
Deine Procedure macht so gar nix. Du hast weder einen Ausgabeparameter definiert noch verändert Deine Prozedur irgendwelche Daten. Ich nehme mal an das Du die Variable LETZTEAENDERUNG zurückgeliefert haben möchtest. In diesem Fall sollte die Procedure etwa so aussehen:
SQL-Code:
Gruß,
SET TERM !!;
CREATE PROCEDURE HELPME ( P_ID INTEGER ) RETURNS ( LETZTEAENDERUNG TIMESTAMP ) AS BEGIN SELECT LETZTEAENDERUNG FROM ART8 WHERE ID = :P_ID INTO :LETZTEAENDERUNG; IF LETZTEAENDERUNG <> 'NOW' THEN LETZTEAENDERUNG = 'NOW'; SUSPEND; END !! Marcel |
Re: Stored pocedure
viel zu kompliziert :
SQL-Code:
Was mich nur wundert : derselbe Code in einem Trigger geht bei mir von Delphi aus nicht. :shock:
SET TERM ^;
CREATE PROCEDURE HELPME RETURNS (LETZTEAENDERUNG TIMESTAMP) AS begin LETZTEAENDERUNG = 'NOW'; suspend; end ^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:34 Uhr. |
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