AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Ist soetwas mit Stored-procedures möglich?...
Thema durchsuchen
Ansicht
Themen-Optionen

Ist soetwas mit Stored-procedures möglich?...

Ein Thema von mojo777 · begonnen am 19. Sep 2005 · letzter Beitrag vom 19. Sep 2005
Antwort Antwort
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#1

Ist soetwas mit Stored-procedures möglich?...

  Alt 19. Sep 2005, 16:36
Datenbank: ib6 • Version: 6 • Zugriff über: ib
Hallo,
ich überlege gerade ob ich folgendes mit stored procedures realisieren kann...
also eine transaktion wird ausgeführt....
tabelle: transactions
tabellenfelder(vereinfacht): id, knd_id, geld, xyz
wenn ich jetzt einen neuen datensatz reinschreibe will ich folgendes machen lassen:
zählen aller geldbeträge in den transactionsdatensätzen, wo die so eben reingeschriebene knd_id vorkommt.
anschließend soll der wert in die kunden datenbank geschrieben werden.
irgendwie so?: insert into KUNDEN (PUNKTESTAND) values(:GELDSUMME) könnt emir vll jemand einen einfachen code vorschlagen... ich habe mit stored procedures irgendwie noch nie was vernunftiges gemacht. wobei.... oder sollte ich vll. eher einen trigger bzw generator verwenden um das problem zu lösen?

mfg

mojo
Muh macht die kUh
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#2

Re: Ist soetwas mit Stored-procedures möglich?...

  Alt 19. Sep 2005, 17:22
Das ist auf den ersten Blick am einfachsten durch einen AFTER INSERT TRIGGER zu lösen.


Codeschnipsel kann ich dir für die IB SQL-Syntax nicht fertigmachen, weil ich diese dafür zu wenig kenne. Ich vermute jedoch, das es bei den IB Triggern ebenfalls die temporären Tabellen INSERTED und DELETED gibt. Diese enthalten den (die) grade eingefügten, editierten bzw. gelöschten Datensatz (Datensätze).

Schöne Grüße,
Jens
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#3

Re: Ist soetwas mit Stored-procedures möglich?...

  Alt 19. Sep 2005, 18:16
ok. ich habe jetzt folgendes:
Delphi-Quellcode:
AS
begin
  if (new.ausg_knd_id IS NOT NULL) then
    begin
    select count(AUSGANG.ausg_vpreis) from AUSGANG
      where AUSGANG.ausg_knd_id = new.AUSG_KND_ID
      into :PKT_SUMM;
     UPDATE kunden set KND_PUNKTE=:PKT_SUMM WHERE KND_ID=new.AUSG_KND_ID;
    end
end
aber mir wird angezeigt, dass die spalte PKT_SUMM nicht bekannt ist... ich will das aber als eine art variable verwenden.
wie mach ich das?

vielen dank!
Muh macht die kUh
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#4

Re: Ist soetwas mit Stored-procedures möglich?...

  Alt 19. Sep 2005, 19:01
lösung des problems: (vll hilfs wem, wer auch in die stored procedures einsteigen will...)
trigger ruft eine stored procedure auf:
Delphi-Quellcode:
AS
begin
  EXECUTE PROCEDURE
    SETKNDPKT(new.AUSG_KND_ID);

end
die stored procedure sieht folgendermaßen aus:
Delphi-Quellcode:
SET TERM ^ ;

CREATE PROCEDURE SETKNDPKT (
    KND_ID INTEGER)
AS
DECLARE VARIABLE PKT_SUMM INTEGER;
begin
    select count(AUSGANG.ausg_vpreis) from AUSGANG
      where AUSGANG.ausg_knd_id = :KND_ID
      into :PKT_SUMM;
     UPDATE kunden set KND_PUNKTE=:PKT_SUMM WHERE KND_ID=:KND_ID;
  suspend;
end
^

SET TERM ; ^

GRANT SELECT ON AUSGANG TO PROCEDURE SETKNDPKT;

GRANT SELECT,UPDATE ON KUNDEN TO PROCEDURE SETKNDPKT;

GRANT EXECUTE ON PROCEDURE SETKNDPKT TO SYSDBA;
sysdba

ok.

grüßle...
Muh macht die kUh
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:00 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