2009-08-24 6 views
0

同じサーバー上に同じ名前と異なるポート番号を持つ2つのデータベースがあります。私は、アプリケーションを開発するためのMS-Accessを使用してサーバにアクセスするADODB接続を使用していますVBScriptによるOracleへの接続

AAAA.FSA.GOV.UK = 
(DESCRIPTION = 
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = SERVERNAME)(Port = 1530))) 
(CONNECT_DATA = (SID = AAAA))) 


AAAA.FSA.GOV.UK = 
(DESCRIPTION = 
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = SERVERNAME)(Port = 1521))) 
(CONNECT_DATA = (SID = AAAA))) 

(実際には1つのデータベースには、他の1のクローンである。)のようtnxnames.oraエントリが見えます。私はサーバーからデータにアクセスしようとしています。 私の接続文字列は次のようになります:

sConStr = "Driver={oracle in oraclient10g_home1};SERVER=SERVER_NAME;DBQ=AAAA;UID=username;Pwd=pswd" 

Set oConn = New ADODB.Connection 

oConn.connectionstring = sConStr 
oConn.open 

私の問題は私のADODBはいつも私がポートでデータベースにアクセスするためにconnetion文字列でそれを設定することはできませんよ、データベースのポート番号1530に接続し、ある1521

接続文字列のポート番号を指定すると、同じ名前の同じデータベースにある別のデータベースにアクセスできますか?

元のデータベースではなく、クローンデータベースにアクセスするには、アプリケーションを準備する必要があります。データベース間でポート番号が異なるだけではありません。

+0

を試してみてください。 ADODB接続には、別の接続文字列を使用できます。 DNSレス接続。私はそれを使用して、データベースへの接続に役立つ同じ接続文字列のtnsnamesエントリを述べました。 – chinnagaja

答えて

1

あなたはこれが役立つことがあります。http://www.connectionstrings.com/oracle

+0

絶対に、connectionstrings.comはあなたの友人です! –

+0

私はそれをチェックインしました。私は "Oracle in OraClient10g"ドライバを使用しています。 OraHome92(ドライバ= {OraHome92のOracle}; Dbq = myTNSServiceName; Uid = myUsername; Pwd = myPassword;)の設定は私の場合と似ていますが、myTNSServiceNameは両方のデータベースで同じです。 – chinnagaja

+0

このサイトから、私はDNSの接続ストリングを減らし、私は必要なものを達成することができました。 – chinnagaja

0

サーバー名の最後にコロンで区切ってポート番号を追加してください。

SERVER=SERVER_NAME:1521 

私はOracleユーザーではありませんが、MS SQL Serverで動作します。

+0

この設定ではサーバ名が使用されますが、ポート番号は認識されません。 – chinnagaja

0

これはばかげた質問かもしれ...しかし、これらのエントリの両方があなたのtnsnames.oraにありますか?

AAAA.FSA.GOV.UK = 
(DESCRIPTION = 
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = SERVERNAME)(Port = 1530))) 
(CONNECT_DATA = (SID = AAAA))) 


AAAA.FSA.GOV.UK = 
(DESCRIPTION = 
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = SERVERNAME)(Port = 1521))) 
(CONNECT_DATA = (SID = AAAA))) 

各名前が一意になるように変更してください。コマンドラインで次に

AAAA.FSA.GOV.UK = 
(DESCRIPTION = 
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = SERVERNAME)(Port = 1530))) 
(CONNECT_DATA = (SID = AAAA))) 


AA21.FSA.GOV.UK = 
(DESCRIPTION = 
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = SERVERNAME)(Port = 1521))) 
(CONNECT_DATA = (SID = AAAA))) 

こんにちは、私はこの問題を解決するために管理していますtnsping AAAA.FSA.GOV.UKtnsping AAAA21.FSA.GOV.UK

+0

私もそれを試みました。しかし、両方のデータベースが同じユーザー名とパスワードを持っているため、ADODB接続は常に最初のデータベースに接続しています。ポートがADODB接続によって認識されているかどうかはわかりません。 – chinnagaja