none
SQLServer2000への接続方法 RRS feed

  • 質問

  • <サーバ>
    Windows2000Server
    SQLServer2000
    <クライアント>
    WindowsXPPro

    上記の環境でLANを構築し、LAN上でサーバのSQLServerに接続が希望です。
    現在クライアントにVisualBasic2005ExpressEditionをインストールしデータベースエクスプローラにて接続文字列を確認しようとしたのですが、接続確認がうまくいきません。

    データソースは「SQLClient」を指定しデータベースファイル名はネットワークを参照し「接続したいテーブル名.mdf」を指定しています。

    エラーメッセージは「provider:SQLネットワークインターフェイスerror:22指定されたサーバまたはインスタンスの位置を指定している時にエラーが発生しました」と出てしまっています。

    解決方法を模索しているのですが、根本的にサーバにも.netFrameworkがインストールされていないと接続はできないのでしょうか?

    IDやパスワードがエラーで拒否されているのかどうかなどエラーの詳細の調査の仕方もヒントを頂ければ助かります。

    SQLServerの設定の不備が原因かもしれないので的確な質問ができていないと思いますが、少しずつでもヒントを頂ければ助かります。

    1時間ほどしたら本屋に走る予定でもいますのでこの本を見ればVisualBasic2005とSQLServerの接続は分かるというお勧めでも助かります。

    お手数ですが、初心者にお力をお貸し下さる様お願いします。

    2006年10月25日 5:50

回答

  • データソースはSQL Clientでいいのですが、データベースファイルではなくて、サーバーとかありませんでしょうか?そこにサーバー名を指定すれば良いのですが・・・

    あと、サーバーに.NET Frameworkがインストールされている必要はありません。

    2006年10月25日 6:06
    モデレータ
  • 早速の回答ありがとうございます。

    説明が的確でなくてごめんなさい。
    データベースエクスプローラで接続の追加という画面を出して接続確認を行っています。
    この画面には入力する個所が2箇所あり
    1.データソース
    2.データベースファイル名
    となっています。
    この2番目の場所に現在は「¥¥サーバ名¥ドライブ名¥フォルダ名¥・・・・¥データベースファイル名.MDF
    」と
    設定してあります。
    この2番目の個所を訂正すればいいのでしょうか?

    もしかして上記の解釈で誤っていて別の場所の設定方法を教えて頂いているのでしょうか?

    MDBへの接続などはデータベースファイル名を指定していたのですが、SQLServerの場合は「サーバ名」のみでいいのでしょうか?

    初歩的な質問で申し訳ありませんがもう少しお付き合い下さる様お願いします。

    2006年10月25日 6:21
  • SQL Server 2000 なので、MDF ファイルを指定しての接続はできません。
    こちらの機能は SQL Server 2005 Express のみの機能です。
    ですので、MDF ファイルを SQL Server 2000 に sp_attach_db でアタッチするか、CREATE DATABASE XXXXX として新規にデータベースを作成してください。
    接続文字列には、MDF ファイルを指定せず、データベースのサーバ名とデータベース名を指定してください。
    2006年10月25日 6:51
  • 回答ありがとうございます。

    画面で操作して接続確認ができない事が分かったのは前進です。ありがとうございます。

    もしかして接続方法はこのような方法でよいのでしょうか?

    Imports System.Data.SqlClient
    Private SUB Btn_Click・・・・・
     dim sqlCn as New SqlConnection
     dim StCn as string

     stCn = ""
     stCn = stCn & "data source=●●●●●;"  '※●●●●●はサーバの端末名
     stCn = stCn & "initial catalog=△△△△△;" '※△△△△△はテーブル名
     stCn = stCn & "password=■■■■■;"       '※■■■■■はパスワード
     stCn = stCn & "persit security info=true;"

     sqlCn.ConnectionString = stcn

     sqlCn.Open()

     sqlCn.Close()

    End Sub

    上記の書式で後はSQLServerのIDとパスワードの設定で接続が出来るのでしょうか?

    現在は「ユーザー●●●●●はログインできませんでした」というエラーが表示される状況です。

     

    2006年10月25日 8:26
  • SQL Server 2000 の認証モードはどうなっているのでしょうか?
    Windows 認証ですか?それとも SQL 認証ですか?

    Windows 認証(現在ログインしているユーザで SQL Server へ接続する方法)の場合は、該当のユーザを SQL Server に接続できるようにしてあげる必要があります。
    たとえば、ワークグループ(ローカルの SQL Server 2000)で構成されている場合で、%COMPUTERNAME%\%USERNAME% というユーザを XXXX というデータベースの所有者として接続できるようにする場合、まずクエリーアナライザーで管理者として SQL Server 2000 に接続します。
    で、次に
    use master
    go
    sp_grantlogin '%COMPUTERNAME%\%USERNAME%'
    go
    use XXXX
    go
    sp_grantdbaccess '%COMPUTERNAME%\%USERNAME%'
    go
    sp_grantaddrolemember 'db_owner', '%COMPUTERNAME%\%USERNAME%'
    go
    という風にします。
    別のコンピュータに接続する場合は、同じユーザ名・パスワードを設定した Windows アカウントを作成して、別のコンピュータの名前とユーザで登録してください。
    Active Directory を構成している場合は、%DOMAINNAME%\%USERNAME% で指定してください。

    SQL 認証の場合は
    use master
    go
    sp_addlogin 'UserName', 'Password'
    go
    use XXXX
    go
    sp_grantdbaccess 'UserName'
    go
    sp_grantaddrolemember 'db_owner', 'UserName'
    go
    という風にします。

    で、実際にアプリケーションから接続する場合

    Windows 認証の場合は
    Data Source=%COMPUTERNAME%;Initial Catalog=XXXX;Trusted_Connection=yes;
    のような形にします。

    SQL 認証の場合は
    Data Source=%COMPUTERNAME%;Initial Catalog=XXXX;User ID=UserName;Password=Password;
    のような形にします。

    まぁ、ここまで書けばたぶん出来るでしょうから、後はヘルプを参照してくださいね。

    2006年10月25日 9:46
  • 具体的な模範コードありがとうございます。

    現在は購入してきた本を真似しながら作っている現状なので頭の中に入っていかない部分もありました。
    (SQL認証の部分は本と同じだったので理解しやすかったです。)

    今後は一人で調べて出来るように勉強を進めていきます。

    丁寧な対応本当にありがとうございました。

     

    2006年10月25日 10:14

すべての返信

  • データソースはSQL Clientでいいのですが、データベースファイルではなくて、サーバーとかありませんでしょうか?そこにサーバー名を指定すれば良いのですが・・・

    あと、サーバーに.NET Frameworkがインストールされている必要はありません。

    2006年10月25日 6:06
    モデレータ
  • 早速の回答ありがとうございます。

    説明が的確でなくてごめんなさい。
    データベースエクスプローラで接続の追加という画面を出して接続確認を行っています。
    この画面には入力する個所が2箇所あり
    1.データソース
    2.データベースファイル名
    となっています。
    この2番目の場所に現在は「¥¥サーバ名¥ドライブ名¥フォルダ名¥・・・・¥データベースファイル名.MDF
    」と
    設定してあります。
    この2番目の個所を訂正すればいいのでしょうか?

    もしかして上記の解釈で誤っていて別の場所の設定方法を教えて頂いているのでしょうか?

    MDBへの接続などはデータベースファイル名を指定していたのですが、SQLServerの場合は「サーバ名」のみでいいのでしょうか?

    初歩的な質問で申し訳ありませんがもう少しお付き合い下さる様お願いします。

    2006年10月25日 6:21
  • SQL Server 2000 なので、MDF ファイルを指定しての接続はできません。
    こちらの機能は SQL Server 2005 Express のみの機能です。
    ですので、MDF ファイルを SQL Server 2000 に sp_attach_db でアタッチするか、CREATE DATABASE XXXXX として新規にデータベースを作成してください。
    接続文字列には、MDF ファイルを指定せず、データベースのサーバ名とデータベース名を指定してください。
    2006年10月25日 6:51
  • 回答ありがとうございます。

    画面で操作して接続確認ができない事が分かったのは前進です。ありがとうございます。

    もしかして接続方法はこのような方法でよいのでしょうか?

    Imports System.Data.SqlClient
    Private SUB Btn_Click・・・・・
     dim sqlCn as New SqlConnection
     dim StCn as string

     stCn = ""
     stCn = stCn & "data source=●●●●●;"  '※●●●●●はサーバの端末名
     stCn = stCn & "initial catalog=△△△△△;" '※△△△△△はテーブル名
     stCn = stCn & "password=■■■■■;"       '※■■■■■はパスワード
     stCn = stCn & "persit security info=true;"

     sqlCn.ConnectionString = stcn

     sqlCn.Open()

     sqlCn.Close()

    End Sub

    上記の書式で後はSQLServerのIDとパスワードの設定で接続が出来るのでしょうか?

    現在は「ユーザー●●●●●はログインできませんでした」というエラーが表示される状況です。

     

    2006年10月25日 8:26
  • SQL Server 2000 の認証モードはどうなっているのでしょうか?
    Windows 認証ですか?それとも SQL 認証ですか?

    Windows 認証(現在ログインしているユーザで SQL Server へ接続する方法)の場合は、該当のユーザを SQL Server に接続できるようにしてあげる必要があります。
    たとえば、ワークグループ(ローカルの SQL Server 2000)で構成されている場合で、%COMPUTERNAME%\%USERNAME% というユーザを XXXX というデータベースの所有者として接続できるようにする場合、まずクエリーアナライザーで管理者として SQL Server 2000 に接続します。
    で、次に
    use master
    go
    sp_grantlogin '%COMPUTERNAME%\%USERNAME%'
    go
    use XXXX
    go
    sp_grantdbaccess '%COMPUTERNAME%\%USERNAME%'
    go
    sp_grantaddrolemember 'db_owner', '%COMPUTERNAME%\%USERNAME%'
    go
    という風にします。
    別のコンピュータに接続する場合は、同じユーザ名・パスワードを設定した Windows アカウントを作成して、別のコンピュータの名前とユーザで登録してください。
    Active Directory を構成している場合は、%DOMAINNAME%\%USERNAME% で指定してください。

    SQL 認証の場合は
    use master
    go
    sp_addlogin 'UserName', 'Password'
    go
    use XXXX
    go
    sp_grantdbaccess 'UserName'
    go
    sp_grantaddrolemember 'db_owner', 'UserName'
    go
    という風にします。

    で、実際にアプリケーションから接続する場合

    Windows 認証の場合は
    Data Source=%COMPUTERNAME%;Initial Catalog=XXXX;Trusted_Connection=yes;
    のような形にします。

    SQL 認証の場合は
    Data Source=%COMPUTERNAME%;Initial Catalog=XXXX;User ID=UserName;Password=Password;
    のような形にします。

    まぁ、ここまで書けばたぶん出来るでしょうから、後はヘルプを参照してくださいね。

    2006年10月25日 9:46
  • 具体的な模範コードありがとうございます。

    現在は購入してきた本を真似しながら作っている現状なので頭の中に入っていかない部分もありました。
    (SQL認証の部分は本と同じだったので理解しやすかったです。)

    今後は一人で調べて出来るように勉強を進めていきます。

    丁寧な対応本当にありがとうございました。

     

    2006年10月25日 10:14
  • もし、わからなければ PASSJ http://www.sqlpassj.org/ も活用していただければと思います。
    PASSJ ではオフラインの勉強会もやっています。近いうちに私も講師に立つことも考えていますので、そのときはぜひ。
    # SQL Server 2005 Express の開発の仕方とかって感じで考えています。
    2006年10月25日 10:28