如何透過SQL將資料拋到外部DB
1. 宣告連線 "GATEWAY" 的設定方式 參考 "SAP 外部DB連線設定"
constants:
gc_connect type dbcon_name value 'GATEWAY'.
clear gs_ret.
2.Open Connect
perform open_connect.
write: / gs_ret-message.
if gs_ret-type = 'E'.
return.
endif.
loop at itbzkt.
3.將值拋到 form result_insert 中 執行insert
perform result_insert using itbzkt-vpin itbzkt-vname itbzkt-vcardno itbzkt-vareacode.
endloop.
clear gs_ret.
4.Close connect
perform close_connect.
write: / gs_ret-message.
if gs_ret-type = 'E'.
return.
endif.
**************** include*************
form open_connect .
data:
lo_oref type ref to cx_root.
try.
exec sql.
connect to :gc_connect
endexec.
catch cx_sy_native_sql_error into lo_oref.
gs_ret-type = 'E'.
gs_ret-message = lo_oref->get_text( ).
return.
endtry.
gs_ret-message = '資料庫連線成功'.
endform.
form close_connect .
data:
lo_oref type ref to cx_root.
try.
exec sql.
DISCONNECT :GC_CONNECT
endexec.
catch cx_sy_native_sql_error into lo_oref.
gs_ret-type = 'E'.
gs_ret-message = lo_oref->get_text( ).
return.
endtry.
gs_ret-message = '資料庫連線關閉'.
endform.
form result_insert using vpin vname vcardno vareacode.
data:
lo_oref type ref to cx_root.
try.
exec sql .
INSERT INTO dbo.emp_sync (pin,name,cardno,areacode) VALUES (:vpin,:vname,:vcardno,:vareacode)
endexec.
exec sql .
COMMIT WORK.
endexec.
catch cx_sy_native_sql_error into lo_oref.
gs_ret-type = 'E'.
gs_ret-message = lo_oref->get_text( ).
return.
endtry.
endform.
