AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi [IBX] Stored Procedure definieren
Thema durchsuchen
Ansicht
Themen-Optionen

[IBX] Stored Procedure definieren

Ein Thema von MrSpock · begonnen am 20. Mär 2005 · letzter Beitrag vom 22. Mär 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#1

[IBX] Stored Procedure definieren

  Alt 20. Mär 2005, 21:57
Datenbank: Firebird • Version: 1.0.3 • Zugriff über: IBX
Hallo,

ich habe eine Definition einer Stored Procedure, die auszugsweise so aussieht:

SQL-Code:
CREATE PROCEDURE KAEUFERZUORDNUNG (
    INOHR VARCHAR(25))
RETURNS (
    AUSGANZ INTEGER)
AS
DECLARE VARIABLE WOCHE VARCHAR(5);
DECLARE VARIABLE OHR VARCHAR(25);
DECLARE VARIABLE LIEFERANT VARCHAR(5);
DECLARE VARIABLE ERFNR VARCHAR(6);
DECLARE VARIABLE ERFDATUM DATE;
DECLARE VARIABLE KNR VARCHAR(5);
DECLARE VARIABLE LNR SMALLINT;
DECLARE VARIABLE ART VARCHAR(5);
DECLARE VARIABLE GESCHLECHT CHAR(1);
DECLARE VARIABLE BEM VARCHAR(10);
DECLARE VARIABLE WAHL CHAR(1);
DECLARE VARIABLE LAND CHAR(2);
DECLARE VARIABLE KPTGEWB FLOAT;
DECLARE VARIABLE ZUABK FLOAT;
DECLARE VARIABLE PREIS FLOAT;
DECLARE VARIABLE GEBDAT DATE;
DECLARE VARIABLE ANZ INTEGER;
begin
  /* Procedure Text */
  ausganz = 0;
  if (INOHR = 'ALL') then
  begin
    for select WOCHE, OHR_NR, LIEFERANT,
               ERFASS_NR, ERFASSUNGSDATUM, KUNDEN_NR,
               LAUF_NR, ART, GESCHLECHT,
             BEMERKUNG, WAHL, LAND,
             KPT_GEW_B, ZU_AB_K, PREIS,
             GEBURTSDATUM FROM export
    where (KUNDEN_NR is not null) and
        (KUNDEN_NR <> '')
    into :woche, :ohr, :lieferant, /* <---- hier */
            :erfnr, :erfdatum, :knr,
            :lnr, :art, :geschlecht,
            :bem, :wahl, :land,
            :kptgewb, :zuabk, :preis,
            :gebdat do
    begin
        ausganz = ausganz+1;
  ...
Diese Query Lade ich wie folgt in die SQL Eigenschaft einer IBQuery oder einer IBSQL Komponente:

Delphi-Quellcode:
 IBSQLAdmin.SQL.LoadFromFile(fname);
      ShowMessage(IBSQLAdmin.SQL.Text);
      IBSQLAdmin.Transaction.StartTransaction;
      IBSQLAdmin.ExecQuery;
Das ShowMessage habe ich nur reingepackt, um zu sehen, dass auch die richtige Anweisung geladen wird.

Das SQL Statement wird abgeprochen mit unknown token an der Stelle, an der der erste Doppelpunkt auftritt, also bei :woche. Warum?

[edit]
Bei Eingabe über IBExpert, funktioniert das Statement.
[/edit]
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: [IBX] Stored Procedure definieren

  Alt 21. Mär 2005, 09:33
Hi,

hast Du schon mal versucht das Teil in der TIBScript laufen zu lassen?

Grüße
Lemmy
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#3

Re: [IBX] Stored Procedure definieren

  Alt 21. Mär 2005, 10:59
Hallo Lemmy,

nein, probiere ich aber heute Abend einmal.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: [IBX] Stored Procedure definieren

  Alt 21. Mär 2005, 11:48
Ich weiß es nicht mehr genau aber ich glaube Groß/Kleinschreibung muss beachtet werden.

Variable heißt WOCHE ... bei into heißt es :woche
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#5

Re: [IBX] Stored Procedure definieren

  Alt 21. Mär 2005, 13:11
Hallo Generalissimo,
das war auch meine erste Vermutung. Habe deshalb mal die Groß/Kleinschreibung geändert (einmal die Variable z.B. in woche und :woche aber auch :WOCHE und WOCHE. Die Fehlermeldung bleibt jedoch.

@Lemmy: Gibt es die Komponente IBScript überhaupt in D7? Ich kann mich für die Scriptausführung nur an FIBPlus erinnern, wo es diese Komponente gibt.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: [IBX] Stored Procedure definieren

  Alt 21. Mär 2005, 13:29
Hi,

Groß-Kleinschreibung ist i.d.R. unwichtig, außer man hat schon von Anfang an darauf geachtet und die Attribute mit " eingeschlossen.

Ja, in D7 ist die TIBScript mit dabei. Bei Delphi 5 musste sie noch manuell nachinstalliert werden.

Grüße
Lemmy
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#7

Re: [IBX] Stored Procedure definieren

  Alt 21. Mär 2005, 17:43
Hallo Lemmmy,

in meiner Installation von D7 Prof. gibt es keine Komponente mit dem Namen IBScript. Auch bei den Sourcen finde ich eine solche Komponente nicht, die ich nachinstallieren könnte. Wo hast du diese Komponente denn gefunden?
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: [IBX] Stored Procedure definieren

  Alt 21. Mär 2005, 18:08
Könnte sein, daß Lemmy an IBEscript von IBExpert denkt. Generell würde ich mal sagen, SPs > 10 Zeilen nicht in Delphi zu testen, sondern zuerst in IBExpert. Läuft da alles richtig und in Delphi taucht doch noch ein Fehler auf, dann findet man den i.d.R. ziemlich schnell.

P.S.: ich habe mal das Grundgerüst Deiner SP in IBExpert getestet. An ":woche" usw. liegt es wohl nicht. Bei mir kam "unexpected end of file" oder so ähnlich. Wahrscheinlich wegen falsch gesetzem "end" oder so. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#9

Re: [IBX] Stored Procedure definieren

  Alt 21. Mär 2005, 18:23
Hallo Hansa,

in IBExpert funktioniert es problemlos. Ich habe die Stored Procedure dort geschrieben und sie funktioniert auch in der Anwendung. Für solche Fäle habe ich beim Kunden eine Funktion implementiert und in die normale Anwendung integriert. Wenn im Programmverzeichnis eine oder mehrere Dateien mit SQL Statements stehen, werden diese in eine IBQuery (oder IBSQL) geladen und ausgeführt. So hätte der Kunde auch die neue SP und könnte die verbesserte Anwendung laufen lassen. Nur, dass jetzt der Fehler auftaucht.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: [IBX] Stored Procedure definieren

  Alt 21. Mär 2005, 18:33
Ja, was geht denn dann nicht ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:54 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