• 締切済み

VB2005からSQL Server 2005への接続

現在VB2005からSQL Server 2005への 接続を試すプログラムを作成してます。 接続文字列に以下の様に指定すると正常に接続できるのですが "Data Source = PC-HOGE\HOGEHOGE;" "Initial Catalog = DB-HOGE;" "Uid = hoge;pwd = hogehoge;" 以下の様にホスト名をIPアドレスに代えると接続できなくなります "Data Source = 192.168.1.1\HOGEHOGE;" リモート接続は設定で許可してあります。 マシン名で接続できていてIPアドレスに代えると 接続できなくなる原因がわかりません。 何かご存知の方いましたらご教授お願いいたします。

noname#17894
noname#17894

みんなの回答

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.1

たぶん直接のIPではデフォルトではうまく行かないのでは・・・ OSのHOSTS ファイルに名前が登録されていればその名前を用いれば うまく行きそうですが MSのヘルプによるとパイプがデフォルトです。 以下のURLで調査してみては http://msdn2.microsoft.com/ja-jp/library/ms189307.aspx http://msdn2.microsoft.com/ja-jp/library/ms191260.aspx

関連するQ&A

  • IPアドレスからサーバ名を取得したい

    ExcelVBAでサーバのデータを帳票化するプログラムを作成しています。 汎用性を持たせる為、サーバ名などの接続情報はiniファイルから読み込んでいます。 その中にはUser Id,Password,Initial Catalog,Data Sourceの4つ情報がありますが DataSourceはIPアドレスで書かれているので、サーバに接続できずに困っています。 取得できるサーバIPアドレスから、サーバ名を求めることは出来るのでしょうか? ちなみに今は以下のやり方で接続しています。    Set DBCon = CreateObject("ADODB.Connection")    DBCon.ConnectionString = "driver=SQL     Server;server=ServerName;uid=UserID;pwd=PWD;database=DBName"    DBCon.Open    ※1)driver=の"SQL"と"Server"の間にはSpace(1)が入っています。    ※2)ServerName,uid,pwd,databaseにはそれぞれ、      サーバ名・ユーザID・パスワード・データベース名を入れています。 なにぶんExcelなので、標準モジュールで解決したいです。 どなたかご存知の方、教えてください!!

  • SQLサーバーへの接続が どうしてもウマくいきません

    SQLサーバーを始めたばかり です。 ASPで SQLサーバーのデータを表示しようとしています。 環境: WinXP (Pro)     IIS設定済み     SQL Server 2005 Express Edition 近くに2003サーバーがあるので 最終的にはそちらで動作させる予定です。 サーバーが現用機なので 自PCで動作確認してからと思っています。 色々ネットを調べて まず接続しようとしましたが そこでつまづいています。 この方法以外も沢山試しましたが全てうまく行きません。 2005 ExpressでDBとテスト用のテーブルが作成してあります。 そのデータを読み出せれば 第一段階とトライしますが、 IEから接続にいくと「objCon.Open」がエラーになってしまいます。 ASPファイルの内容は 以下です なお DB名は 「PC名¥SQLEXPRESS」といれています よろしく お願いします ---------------------------------------------------- <%@ LANGUAGE="VBScript" %> <% option explicit %> <% Dim objCon ' DB接続コネクション Dim objRS ' DB結果レコードセット Dim sql ' SQL文 Dim errflg ' エラーフラグ 'DataSource名 Const DS = "111.111.0.1" ←IPアドレス。正しいものをいれてます Const IC = "DB名"      'ユーザ名 Const User = "sa" 'パスワード Const Pwd = "sa" Set objCon = Server.CreateObject("ADODB.Connection") Set objRS = Server.CreateObject("ADODB.Recordset") objCon.ConnectionString = "Provider=SQLOLEDB;" & _ "User ID=" & User & ";" & _ "Password=" & Pwd & ";" & _ "Data Source=" & DS & ";" & _ "Initial Catalog=" & IC objCon.Open sql = "select * from Aテーブル" objRS.Open sql,objCon,adOpenStatic,adLockReadOnly %> レコード件数 <%=objRS.RecordCount%> <% ' DBclose objCon.Close() Set objCon = Nothing objRS.Close() Set objRS = Nothing %>

  • ASP.NETでSQL-SERVERへの接続方法

    最近、ASP.NETの勉強をはじめました。テキストを見ながらサンプルプログラムを作成しているのですが、SQL-SERVERへのDB接続方法がうまくいきません。 Dim conn As String = "data source=????;user id=sa;password=;initial catalog=SampleDb" Try   Dim objConn As New SqlClient.SqlConnection   objConn.ConnectionString() = conn   Dim comm As New SqlClient.SqlCommand(sql, objConn)   objConn.Open() ソース一番上の????の部分に何と記述すればいいかわかりません。テキストには localhost と記述されています。コンパネの「ODBCデータソース」のDSNやサーバ名を記述しても無理でした。 ASP開発で使用していたDB接続 Conn = "PROVIDER=SQLOLEDB;SERVER=サーバ名;DATABASE=YUSODB;UID=sa;PWD=;" を試したりしたのですが、無理でした。 どなたかご教授お願いします。

  • SQLサーバーへの接続に 接続したいのですが・・・

    質問する場所が 違ったかもしれないので 再度質問させていただきます。 SQLサーバーを始めたばかり です。 ASPで SQLサーバーのデータを表示しようとしています。 環境: WinXP (Pro)     IIS設定済み     SQL Server 2005 Express Edition 近くに2003サーバーがあるので 最終的にはそちらで動作させる予定です。 サーバーが現用機なので 自PCで動作確認してからと思っています。 色々ネットや本を調べて まず接続しようとしましたが そこでつまづいています。 この方法以外も沢山試しましたが全てうまく行きません。 2005 ExpressでDBとテスト用のテーブルが作成してあります。 そのデータを読み出せれば 第一段階とトライしますが、 IEから接続にいくと「objCon.Open」がエラーになってしまいます。 ASPファイルの内容は 以下です なお DB名は 「作成した名前」と入れています よろしく お願いします ---------------------------------------------------- <%@ LANGUAGE="VBScript" %> <% option explicit %> <% Dim objCon ' DB接続コネクション Dim objRS ' DB結果レコードセット Dim sql ' SQL文 Dim errflg ' エラーフラグ 'DataSource名 Const DS = "111.111.0.1" ←IPアドレス。正しいものをいれてます Const IC = "DB名"      'ユーザ名 Const User = "sa" 'パスワード Const Pwd = "sa" Set objCon = Server.CreateObject("ADODB.Connection") Set objRS = Server.CreateObject("ADODB.Recordset") objCon.ConnectionString = "Provider=SQLOLEDB;" & _ "User ID=" & User & ";" & _ "Password=" & Pwd & ";" & _ "Data Source=" & DS & ";" & _ "Initial Catalog=" & IC objCon.Open'ここで エラーになります sql = "select * from Aテーブル" objRS.Open sql,objCon,adOpenStatic,adLockReadOnly %> レコード件数 <%=objRS.RecordCount%> <% ' DBclose objCon.Close() Set objCon = Nothing objRS.Close() Set objRS = Nothing %> なお エラー内容は 以下です ----------------------------- HTTP 500.100 - 内部サーバー エラー - ASP エラー インターネット インフォメーション サービス エラー タイプ Microsoft OLE DB Provider for SQL Server (0x80004005) [DBNETLIB][ConnectionOpen (Invalid Instance()).]接続が正しくありません ----------------------------- また  1.IPアドレスは Const DS = "127.0.0.1"でも 同様なエラーです 2.表示できるASPファイルを置き、他のPCから 表示できる環境です

  • 家庭内LANにて 他のPCのSQLサーバーへ接続したい

    同一のワークグループに ・vista(SQLサーバーインストール、データーベース作成済み) ・XP があります。 vba(ADO)を使って XPからvistaのSQLサーバーへ接続したいのですがうまくいきません。 vistaでの設定は セキュリティ構成→リモート接続→ローカル接続及びリモート接続→TCP/IPのみを使用する 構成マネージャー →SQLEXPRESSのプロトコル→TCP/IP→有効→IPアドレスにXPのIPアドレスをいれサービスを再起動しました。 そしてエクセルVBEに Dim CN As New ADODB.Connection Dim RS As New ADODB.Recordset CN.Open "Provider=SQLOLEDB;Data Source=192.168.0.6\SQLEXPRESS; " & _ "Initial Catalog=" & データベース名 & ";" & _ "Integrated Security=SSPI" (192.168.0.6はvista側のIPアドレス) にすると、 「実行時エラー -2147217843 ユーザー ’vista\guest’はログインできませんでした。」 となります。 192.168.0.6をvistaのホスト名にしても同じエラーです。 192.168.0.6を「localhost」やXPのIPアドレスdにすると 「実行時エラー -2147467259 [DBNETKIB][ConnecthionOpen (Connect)().]SQL Serverが存在しないか、アクセスが拒否されました。」 と言うエラーになります。 ・全く同じコードでvistaから接続できます。 ・XPのIPアドレスは自動取得です。 ・XPにSQLサーバはインストールしていません。 ・XPからvistaの中にある共有フォルダの中のmdbファイルなら問題なくadoで接続できます。 ご教授よろしくお願いします。

  • VBでSQL Serverに接続したいのですが

    お世話になります。大変困っているので助けてください。 VB 2008EXPRESS EditionとSQL Server EXPRESS Edition(共に無償)をネットからダウンロードしてインストールしました。 VBからSQL Serverに接続したく以下のようなコードを記述しました。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' 接続文字列を生成する Dim stConnectionString As String = String.Empty stConnectionString = "Server=ABSAN\SQLEXPRESS;Initial Catalog=ABSAN;Integrated Security = SSPI;" ' SqlConnection の新しいインスタンスを生成する (接続文字列を指定) Dim cSqlConnection As New System.Data.SqlClient.SqlConnection(stConnectionString) ' データベース接続を開く cSqlConnection.Open() ' 接続に成功した旨を表示する MessageBox.Show("Microsoft SQL Server に接続されました") ' データベース接続を閉じる (正しくは オブジェクトの破棄を保証する を参照) cSqlConnection.Close() cSqlConnection.Dispose() End Sub 結果として、「SqlEXceptionはハンドルされませんでした」旨のメッセージが帰ってきます。 但し、自分でもData SourceとInitial Catalogの設定のところがこれでいいのかと思っています。 何らかの形で正しい設定をしたいのですが、サーバのインストール時にこのような設定があったように記憶がありません。 また他にも原因があるようでしたら教えてください。 全然わかってないのですが、アクセスするDBファイルはまだ存在しません。 上記コードではとりあえずローカルのサーバに接続するという概念で受け取っていますが、間違っていますでしょうか? 何分急いで下ります。よろしくお願いいたします。

  • SQL Serverへ

    VBでSQL Server2000にアクセスしています。 先日質問させていただいた延長上の質問なのですが、サーバへのアクセスはIPアドレスでないとできないのでしょうか?たとえばドメイン名など○○.co.jp cn.ConnectionString = "Provider=SQLOLEDB;Network address=○○;" & "initial catalog=KecDataBase;User ID=○○;Password=○○" のように接続していました。address=○○;の部分を変更すればできるのかと思うのですが・・・ 知っておられる方いられましたらよろしくお願いします。

  • 他のPCのSQLサーバーに接続したい

    2台のPCはLANに繋がれていて、同じワークグループです。 PC1をサーバーとして PC2からPC1のSQLサーバーへ接続したいのですが どうすればいいのでしょうか? (エクセル→SQLサーバーです。) PC1は Dim cn As New ADODB.Connection cn.Open "Provider=SQLOLEDB;Data Source=○○○○\SQLEXPRESS; " & _ "Initial Catalog=" & サーバー名 & ";" & _ "Integrated Security=SSPI" rs.Open "Tテーブル", cn, adOpenStatic, adLockOptimistic と言うように接続しています。 PC2から同じようにコードを書いてみましたがやはりエラーになってしまいました。 多分、 「cn.Open "Provider=SQLOLEDB;Data Source=○○○○\SQLEXPRESS;」 の部分だと思うのですが どうすればPC2からPC1のSQLサーバーへ接続することができるのでしょうか? どちらも環境は OS:2000、オフィス:2003、 PC1のみSQLサーバー2005がインストールされています。 IPアドレスは固定です。 ご教授よろしくお願い致します。

  • SQL Serverへの接続で困っています

    お世話になります。大変困っているので助けてください。 VB 2008EXPRESS EditionとSQL Server EXPRESS Edition(共に無償)をネットからダウンロードしてインストールしました。 VBからSQL Serverに接続したく以下のようなコードを記述しました。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' 接続文字列を生成する Dim stConnectionString As String = String.Empty ' stConnectionString &= "Data Source = ABSAN\SQLEXPRESS;" ' stConnectionString &= "Initial Catalog = ABSAN;" ' stConnectionString &= "Integrated Security = SSPI;" stConnectionString = "Server=ABSAN\SQLEXPRESS;Initial Catalog=ABSAN;Integrated Security = SSPI;" ' SqlConnection の新しいインスタンスを生成する (接続文字列を指定) Dim cSqlConnection As New System.Data.SqlClient.SqlConnection(stConnectionString) ' データベース接続を開く cSqlConnection.Open() ' 接続に成功した旨を表示する MessageBox.Show("Microsoft SQL Server に接続されました") ' データベース接続を閉じる (正しくは オブジェクトの破棄を保証する を参照) cSqlConnection.Close() cSqlConnection.Dispose() End Sub 結果として、「SqlEXceptionはハンドルされませんでした」旨のメッセージが帰ってきます。 但し、自分でもData SourceとInitial Catalogの設定のところがこれでいいのかと思っています。 何らかの形で正しい設定をしたいのですが、サーバのインストール時にこのような設定があったように記憶がありません。 また他にも原因があるようでしたら教えてください。 何分急いで下ります。よろしくお願いいたします。

  • プログラムから別サーバのSQLServerに接続したい

    タイトルのとおりなのですが、C#のプログラムから 別サーバ上のSQLServerに接続したいのですがつながりません。 ConnectionStringは以下のようになっています。 Data Source=192.168.0.1;Initial Catalog=DbTest;Integrated Security=True "192.168.0.1"の部分を"192.168.0.1\instanceName"にしましたが これもダメでした。 初心者なので、この辺りのことがよく分からないのですが、 これはDBサーバ側に何か設定が必要でしょうか。 また解決になるようなページなどありましたらお教えください。