• 締切済み

ASPから異なる複数のDBサーバーに接続する方法

ASPの質問です。WEBサーバーと複数のDBサーバーがあります。 ADODB.Connectionでオラクルサーバーに接続し、データベースオブジェクトを作成しています。 別々のDBサーバーにあるテーブルを結合して利用したいのですが、ASPで可能でしょうか? 例えば"select * from A,B where A.ID=B.ID"というSQL文を実行する(AとBは別々のDBサーバーにある)。 とりあえず、代替案で検討しているのは片方のDBサーバーにデータベースリンクで他方のDBサーバーのVIEWを作ろうかと思っています。できればASPで解決したいのですが、よろしく御願いします。

noname#85865
noname#85865

みんなの回答

回答No.1

SQL文を実行するのであれば、それはやはりASP(ADODB)の仕事ではなくDBサーバの仕事なわけです。Oracleに外部サーバのテーブルを指定するSQL文があるかどうか知りませんが、DBリンクが張れるのなら、その方法がBestだと思います。

noname#85865
質問者

お礼

回答ありがとうございます。 今のところ、OracleサーバーでVIEWを作り解決しています。.NETを利用すれば、WEBサーバー上での解決もできるそうで、今後チャレンジしてみたいと思います。

関連するQ&A

  • ASPからDB2への接続方法

    タイトルのとおりですが、ASP(VBスクリプト)からDB2に接続する方法について色々と教えて下さい。 現在は以下のようなソースで”一応”接続できています。 Set objConn = CreateObject("ADODB.Connection") strConn = "DSN=testdb;UID=user;PWD=pass" objConn.Open strConn しかし動作があまりにもっさりしているので他の方法を検討したいのです。 ちなみに上記はADO接続?ODBC接続?なんでしょうか? Oracleのoo4oを使用した接続「CreateObject("OracleInProcServer.XOraSession")」 みたいな方法ってDB2にはないのでしょうか? またそれ以外でも使える方法、あるいはサンプルソースが載っているHP等ありましたら教えて下さい。 「?」ばかりで申し訳ありませんが宜しくお願いします。 尚、環境がまだはっきりしないのですが  WEBサーバ :Win2K          IIS5.0  DB     :DB2 Ver7~8(UNIX版) てな感じになるかと思います。 しかしながら上記のソースはDB2 Ver8 PE(Win版)で使ったテスト用なのです・・・。 宜しくお願いします。

  • WinXP→Server2003 にASPとDB(ACCESS)を移行

    WinXP→Server2003 にASPとDB(ACCESS)を移行、エラー '800a0ea9' WinXP 上にDB:ACCESS、ASPのWEBシステムを動かしていましたが、 WinServer2003 上に移行しました。 移行後、以下のエラーが出ました。 ---------------------------------------------------------- ADODB.Connection エラー '800a0ea9' プロバイダが指定されておらず、既定のプロバイダがありません。 /source/test.asp, 行 35 ---------------------------------------------------------- ODBCデータソースアドミニストレータ のシステムDSNを見たところ 確かにACCESSのドライバがありませんでした。 ネットで調べたところ (1)WinServer2003が64bitなので、32bitのACCESSのドライバは入っていない (2)以下32bit版の ODBCアドミニストレータを実行すると解決  →C:\WINDOWS\SysWOW64\odbcad32.exe  をクリックし、設定すれば32bitアプリケーションからODBCデータソースを利 用できる。 とあり、(2)を開くと確かに、MicrosoftAccessDriverがあり、こちらでWinXPのと きと同じようにODBC設定しました。 しかしこの段階でも ---------------------------------------------------------- ADODB.Connection エラー '800a0ea9' プロバイダが指定されておらず、既定のプロバイダがありません。 /source/test.asp, 行 35 ---------------------------------------------------------- がでてしまいます。 ちなみにこの行 35 には以下のソースがあります。 33 wsDSN="TEST" 34 Set gCon = Server.CreateObject("ADODB.Connection") 35 gCon.Open wsDSN 33 wsDSN="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TEST\TEST.mdb" 34 Set gCon = Server.CreateObject("ADODB.Connection") 35 gCon.Open wsDSN としても同エラーでした。 ODBC接続がうまくいく方法アドバイスよろしくお願いします。

  • 異なるサーバのDBデータ同士を結合するには?

    全く違うサーバに載っているDBのデータ同士を結合するいい手段はないでしょうか? DBは両者ともOracleですが9と10という違いがあります。 SERVER1に載っているDBは商品管理のためのものです。主キーは「品ID」です。 SVR2に載っているDBは、保証期間の管理をするためのものです。主キーは「品ID&メーカーID」です。 唯一データのつながりを作れそうなのは両者の主キーのみです。 あとのデータには何にもつながりはありません。 どちらかのサーバに片方のDBのテーブルを作るとかビューを作ればいいかと思いましたが、その方法についてはNGとされています。 (とりあえずその方法でやる場合できますでしょうか???) DBに何かを作ることなくデータの結合をさせれないでしょうか? SQLplusなりSQLクリエイトツールなりどんな方法でもDB自体汚さない限り問題はありません。

  • 複数のデータベースを検索したい

    困っている内容ですが、 別々のサーバに構築されたAとBというデータベースがあります。 そのAとBにADOによる接続を行いますが、 AとBのテーブルを結合して情報を取得したいと考えています。 SQL文で言うと、 顧客情報はデータベースAに 顧客詳細はデータベースBに存在するテーブルであり 会員IDはそれぞれのテーブルにある SELECT * FROM 顧客詳細 INNER JOIN 顧客情報 ON 顧客情報.会員ID = 顧客詳細.会員ID のようなことがしたいのです。 テーブルを読み込む場合 '' ADO接続オブジェクト Dim adoCon As ADODB.Connection '' 新しいADOレコードセットオブジェクトを作成する Set rs = New ADODB.Recordset '' 読み取り専用でテーブルを開く rs.Open SQL, adoCon, adOpenForwardOnly, adLockReadOnly と書いていまして、adoConの部分が1つのADO接続オブジェクトしか設定できません。 どうにかして2つのデータベースをまたがって 結合できないものでしょうか? 環境は Win2000 + VB6 + SQLSERVER2000 です。 DB初心者なので、説明がうまくいかないと思いますが、 もしおわかりの方がいましたらよろしくお願いします。

  • Global.asaxで Server.CreateObject("ADODB.Connection")が出来ない

    ASP→ASP.netへ移行作業をしています。 Global.asaで、 set Application("DB") = Server.CreateObject("ADODB.Connection") を、 Global.asaxで、 Application("DB") = Server.CreateObject("ADODB.Connection") としたのですが、エラーで、 「コンポーネント 'ADODB.Connection' を作成できません。アパートメント スレッド コンポーネントは、<%@ Page aspcompat=true %> ページ ディレクティブを含むページでのみ作成できます。 」 となってしまします。 <%@ Page aspcompat=true %>を記述すればよいのかと思い、Global.asax中に記述しましたが、エラーになってしまいました。 'ADODB.Connection'を作成するには、どうすればよいでしょうか?

  • DBサーバーはどれがいいのですか?

    MySQL、PostgreSQL、SQLサーバー、ORACLEデータベースについて 仮に、ユーザが5000万人のSNSを作った場合、MySQLやPostgreSQLで対応できますか? 検索に時間がかかったりするのでしょうか? その場合、DBをORACLEにしたほうがいいのでしょうか? ■費用について もし、DBサーバーを1台設置して、ORACLEにした場合、初期費用や毎月のコストはどのくらいになるのでしょうか? ORACLE対応のDBサーバーの金額等も教えて頂ければ幸いです。 あと、SNSの会員が10万人までだとしたら、 MySQL、PostgreSQL、SQLサーバー、ORACLEのうちだと、どれがコスト的に一番効率的でしょうか?

  • JavaScriptでDB接続できなくて、困っています><

    JavaScript初心者です。 ローカルのSQLServerExpressに以下の様に接続にいくと「存在しないか、アクセスが拒否されました」となります。 ちなみに、ManagementStudioではSQL認証で接続できますのでローカルのデータベースに問題はないと思います。また他のDBサーバーのデータベースには接続できますので、Script文にも問題はないと思われます。 localhost\SQLEXPRESSの部分が怪しいような・・・ localhost部分をコンピュータ名やIPに変えてもダメでした。 \を/に変えてもダメでした。 ご存知の方いましたらご教授下さい>< var db; function DBConnect(){ db=new ActiveXObject("ADODB.Connection"); db.Open("Driver={SQL Server};" + "server=localhost\SQLEXPRESS; database=***; uid=***; pwd=***;");} しょうもない間違いだったら、すいません。。。^^;

  • ASP.NETにおいて単純にオラクルDBに接続する方法

    Private mvarSession As Object Private mvarDatabase As Object ''データベースの生成() mvarSession = CreateObject("OracleInProcServer.XOraSession") '' データベースオープン mvarDatabase = mvarSession.OpenDatabase("SERVER", "○○○/○○○") と記述していますが、動作しません。。。 オラクルDBに接続する方法のご教授をお願いします。

  • ASPからSQLサーバーへ接続できない

    色々な質問を見たのですが 環境などの違いもあり解決できず 困っています。 環境は1台のPC(W2000)にIIS+SQLサーバー2005デベロッパーエディションとか言うテスト用のバージョンをインストールしています。 また SQLサーバーはWindows認証を使っています。 SQLサーバーにマネジメントエキスプレスで接続して システムデータベースにPLEMIAというデータベース名を作り テーブルのシステムテーブルにpure_kihonというテーブルを作っています。 ASPにて試験的につないでみようと思い Dim objCon Set objCon = Server.CreateObject("ADODB.Connection") objCon.ConnectionString = "Provider=SQLOLEDB;" & _ "Data Source=(local);" & _ "Initial Catalog=PLEMIA;" & _ "Integrated Security=SSPI;" objCon.Open strSQL = "SELECT * FROM [pure_kihon]" objRS.Open strSQL, objCon, 3 こうした場合  objCon.Open のところで引っかかり Microsoft OLE DB Provider for SQL Server (0x80004005) [DBNETLIB][ConnectionOpen (Connect()).]SQL Server が存在しないか、アクセスが拒否されました。 と出てしまいます。 SQLサーバー自体は稼働しているようなんですが 何がいけないのか よく分かりません。 どなたか解決策などご教授頂けると幸いです。 よろしくお願いします。

  • ASPでのSQLインジェクション対策

    ASPにて、ADOでAccessにアクセスする際にSQLインジェクション対策はどのようにしたらよいでしょうか。 現状は以下の様にしています。(name)は画面から受け取ったパラメータです。 Set aConn = CreateObject("ADODB.Connection") aConn.Provider = "Microsoft.Jet.OLEDB.4.0" aConn.ConnectionString = Server.MapPath("DB.mdb") aConn.open SQL = "SELECT A FROM TBL WHERE NAME = " & name ...... 宜しくお願いします

専門家に質問してみよう