*&-------------------------------------------------------------------
--*
*& Report ZTEST_90
*&
*&-------------------------------------------------------------------
--*
*& Author : CHUNG NAM INTERNATIONAL CO.,LTD. DREEXU
*& Creation Date : 12.10.2010
*& Program Type : Executable Programs
*& Logical DB : [Nil]
*& Text Elements
*& (Titles&Headers) : [Nil]
*& (Selection Texts) : [Nil]
*& (Text symbols) : [Nil]
*& GUI Status : [Nil] OR [Standard]
*& Variants : [Nil] OR Variant
*& Message Class : [Nil]
*& Description :
*&
*&-------------------------------------------------------------------
--*
*& Modifications :
*& ID Date Programmer Description
*&
*&-------------------------------------------------------------------
--*
REPORT ZTEST_90.
INCLUDE ole2incl.
*---access
CONSTANTS: provider(40) VALUE 'Provider=Microsoft.Jet.OLEDB.4.0',
security(160) VALUE 'Password="726869519 ";User
ID=chengli;Persist Security Info=True;Jet OLEDB:System database=D:2010
_02_04.MDW',
datasource(60) VALUE 'Data Source=G:.mdb'.
*--mssql
*CONSTANTS: provider(40) VALUE 'Provider=SQLOLEDB.1',
* security(160) VALUE 'Password=123456;Persist Security
Info=True;User ID=sa',
* datasource(60) VALUE 'Initial Catalog=MYTESTDB;Data
Source=CNBTITD017'.
DATA: o_conn TYPE ole2_object,
o_recordset TYPE ole2_object,
o_field TYPE ole2_object.
DATA: con_str(400) ,sql_str(400).
DATA: BEGIN OF ty_itab OCCURS 0,
mandt LIKE t001-mandt ,
bukrs LIKE t001-bukrs ,
butxt LIKE t001-butxt ,
END OF ty_itab.
data: begin of ty_itab1 occurs 0,
employee type c length 30,
BaseSalary type p decimals 2,
Float_JT type p decimals 2,
House_JT type p decimals 2,
PostRank type c length 30,
EmployeeName type c length 30,
IdentityCard type c length 40,
end of ty_itab1.
DATA: itab LIKE TABLE OF ty_itab1 WITH HEADER LINE.
START-OF-SELECTION.
PERFORM oledb_open.
PERFORM sql_select.
"PERFORM sql_update.
PERFORM sql_close.
*&-------------------------------------------------------------------
--*
*& Form oledb_open
*&-------------------------------------------------------------------
--*
FORM oledb_open.
CONCATENATE provider ';' security ';' datasource INTO con_str.
CREATE OBJECT o_conn 'ADODB.Connection'.
SET PROPERTY OF o_conn 'Provider' = provider.
SET PROPERTY OF o_conn 'ConnectionString' = con_str.
CALL METHOD OF o_conn 'Open'.
if sy-subrc <> 0.
message con_str type 'E'.
stop.
endif.
ENDFORM. "OLEDB_open
*&-------------------------------------------------------------------
--*
*& Form sql_select
*&-------------------------------------------------------------------
--*
FORM sql_select .
DATA: rs_eof TYPE i.
sql_str = 'select
EmployeeCode,BaseSalary,Float_JT,House_JT,PostRank,EmployeeName,Identi
tyCard from EmployeeBaseData where DepartmentCode="AD_0005"'.
CALL METHOD OF o_conn 'Execute' = o_recordset
EXPORTING
#1 = sql_str.
GET PROPERTY OF o_recordset 'EOF' = rs_eof. "沒有記錄返回1
if sy-subrc <> 0. "有時ACCESS表獨佔時,
rs_eof = 1.
endif.
REFRESH itab.
WHILE rs_eof NE 1.
CALL METHOD OF o_recordset 'fields' = o_field
EXPORTING
#1 = 0. "seq(0.1.2.......)
GET PROPERTY OF o_field 'Value' = itab-employee.
CALL METHOD OF o_recordset 'fields' = o_field
EXPORTING
#1 = 1. "seq(0.1.2.......)
GET PROPERTY OF o_field 'Value' = itab-BaseSalary.
CALL METHOD OF o_recordset 'fields' = o_field
EXPORTING
#1 = 2. "seq(0.1.2.......)
GET PROPERTY OF o_field 'Value' = itab-Float_JT.
CALL METHOD OF o_recordset 'fields' = o_field
EXPORTING
#1 = 3.
GET PROPERTY OF o_field 'Value' = itab-House_JT.
CALL METHOD OF o_recordset 'fields' = o_field
EXPORTING
#1 = 4.
GET PROPERTY OF o_field 'Value' = itab-PostRank.
CALL METHOD OF o_recordset 'fields' = o_field
EXPORTING
#1 = 5.
GET PROPERTY OF o_field 'Value' = itab-EmployeeName.
CALL METHOD OF o_recordset 'fields' = o_field
EXPORTING
#1 = 6.
GET PROPERTY OF o_field 'Value' = itab-IdentityCard.
APPEND itab.
CALL METHOD OF o_recordset 'MoveNext'.
GET PROPERTY OF o_recordset 'EOF' = rs_eof.
ENDWHILE.
LOOP AT itab.
" WRITE: / itab-employee,itab-BaseSalary,itab-Float_JT,itab-
House_JT,itab-PostRank,itab-EmployeeName,itab-IdentityCard.
WRITE: / itab-EmployeeName,itab-IdentityCard.
ENDLOOP.
ENDFORM. "sql_select
*&-------------------------------------------------------------------
--*
*& Form sql_close
*&-------------------------------------------------------------------
--*
FORM sql_close.
CALL METHOD OF o_recordset 'Close'.
CALL METHOD OF o_conn 'Close'.
FREE OBJECT o_recordset.
FREE OBJECT o_conn.
ENDFORM. "sql_close