RE: Update eines DS auf einer AS/400 über OPENQUERY in einem Trigger

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance



Hi,

nochmal ich ;-)

Habe jetzt was anderes versucht und zwar das ich im Trigger eine Prozedur
ausführe die den update auf der AS/400 dann auslöst

Sprich im Trigger finde ich nur heraus welcher Satz gerade geändert worden
ist und das gebe ich dann ein Prozedur mit.

Funktioniert natürlich nicht war ja klar.
Aber verwende ich nur die Prozedur und gebe die identnummer mit funktioniert
der update, sprich Prozeduren haben kein Problem damit auf eine AS/400 zu
schreiben
nur wenn ein Trigger gefeuert wird.

Hat da niemand eine Idee?
Könnte sich nicht Microsoft mal auch dazu melden ;-)
Ich bin doch nicht der erste der das versucht oder?

Ich danke euch nochmals tausendfach für jede hilfe

--
thx
Martin Wendel


"Martin Wendel" wrote:

Hallo meine Super SQLer ;-)

Habe da ein problem was ich nicht verstehe:
Hier mal die Beispielabfrage:

UPDATE OPENQUERY(LEARWACK,'SELECT * FROM USDBD_MOD.LWBK_99 WHERE
BKSORT=''W'' AND BKJAHR = ''2008'' AND BKNUMM = ''168''')
SET BKSORT=T2.BKSORT,
BKJAHR=T2.BKJAHR,
BKNUMM=T2.BKNUMM,
BKSTAT=T2.BKSTAT,
BKPARN=T2.BKPARN,
BKAABT=T2.BKAABT,
BKBABT=T2.BKBABT,
BKREAN=T2.BKREAN,
BKLIAN =T2.BKLIAN,
BKART1 =T2.BKART1,
BKART2 =T2.BKART2,
BKABTL =T2.BKABTL,
BKLIEF =T2.BKLIEF,
BKGRUN =T2.BKGRUN,
BKSTRG =T2.BKSTRG,
BKKOST =T2.BKKOST,
BKBSDA =T2.BKBSDA,
BKANDA =T2.BKANDA,
BKANTI =T2.BKANTI,
BKANUS =T2.BKANUS,
BKAEDA =T2.BKAEDA,
BKAETI =T2.BKAETI,
BKAEUS =T2.BKAEUS,
BKUSER=T2.BKUSER
FROM dbo.T_LWBK AS T2
WHERE T2.BKIDEN=9

wenn ich diese einfach im SQL Server "New Query" reinkopiere und ausführe
dann macht der Update genau das was er soll, er holt den definierten Satz von
der AS/400 dated in up und schreibt ihn zurück auf die AS/400, super Sache.

Wenn ich den selben Aufruf aber in einem Trigger starten will (nachdem in
der lokalen Tabelle sich ein Satz geupdatet hat, dann kommt folgende
Fehlermeldung:

Msg 7390, Level 16, State 2, Procedure TR_AU_LWBK, Line 35
The requested operation could not be performed because OLE DB provider
"IBMDA400" for linked server "LEARWACK" does not support the required
transaction interface.

und da ist es egal ob ich über einen ODBC Treiber gehe oder über DAO Treiber.

Irgendjemand eine Idee.


--
thx
Martin Wendel
.



Relevant Pages

  • Re: If Update(feld) in UpdateTrigger
    ... Zunächst sollte Dir klar sein, das IF UPDATE nur aussagt, ... Ausserdem ist dein Trigger anfällig bei mehrzeilige Änderungen. ... > INSERT INTO tblÄnderungsProtokoll ...
    (microsoft.public.de.sqlserver)
  • Re: Triggers und History
    ... Das Komplexe beispiel ist halt der Update Trigger. ... Hier können mehrere Felder gleichzeitig geupdated werden und nur die Upgedateten sollen in die History. ... In der History Tabelle sollen alle werte entwerder ID's oder sonst Varchars sein ... ...
    (microsoft.public.de.german.entwickler.dotnet.datenbank)
  • Re: Oracle - Trigger Problem
    ... Ziel ist es also das in beiden Tabellen (TabOrg und TabDup) die gleichen Daten stehen. ... INSERT TRIGGER an TabOrg mit folgendem Inhalt: ... Wie kann ich praktisch das gleiche Update das auf die Original Tabelle gemacht wurde auch auf eine andere Absetzen? ...
    (de.comp.datenbanken.misc)
  • Re: DataTable, DataAdapter.Update und Trigger
    ... denen ein UPDATE TRIGGER einen Wert in dem Datensatz modifiziert, ... Der Trigger muss weiterhin bestehen, ... Gibt es noch einen einfacheren Weg, den Datensatz in der DataTable ...
    (microsoft.public.de.german.entwickler.dotnet.datenbank)
  • Re: ein SQL, zwei Datenbanken, Update Trigger
    ... CREATE Trigger TRG_UpdSomeTable ... FOR UPDATE ... Verfügung stellen - bei folgender Aufgabe. ... Next by Date: ...
    (microsoft.public.de.sqlserver)