EXEC SQL

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

EXEC SQL

Beitrag von JohnLocklay (Specialist / 183 / 30 / 2 ) »
Moin

Ich will einen native SQL Statement absetzen für eine sybase Datenbank.

Als Beispiel.

Habs mal versucht mit

Code: Alles auswählen.

  SELECT SINGLE * FROM reposrc
    INTO ls_programm
      WHERE progname = 'Z_EINTRAEGE'  AND r3state = 'A'.

  TRY.
      EXEC SQL.
        UPDATE REPOSRC
               SET
                udat = sy-datum
                utime = sy-uzeit
                WHERE progname = ls_programm-progname.

      ENDEXEC.
    CATCH cx_root.
  ENDTRY.
Funzt irgendwie nicht.
Übersehe ich was oO?
Leider kenn ich mich mit Native SQL nicht gut aus.

Weiß jemand ob das so richtig ist?
Code once - Think twice

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: EXEC SQL

Beitrag von Daniel (Specialist / 314 / 68 / 44 ) »
Die REPOSRC zu beschreiben kann recht heikel sein!
Aber das weist du sicher ...

Code: Alles auswählen.

EXEC SQL.
        UPDATE REPOSRC
               SET   udat     = :sy-datum
                     utime    = :sy-uzeit
               WHERE progname = :programm-progname
ENDEXEC.

Folgende Benutzer bedankten sich beim Autor Daniel für den Beitrag:
JohnLocklay


Re: EXEC SQL

Beitrag von JohnLocklay (Specialist / 183 / 30 / 2 ) »
ja , das weiß ich. was meinst Du warum ich auf native sql zurück greife :-) Das normale SQl wird vom System verhindert.
Ich probier es mal aus.

Danke Dir!
Code once - Think twice

Re: EXEC SQL

Beitrag von JohnLocklay (Specialist / 183 / 30 / 2 ) »
-EDIT- Leider wieder ein Syntax Error ausgegeben über die CX_ROOT.
Vielleicht hätte ich noch erwähnen sollen das im hintergrund eine sybase datenbank liegt.
Kann es sein das sich die SQL Syntax dann ändert?
Code once - Think twice

Re: EXEC SQL

Beitrag von Daniel (Specialist / 314 / 68 / 44 ) »
Ich habe mit Sybase keine Erfahrung
aber das ist einfachste SQL-Syntax.
Was steht dem im Systemprotokoll?

Den Punkt hast du weggelassen?

Re: EXEC SQL

Beitrag von JohnLocklay (Specialist / 183 / 30 / 2 ) »
Das ist die Meldung aus der cx_root
Es ist ein SQL-Fehler aufgetreten: [ASE Error SQL102:42000][SAP][ASE ODBC Driver][Adaptive Server Enterprise]Incorrect syntax near 'UTIME'.#
Code once - Think twice

Re: EXEC SQL

Beitrag von Daniel (Specialist / 314 / 68 / 44 ) »
Sorry, da fehlt ein Komma

Code: Alles auswählen.

EXEC SQL.
        UPDATE REPOSRC
               SET   udat     = :sy-datum,
                     utime    = :sy-uzeit
               WHERE progname = :programm-progname
ENDEXEC.

Re: EXEC SQL

Beitrag von JohnLocklay (Specialist / 183 / 30 / 2 ) »
Jau.. das wars.

Dabei scheint es dann noch entscheident zu sein das die Datenbank Felder groß geschrieben werden

Code: Alles auswählen.

 TRY.
      EXEC SQL.
        UPDATE REPOSRC
                SET
                  UDAT  = :lv_datum,
                  UTIME = :lv_zeit
                  WHERE PROGNAME = :ls_programm-progname
      ENDEXEC.
    CATCH cx_root INTO DATA(r_error).
      DATA(lv_message) = r_error->get_text( ).
      WRITE lv_message.
  ENDTRY.
Danke Daniel :)
Code once - Think twice

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1386
Views
Exec SQL
von fawkes » 13.07.2007 14:21 • Verfasst in ABAP® Core
7
Antw.
3991
Views
EXEC SQL mit IN Parameter???
von Spaulding » 19.09.2006 19:25 • Verfasst in Basis
7
Antw.
2560
Views
EXEC SQL - '/' in Tablename
von TakePotLuck » 10.01.2012 11:45 • Verfasst in ABAP® für Anfänger
2
Antw.
477
Views
EXEC SQL / Sonderzeichen
von littleJohn » 19.10.2022 11:42 • Verfasst in ABAP® Core
10
Antw.
20976
Views
exec sql mit dynamischen Tabellennamen
von mailmal » 30.05.2005 16:29 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.