diff --git a/src/adbc/cl_sql_connection.clas.abap b/src/adbc/cl_sql_connection.clas.abap index 0fa3796a..926a19cb 100644 --- a/src/adbc/cl_sql_connection.clas.abap +++ b/src/adbc/cl_sql_connection.clas.abap @@ -32,13 +32,14 @@ CLASS cl_sql_connection IMPLEMENTATION. ENDMETHOD. METHOD create_statement. - CREATE OBJECT statement. + CREATE OBJECT statement EXPORTING con_ref = me. ENDMETHOD. METHOD get_connection. " only supported for now, ASSERT sharable = abap_true. CREATE OBJECT connection. + connection->mv_con_name = con_name. ENDMETHOD. METHOD get_abap_connection. diff --git a/src/adbc/cl_sql_statement.clas.abap b/src/adbc/cl_sql_statement.clas.abap index f5b521d9..d681d79f 100644 --- a/src/adbc/cl_sql_statement.clas.abap +++ b/src/adbc/cl_sql_statement.clas.abap @@ -36,6 +36,8 @@ CLASS cl_sql_statement IMPLEMENTATION. ELSE. mv_connection = con_ref->get_con_name( ). ENDIF. + + ASSERT mv_connection IS NOT INITIAL. ENDMETHOD. METHOD execute_ddl. @@ -67,29 +69,29 @@ CLASS cl_sql_statement IMPLEMENTATION. ENDMETHOD. METHOD execute_query. + DATA lx_osql TYPE REF TO cx_sy_dynamic_osql_semantics. DATA lv_sql_message TYPE string. ASSERT statement IS NOT INITIAL. + WRITE / mv_connection. + WRITE '@KERNEL if (abap.context.databaseConnections[this.mv_connection.get()] === undefined) {'. lv_sql_message = 'not connected to db'. WRITE '@KERNEL }'. IF lv_sql_message IS NOT INITIAL. - RAISE EXCEPTION TYPE cx_sql_exception. + RAISE EXCEPTION TYPE cx_sql_exception EXPORTING sql_message = lv_sql_message. ENDIF. CREATE OBJECT result_set. - WRITE '@KERNEL try {'. - WRITE '@KERNEL const res = await abap.context.databaseConnections[this.mv_connection.get()].select({select: statement.get()});'. + TRY. + WRITE '@KERNEL const res = await abap.context.databaseConnections[this.mv_connection.get()].select({select: statement.get()});'. * WRITE '@KERNEL console.dir(res.rows);'. - WRITE '@KERNEL result_set.get().mv_magic = res.rows;'. - WRITE '@KERNEL } catch(e) {'. - WRITE '@KERNEL lv_sql_message.set(e + "");'. - WRITE '@KERNEL }'. - IF lv_sql_message IS NOT INITIAL. - RAISE EXCEPTION TYPE cx_sql_exception EXPORTING sql_message = lv_sql_message. - ENDIF. + WRITE '@KERNEL result_set.get().mv_magic = res.rows;'. + CATCH cx_sy_dynamic_osql_semantics INTO lx_osql. + RAISE EXCEPTION TYPE cx_sql_exception EXPORTING sql_message = lx_osql->sqlmsg. + ENDTRY. ENDMETHOD. diff --git a/test/setup.mjs b/test/setup.mjs index 353404a1..dd481bf9 100644 --- a/test/setup.mjs +++ b/test/setup.mjs @@ -13,5 +13,6 @@ export async function setup(abap, schemas, insert) { database: "postgres", password: "postgres", port: 5432, + trace: true, }); } \ No newline at end of file