真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle怎么寫接口 數(shù)據(jù)庫接口怎么寫

連oracle數(shù)據(jù)庫用ole,連接串應(yīng)該怎么寫

在利用ado連接數(shù)據(jù)庫之前,需要做一些準備

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了姜堰免費建站歡迎大家使用!

1.用#import指令引入ADO類型庫

我們在stdafx.h中加入如下語句:

#import "c:program filescommon filessystemadomsado15.dll" no_namespace rename("EOF","adoEOF") 。

這一語句有何作用呢?其最終作用同我們熟悉的#i nclude類似,編譯的時候系統(tǒng)會為我們生成msado15.tlh,ado15.tli兩個C++頭文件來定義ADO庫。

幾點說明:

(1) 您的環(huán)境中msado15.dll不一定在這個目錄下,請按實際情況修改

(2) 在編譯的時候肯能會出現(xiàn)如下警告,對此微軟在MSDN中作了說明,并建議我們不要理會這個警告。msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned

2、初始化OLE/COM庫環(huán)境

必須注意的是,ADO庫是一組COM動態(tài)庫,這意味應(yīng)用程序在調(diào)用ADO前,必須初始化OLE/COM庫環(huán)境。在MFC應(yīng)用程序里,一個比較好的方法是在應(yīng)用程序主類的InitInstance成員函數(shù)里初始化OLE/COM庫環(huán)境。

BOOL CMyAdoTestApp::InitInstance()

{

if(!AfxOleInit())//這就是初始化COM庫

{

AfxMessageBox(“OLE初始化出錯!”);

return FALSE;

}

}

3.ADO庫包含三個基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。與數(shù)據(jù)庫的連接就是用_ConnectionPtr接口,它的連接字符串可以是自己直接寫,也可以指向一個ODBC DSN。以下的例子都測試通過,順便寫了SQL Server的例子。

BOOL CTestconDlg::ConnectDatabase()

{

CString m_server,m_data,m_uid,m_pwd;

m_server="192.168.0.24";//服務(wù)器ip或名稱

m_data="crmdb";//ODBC數(shù)據(jù)源

m_uid="njcrm";//用戶名

m_pwd="crmdbo";//密碼

BOOL retFt=false;

HRESULT hr;

try

{

hr = m_pConnection.CreateInstance("ADODB.Connection");///創(chuàng)建Connection對象

if(SUCCEEDED(hr))

{

_bstr_t connStr;

m_pConnection-CursorLocation=adUseClient;

//begin---------------Oracle ODBC 配置數(shù)據(jù)源-------------------------------------

//控制面板-管理工具-數(shù)據(jù)源(ODBC)-系統(tǒng)DNS-添加-Microsoft ODBC for Oracle-完成-配置……

// connStr="DSN="+m_data;

// m_pConnection-Open(_bstr_t(connStr),(_bstr_t)m_uid,(_bstr_t)m_pwd,adConnectUnspecified);

//end---------------Oracle ODBC 配置數(shù)據(jù)源---------------------------------------

//begin---------------Oracle 標準安全級別---------------------------------------

// connStr="Provider=OraOLEDB.Oracle;User ID=njcrm;Password=crmdbo;Data Source=192.168.0.24;";

// m_pConnection-Open(_bstr_t(connStr),(_bstr_t)_T(""),(_bstr_t)_T(""),adConnectUnspecified);

//end---------------Oracle 標準安全級別---------------------------------------

//begin---------------Oracle 微軟格式----------------------------------

VC下利用Pro*C/C++開發(fā)Oracle接口程序

在C++中訪問oracle數(shù)據(jù)庫,可以采用OCI和odbc兩種方式。

OCI時oracle提供的,性能很好,推薦使用。

odbc是windows提供的開放數(shù)據(jù)庫訪問方式,兼容很多數(shù)據(jù)庫。

請教oracle 如何調(diào)用webservice 接口

一般都是創(chuàng)建一個process來調(diào)用的,給個模板給你參考:

CREATE OR REPLACE PROCEDURE pro_test() IS

http_req UTL_HTTP.req;

request_env VARCHAR2(32767);

BEGIN

request_env := '

soap:Envelope xmlns:xsi="" xmlns:xsd="" xmlns:soap=""

soap:Body

ProcessData xmlns="你的公司地址(例如:)/"

參數(shù)1' || 參數(shù)1 || '/參數(shù)1

參數(shù)2' || 參數(shù)2 || '/參數(shù)2

/ProcessData

/soap:Body

/soap:Envelope

';

http_req := UTL_HTTP.

begin_request('http://' || 你的ServerIP || 'WebService地址',

'POST',

UTL_HTTP.http_version_1_1);

UTL_HTTP. set_header(http_req, 'Content-Type', 'text/xml; charset=utf-8');

UTL_HTTP. set_header(http_req, 'Content-Length', LENGTH(request_env));

UTL_HTTP. set_header(http_req,

'SOAPAction',

'"你的WebService Function_name"');

UTL_HTTP.write_text(http_req, request_env);

UTL_HTTP.END_REQUEST(HTTP_REQ);

END IF;

END IF;

EXCEPTION

WHEN OTHERS THEN

--Write log

END pro_test;

oracle ebs api怎么用

1.創(chuàng)建Product Family

Product Family用于管理幾個功能相近的Product(也可以立即為模塊),統(tǒng)一管理客戶化的Webservice接口

begin

-- Call the procedure

ad_pa_insert_package.insert_ad_pm_product_info(x_product_abbreviation = 'os_xxx',

x_pseudo_product_flag = 'N',

x_product_family_flag = 'Y',

x_application_short_name = NULL,

x_product_name = 'Oracle Xxx Suite',

x_product_family_abbreviation = NULL,

x_product_family_name = NULL,

x_aru_update_date = to_char(SYSDATE,'yyyy-mm-dd

hh24:mi:ss'),

x_currdate = to_char(SYSDATE,'yyyy-mm-dd

hh24:mi:ss'),

x_last_updated_by = -1,

x_created_by = -1);

COMMIT;

end;

2.注冊Product,即注冊Xxx University(cux)應(yīng)用到產(chǎn)品家族中

begin

ad_pa_insert_package.insert_ad_pm_product_info(x_product_abbreviation = 'cux',

x_pseudo_product_flag = 'N',

x_product_family_flag = 'N',

x_application_short_name = 'CUX',

x_product_name = 'Xxx University',

x_product_family_abbreviation = NULL,

x_product_family_name = NULL,

x_aru_update_date = to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),

x_currdate = to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),

x_last_updated_by = -1,

x_created_by = -1);

COMMIT;

end;

3.關(guān)聯(lián)Xxx University應(yīng)用到產(chǎn)品家族Oracle Xxx Suite下

begin

-- Call the procedure

ad_pa_insert_package.insert_ad_pm_prod_family_map(x_product_abbreviation = 'cux',

x_product_family_abbreviation = 'os_xxx',

x_aru_update_date = TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),

x_currdate = TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),

x_last_updated_by = -1,

x_created_by = -1);

COMMIT;

end;

4.增加一個BUSINESS_ENTITY的lookup code(應(yīng)用開發(fā)員職責(zé)-應(yīng)用產(chǎn)品 - 代碼-Oracle Application Object),這個Lookup會用在下

一步的API中的@rep:category BUSINESS_ENTITY

這里增加的code為ORACLESEEKER

5.編寫PL/SQL API Specification

CREATE OR REPLACE PACKAGE CUX_SUPPLIER_PKG AS

/* $Header: $ */

/*#

* This package using maintain the supplier information

* @rep:scope public

* @reproduct CUX

* @rep:lifecycle active

* @rep:displayname Supplier Approve result

* @rep:compatibility S

* @rep:category BUSINESS_ENTITY ORACLESEEKER

*/

/*#

* insert approve result

* @param apply_id apply id

* @param node_id node id

* @param node_name node name

* @param approver_id approver id

* @param approver_name approver name

* @param approve_result approve result

* @param approve_opinion approve opinion

* @param approve_date approve date

* @return a varchar

* @rep:scope public

* @rep:lifecycle active

* @rep:displayname insert supplier approve result Webservice

*/

FUNCTION f_insert_approve_result(apply_id IN NUMBER,

node_id IN NUMBER,

node_name IN VARCHAR2,

approver_id IN NUMBER,

approver_name IN VARCHAR2,

approve_result IN NUMBER,

approve_opinion IN VARCHAR2,

approve_date IN DATE) RETURN VARCHAR2;

END CUX_SUPPLIER_PKG;

需要注意Package中的注釋并不是隨便填寫的,每一個注釋都會對應(yīng)到Oracle Integration Repositoy接口的說明上去,對于要注冊成

Webservice的PL/SQL API必須按照要求來填寫。

注釋標簽具體的含義需要參考《Oracle E-Business Suite Integrated SOA Gateway Developer's Guide》

6.驗證PLSQL接口文件,并生成ildt文件

將編寫好的PLSQL聲明定義保存為.pls文件(PAUL_ITEM_PKG.pls),并將其上傳到服務(wù)器應(yīng)用$CUX_TOP/patch/115/sql目錄下,然后執(zhí)行下

邊的命令生成ildt文件

/usr/bin/perl $FND_TOP/bin/irep_parser.pl -g -v -username=sysadmin

cuxatch/115/sql:CUX_SUPPLIER_PKG.pls:12.0=CUX_SUPPLIER_PKG.pls

7.將iLDT文件上傳到Oracle Integration Repositoy

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/wfirep.lct CUX_SUPPLIER_PKG_pls.ildt

8.在對應(yīng)的Product Family和Product下就能看到你的接口

9.在Web服務(wù)調(diào)用的時候,需要有一個應(yīng)用數(shù)據(jù)庫用戶來連接EBS數(shù)據(jù)庫,因此需要創(chuàng)建一個具備一定權(quán)限的用戶,而為了簡化設(shè)置的麻煩

,Oracle提供了一個內(nèi)建的用戶 ASADMIN ,只要啟用它并重置密碼就可以了。

以sysadmin登錄Oracle EBS,切換到 User Management 職責(zé),進入Users頁面,查找出asadmin用戶,通過修改密碼的方式激活asadmin,

并確保此用戶擁有Apps Schema Connect Role職責(zé)。

由于asadmin的密碼已經(jīng)被重置,因此中間服務(wù)器的文件配置$INST_TOP/ora/10.1.3/j2ee/oafm/config/system-jazn-data.xml 中對應(yīng)的

密碼也需要修改,由于配置中的密碼已被加密,我們無法提供加密后的密碼,使用過OC4J的同事應(yīng)該都知道,Oracle提供了一種重置這里

密碼的方便方法,就是采用明文密碼,在密碼前添加一個警號(!),然后重啟應(yīng)用服務(wù)器后自動會重新加密。打開system-jazn-data.xml

文件后, 找到

user

nameASADMIN/name

display-nameDefault Apps SOA User/display-name

descriptionUsed by SOAProvider for DB connection/description

credentials{903}qMgAeO1AjQjwOJ6rIB41Sx049uG0xzhs/credentials

/user

只要將credentials的值更改為自己的密碼,如我的密碼設(shè)置為11111,就設(shè)置為 credentials!11111/credentials。修改完成后重啟

oamf,簡單的方法就是重啟Oracle EBS應(yīng)用服務(wù)。

附重啟命令:

cd $INST_TOP/admin/scripts

01、關(guān)閉應(yīng)用 sh adstpall.sh apps/apps

02、重啟應(yīng)用 sh adstrtal.sh apps/apps

03、關(guān)閉DB

04、重啟DB

05、啟動并發(fā)管理器 adcmctl.sh start apps/apps

10.為集成接口創(chuàng)建授權(quán)

發(fā)布到Oracle Integration Repositoy中的Web服務(wù)能夠被訪問必須有相應(yīng)的權(quán)限才可以,這也是受到AOL安全模型限制的一個體現(xiàn)。

登錄EBS后切換到Integrated SOA Gateway職責(zé),在 Integration Repositoy 中找出已經(jīng)上傳好的客戶化集成接口,選擇接口過程和方法

后點擊Create Grant 按鈕

選擇授權(quán)類型:All Users、Group of Users 和 Specific USer,下面設(shè)置為最后一種方式

11.完成以上工作后,點擊Generate WSDL按鈕來生成集成接口對應(yīng)的Web服務(wù)WSDL信息

成功完成后可以看到如下Web服務(wù)的狀態(tài)為:Generated

點擊 Deploy 按鈕來發(fā)布Web服務(wù)到中間服務(wù)器中,發(fā)布后Web服務(wù)的狀態(tài)為: Deployed

-----------------------------------------------

12.如果在測試中報java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: For input

string: ""

執(zhí)行以下操作:

cd $ORA_CONFIG_HOME/10.1.3/j2ee/forms/config/oc4j.properties

注釋代理服務(wù)

#http.proxyHost=

#http.proxyPort=

重啟服務(wù)

13.如果填寫信息提交后會報出 wsse:FailedAuthentication 這樣的錯誤信息,這是由于提交的Soap消息中并沒有包括Oracle

Integration Repository要求的AOL安全認證,即沒有Oracle EBS系統(tǒng)要求的用戶、職責(zé)、安全組和語言信息,也就是沒有進行Oracle

EBS的環(huán)境初始化

wsdl文件路徑/ebsr12/test/inst/apps/TEST_scmdev/soa/PLSQL/4343

此問題可以通過修改wsdl文件來解決

01刪除CUX_SUPPLIER_PKG_soap.wsdl中

element name="SOAHeader"

complexType

sequence

element name="Responsibility" minOccurs="0" type="string"/

element name="RespApplication" minOccurs="0" type="string"/

element name="SecurityGroup" minOccurs="0" type="string"/

element name="NLSLanguage" minOccurs="0" type="string"/

element name="Org_Id" minOccurs="0" type="string"/

/sequence

/complexType

/element

02刪除CUX_SUPPLIER_PKG_soap_http.wsdl中

element name="SOAHeader"

complexType

sequence

element name="Responsibility" minOccurs="0" type="string"/

element name="RespApplication" minOccurs="0" type="string"/

element name="SecurityGroup" minOccurs="0" type="string"/

element name="NLSLanguage" minOccurs="0" type="string"/

element name="Org_Id" minOccurs="0" type="string"/

/sequence

/complexType

/element

修改后點擊invoke,如出現(xiàn)“處理服務(wù)時出錯”,進行如下處理

/ebsr12/test/inst/apps/TEST_scmdev/soa/PLSQL/4343/F_INSERT_APPROVE_RESULT.wsdl

查看這個文件的內(nèi)容

jcaperation

PackageName=”O(jiān)RACLESEEKER_DEPT_PKG”

ProcedureName=”ADD_DEPARTMENT”

IRepInternalName=”PLSQL:ORACLESEEKER_DEPT_PKG:ADD_DEPARTMENT”

IRepOverloadSeq=”1〃

InteractionSpec=”oracle.tip.adapter.apps.AppsStoredProcedureInteractionSpec”

/jcaperation

Oracle EBS 的接口方式是什么樣的?與 DBLINK 有什么不同

1、標準接口表2、標準API前者例如AP的發(fā)票接口表,供應(yīng)商、客戶接口表,具體實現(xiàn)方式是,將數(shù)據(jù)按照接口表規(guī)格準備到接口表中,然后運行標準的import程序?qū)⒔涌诒頂?shù)據(jù)導(dǎo)入到Oracle EBS中(即各接口表對應(yīng)的正式table中)。

而例如銀行、分行、銀行帳戶相關(guān)API,一般通過客戶化程序,調(diào)用此類API實現(xiàn)將數(shù)據(jù)導(dǎo)入系統(tǒng),此時一般也會新建一些客戶化staging table,先將外部數(shù)據(jù)準備到staging table后,再使用客戶化程序,調(diào)用API將資料導(dǎo)入Oracle EBS中。

通常,“Oracle EBS的接口方式”指的是數(shù)據(jù)進入Oracle EBS的方式,主要有兩類技術(shù):

1、標準接口表

2、標準API

前者例如AP的發(fā)票接口表,供應(yīng)商、客戶接口表,具體實現(xiàn)方式是,將數(shù)據(jù)按照接口表規(guī)格準備到接口表中,然后運行標準的import程序?qū)⒔涌诒頂?shù)據(jù)導(dǎo)入到Oracle EBS中(即各接口表對應(yīng)的正式table中)。

而例如銀行、分行、銀行帳戶相關(guān)API,一般通過客戶化程序,調(diào)用此類API實現(xiàn)將數(shù)據(jù)導(dǎo)入系統(tǒng),此時一般也會新建一些客戶化staging table,先將外部數(shù)據(jù)準備到staging table后,再使用客戶化程序,調(diào)用API將資料導(dǎo)入Oracle EBS中。

而DBLINK則是數(shù)據(jù)庫之間的資料交換方式,假如Oracle EBS的數(shù)據(jù)庫需要與其他數(shù)據(jù)庫(例如其他系統(tǒng)的數(shù)據(jù)庫)進行資料交互,那么DBLINK是其中一個選項而已。

以上,兩者直接比較沒有太大意義,完全可能是應(yīng)用于不同業(yè)務(wù)場景下的技術(shù)。


名稱欄目:oracle怎么寫接口 數(shù)據(jù)庫接口怎么寫
標題來源:http://weahome.cn/article/hggiih.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部