Seite 2 von 2

Verfasst: Mo Dez 11, 2006 5:09 pm
von miboe
Okay, dann gehts weiter wie folgt:

Ich gehe davon aus, daß wir von IBexpert als DB-Manager sprechen und beziehe mich darauf.

Den von Admin geposteten Text mußt Du in das eigentliche Codefenster der neuen Prozedur kopieren. Zusätzlich mußt Du im Kopfbereich des Fensters alle Variablen aus der Prozedur deklarieren. Die Variablen erkennst Du im Code an dem vorangestellten Doppelpunkt, also z.B.

Code: Alles auswählen

:BPLZ1_ID
:BLAND1_ID
usw.
Als was Du die deklarieren mußt kannst Du der Definition der Tabelle BSA entnehmen, die beiden hier genannten Variablen sind z.B. Integers. Die Notiz ein Varchar(xx)

So, denn mal weiterhin viel Spaß beim Basteln :)

Gruß
Michael

Verfasst: Mo Dez 11, 2006 5:50 pm
von admin
Hier die Prozedur als Ganzes - bezieht sich aber jetzt immer auf das Land mit der ID 1, ggf. ersetzen:

Code: Alles auswählen

CREATE PROCEDURE P_IMP_BADR_BPLZ
AS
DECLARE VARIABLE BPLZ1_ID INTEGER;
DECLARE VARIABLE BADR_ID INTEGER;
DECLARE VARIABLE NOTIZ VARCHAR(100);
BEGIN
  FOR SELECT ID, NOTIZ
  FROM BADR 
  WHERE BPLZ_ID_LANDPLZ IS NULL 
  INTO :BADR_ID, :Notiz 
  DO 
  BEGIN 
    BPLZ1_ID = NULL; 
  
    SELECT A.ID 
    FROM BPLZ A 
    WHERE A.ID > 0 AND 
          A.MASKENKEY = :Notiz AND
          A.BLAND_ID_LANDKENNZ = 1
    INTO :BPLZ1_ID; 
    
    IF (BPLZ1_ID IS NULL) THEN 
    BEGIN 
      BPLZ1_ID = GEN_ID(GEN_BPLZ,1); 
      INSERT INTO BPLZ ( 
        ID, 
        MASKENKEY, 
        BLAND_ID_LANDKENNZ, 
        ORT, 
        PLZ, 
        VORWAHL, 
        GEBIET) 
      VALUES ( 
        :BPLZ1_ID, 
        'D ' || :Notiz, 
        1,
        'Test-Inland' || 1, 
        :notiz,
        '0921', 
        NULL); 
    END 
  
    UPDATE BADR 
    SET BPLZ_ID_LANDPLZ = :BPLZ1_ID 
    WHERE ID = :BADR_ID; 
  END 
END

Verfasst: Di Dez 12, 2006 8:49 am
von jamesplate
Ok!

Alles so weit gemacht und schon kommt in Zeile 1 ein neuer Fehler:

Code: Alles auswählen

Parsin Error!
woran liegt das?
Vielen Dank für die antworten immer, würde sonst absolut nicht mehr weiterkommen.

Verfasst: Di Dez 12, 2006 9:56 am
von jamesplate
So, mit dem Skript das hat jetzt ändlich geklappt!!!!
Funktioniert und zeigt keine Fehler!

Der Haken ist nur, dass noch immer keine Veränderung stattgefunden hat!Es ist immer noch keine PLZ und Ortschaft drin.

Gruß Philipp

Verfasst: Di Dez 12, 2006 10:44 am
von jamesplate
Ok, jetzt hats irgendwie doch funktioniert, warum keine Ahnung!

Aber folgendes:

Obwohl die PLZ existieren steht überall Test-Inland als Ortschaft drin!

Jetzt versteh ich gar nix mehr, warum denn?

Mühsamm ernährt sich das Eichhörnchen

Gruß Philipp

Verfasst: Mi Dez 13, 2006 9:52 am
von admin
Was stand denn im Notizfeld? Bitte um ein, zwei Beispiele.