0
我遇到問題。我必須編寫一個使用OLEDB連接MS Access(.mdb文件)的ABAP應用程序,但我的代碼無法連接。我有SY-SUBRC = 2。我該如何解決它?我如何在MS Access中檢查SQL中的User ID=
應該是什麼?SAP ABAP - 無法使用OLEDB與MS Access(.mdb文件)連接
INCLUDE ole2incl.
DATA: con TYPE ole2_object,
rec TYPE ole2_object.
DATA SQL(1023).
DATA: BEGIN OF SPL OCCURS 0,
VAL(1023),
END OF SPL.
DATA: BEGIN OF I1 OCCURS 0,
F1(10),
F2 TYPE I,
END OF I1.
IF con-header IS INITIAL OR con-handle = -1.
CREATE OBJECT con 'ADODB.Connection'.
IF NOT sy-subrc = 0.
EXIT.
ENDIF.
CREATE OBJECT REC 'ADODB.Recordset'.
IF NOT sy-subrc = 0.
EXIT.
ENDIF.
ENDIF.
*MDB connetion infomations
CONCATENATE 'Provider=' '''Microsoft.Jet.OLEDB.4.0''' ';'
INTO SQL.
CONCATENATE SQL 'Password=' '''platnikbcc''' ';'
INTO SQL.
CONCATENATE SQL 'User ID=' '''Admin''' ';'
INTO SQL.
CONCATENATE SQL 'Data Source=' '''D:\Platnik.mdb''' ';'
INTO SQL.
CONCATENATE SQL 'Mode=' '''Share Deny None'''
INTO SQL.
*MDB connection
CALL METHOD OF CON 'Open'
EXPORTING #1 = SQL.
*Query run
*SY-SUBRC still equals 0
CALL METHOD OF REC 'Open'
EXPORTING #1 = SQL
#2 = CON
#3 = '1'.
*SY-SUBRC = 2 FROM HERE
*Query (select) statement ...
SQL = 'select * from UBEZP_IDENT'.
*Query run
CALL METHOD OF REC 'Open'
EXPORTING #1 = SQL
#2 = CON
#3 = '1'.
*Selecting MDB record into SAP internal table
DO.
CALL METHOD OF REC 'getstring' = SQL
EXPORTING #1 = '2' "Do not modify!
#2 = 1 "Do not modify!
#3 = '|' "Do not modify!
#4 = '|'. "Do not modify!
IF sy-SUBRC EQ 0.
REFRESH SPL. CLEAR SPL.
SPLIT SQL AT '|' INTO TABLE SPL.
LOOP AT SPL.
CASE SY-TABIX.
WHEN 1.
I1-F1 = SPL-VAL.
WHEN OTHERS.
I1-F2 = SPL-VAL.
ENDCASE.
ENDLOOP.
APPEND I1. CLEAR I1.
ELSE.
EXIT.
ENDIF.
ENDDO.
*Result writing...
LOOP AT I1.
WRITE: AT /1(10) I1-F1,
AT (10) I1-F2.
ENDLOOP.
*Connetion close & destroy
FREE OBJECT con.
FREE OBJECT rec.
這是密碼嗎?哎呀... – vwegert 2014-12-05 14:58:47
沒有問題。這是本地安裝,用於無敏感數據的測試。 :P – Zashi 2014-12-08 07:45:39
我很確定SY-SUBRC等於2,因爲mdb文件有密碼。我更改了代碼,並且可以在不使用密碼的情況下連接到mdb文件。 MDB連接 - 這是行不通的: 'CONCATENATE'Provider = Microsoft.Jet.OLEDB.4.0;' 'Data Source = D:\ Platnik2.mdb;' '密碼=' 'platnikbcc' ';' INTO sql.' – Zashi 2014-12-08 10:22:16