Native SQL - Anbindung externer Datenbank (MSSQL)

Hallo,

wer kann mir einen Lösungsvorschlag für folgendes Problem geben.

Mein SAP läuft auf einem Microsoft SQL-Server. D.h. die SAP-Tabellen sind auf der lokalen Instanz unter Databases zu finden. Auf diesem Server läuft auch noch eine 2. Instanz mit Namen ‚T-Server\Daten‘.

Frage: Wie kann ich eine Verbindung zu der 2. Instanz aufbauen und welche Format-Vorgaben muss ich beachten um eine Tabelle in der 2. Instanz aufzurufen.

Momentan bekomme ich leider nur die SAP-Tabellen richtig angezeigt. :frowning:

Wer kennt das Problem? Ein Mustercoding mit exec sql und endexec wäre sehr hilfreich.

Gruß
Rolf

Hallo bs,

hier mal eine kleines Beispiel, das auch die Besonderheit des „Native“-SQL enthält, das PERFORMING, gibts in SQL nicht, da muss man Cursor öffnen und fetchen.

REPORT NO STANDARD PAGE HEADING LINE-SIZE 132 LINE-COUNT 65.

TABLES: KNVV, KNVP, KNA1.

DATA: W_KUNNR_VK LIKE KNVV-KUNNR,
W_NAME1_VK LIKE KNA1-NAME1,
W_VKORG LIKE KNVV-VKORG,
W_ZTERM_VK LIKE KNVV-ZTERM,
W_KUNNR_RG LIKE KNVP-KUNNR,
W_NAME1_RG LIKE KNA1-NAME1,
W_ZTERM_RG LIKE KNVV-ZTERM.

DATA: W_SEITE(3) TYPE P.

*----------------------------------------------------------------------*
* Start der Verarbeitung *
*----------------------------------------------------------------------*
START-OF-SELECTION.

EXEC SQL PERFORMING VERARB_1_SATZ.

SELECT B.KUNNR, a.name1, b.vkorg, b.zterm, d.kunnr, e.name1, d.zterm
INTO :W_KUNNR_VK, :w_name1_vk, :w_vkorg, :w_zterm_vk,
:w_kunnr_rg, :w_name1_rg, :w_zterm_rg
FROM KNA1 A, KNVV B, KNVP C, KNVV D, KNA1 E
WHERE A.MANDT = :SY-MANDT
AND B.MANDT = :SY-MANDT
AND C.MANDT = :SY-MANDT
AND D.MANDT = :SY-MANDT
AND E.MANDT = :SY-MANDT
and a.mandt = b.mandt
and b.mandt = c.mandt
and c.mandt = d.mandt
and d.mandt = e.mandt
and a.kunnr = b.kunnr
and b.vtweg = ‚00‘
and b.spart = ‚00‘
and b.kunnr = c.kunnr
and b.vkorg = c.vkorg
and c.parvw = ‚RG‘
and c.vtweg = ‚00‘
and c.spart = ‚00‘
and c.parza = ‚000‘
and d.kunnr = c.kunn2
and d.vkorg = c.vkorg
and d.vtweg = ‚00‘
and d.spart = ‚00‘
and e.kunnr = d.kunnr

AND B.ZTERM D.ZTERM

order by 1

ENDEXEC.

*---------------------------------------------------------------------*
* Ausgabe eines selektierten Satzes *
*---------------------------------------------------------------------*
FORM VERARB_1_SATZ.

WRITE: / W_KUNNR_VK,
W_NAME1_VK,
W_VKORG,
’ ',
W_ZTERM_VK,
’ ',
W_KUNNR_RG,
W_NAME1_RG,
W_ZTERM_RG.

ENDFORM.

*----------------------------------------------------------------------*
* Seitenkopf *
*----------------------------------------------------------------------*
TOP-OF-PAGE.

W_SEITE = W_SEITE + 1.

ULINE.
* Hier müssen noch Leerzeichen rein
WRITE: / ‚Abgleich Zahlungsbedingungen Auftraggeber / Regulierer‘,
’ Seite’,
W_SEITE.
ULINE.
WRITE: /1 ‚Auftagg.‘,
12 ‚Name‘,
48 ‚VK-Org‘,
55 ‚Z.Bed.‘,
62 ‚Regul.‘,
73 ‚Name‘,
109 ‚Z.Bed.‘.
ULINE.

Davon abgesehen gilt die Syntax der jeweiligen SQL-Datenbank, für einfache Selects sicher nicht das Problem.

Das wichtigste Statement in diesem Zusammenhang ist CONNECT, also der Verbindungsaufbau zur bewünschten Datenbank. Dieses fehlt im obigen Coding, dort wird mit Native SQL auf die SAP-Datenbank zugegriffen. Du musst dich in diesem Punkt also selbst schlau machen.

Hoffe etwas geholfen zu haben, Zoelomat.