既然都用HANA了,为什么还要在SAP端,连接HANA数据库,做数据库处理。。。。。
因为HANA数据库,没个用户在STADIO上建的数据库表。。。只能这个用户使用,而做Universe 设计的时候,最简单的就是直接用表。。。(但是SAPDEV这里表太多了,用起来太麻烦,所以。。。)
1.DBCO连接
DB 连接 HDB DBMS HDB 用户名 ZYUSER 数据库口令 / 连接信息 192.168.2.106:30015 连接限制 0 最佳连接 0
然后SE38运行ADBC_TEST_CONNECTION,选择HDB测试连接
如果此处不通。。。呵呵哒,自己找原因
2.
*&---------------------------------------------------------------------* *& Report ZHDB01 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT ZHDB01. DATA:LC_CONN TYPE REF TO CL_SQL_CONNECTION. DATA:LC_STATE TYPE REF TO CL_SQL_STATEMENT. DATA:LC_EXCEP TYPE REF TO CX_SQL_EXCEPTION. DATA:LC_RESULT TYPE REF TO CL_SQL_RESULT_SET. DATA:LV_STATE TYPE STRING. "建立连接 TRY. CALL METHOD CL_SQL_CONNECTION=>GET_CONNECTION EXPORTING CON_NAME = 'HDB' * SHARABLE = SPACE RECEIVING CON_REF = LC_CONN. CATCH CX_SQL_EXCEPTION . ENDTRY. "Creates a Statement Object for this Database Connection CALL METHOD LC_CONN->CREATE_STATEMENT * EXPORTING * TAB_NAME_FOR_TRACE = RECEIVING STMT_REF = LC_STATE. "set parameter *TRY. * CALL METHOD LC_STATE->SET_PARAM * EXPORTING * DATA_REF = ** POS = 0 ** IND_REF = * INOUT = CL_SQL_STATEMENT=>C_PARAM_IN ** IS_LOB = SPACE * . * CATCH CX_PARAMETER_INVALID . *ENDTRY. LV_STATE = 'INSERT INTO ZLYTEST01 VALUES(''600'',''1200'',''01'',''04'',''ZC00'',''01'',''1000A01'',''13457.89'',''45678.89'')'. TRY. CALL METHOD LC_STATE->EXECUTE_QUERY EXPORTING STATEMENT = LV_STATE * HOLD_CURSOR = SPACE RECEIVING RESULT_SET = LC_RESULT. CATCH CX_SQL_EXCEPTION . CATCH CX_PARAMETER_INVALID . ENDTRY. TRY. CALL METHOD LC_CONN->COMMIT. CATCH CX_SQL_EXCEPTION . ENDTRY.
异常消息没处理。。。自己找类,自己玩。。。