A5:SQL Mk-2

開発のこと、日々のこと

SQLServer 2022 LocalDB へ接続できません。

ホーム フォーラム A5:SQL Mk-2掲示板 SQLServer 2022 LocalDB へ接続できません。

  • このトピックには8件の返信、1人の参加者があり、最後にとある利用者により3ヶ月、 3週前に更新されました。
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • 投稿者
    投稿
  • #21001 返信
    とある利用者
    ゲスト

    PCを新調したため、Win11Proクリーンインストール済な環境へ各種ツールを入れているのですが、
    開発用DBとして入れた SQLServer 2022 LocalDB のインスタンスへ
    A5M2(Ver2.18.4 Portable)から接続できません。
    テスト接続時に「Unknown host’(LocalDB)’, Socket Error Code 11001($2AFQ)」と出てしまいLocalHostを認識できていない感じ(Errコード”11001″は、「そのようなホストは不明」だったかと。)になりました。接続モードは内蔵ライブラリによる直接接続らしいです。

    接続設定としては、接続タイプ:SQLServer、「(LocalDB)\MSSQLLocalDB」、WindowsNTの統合セキュリティ使用、を指定しています。(DB未作成なので DB指定はなし)

    動作環境としては、開発IDE(MSVS2019)にLocalDBだけを入れ、DB管理ツールとしてSSMS v19、A5M2 v2.18.4 を入れたのみです。
    ちなみに導入済みSSMSv19からは上記 「(LocalDB)\MSSQLLocalDB」、Windows認証 経由で
    正常にLocalDBにアクセスできます。
    確かA5M2は SQLServer Native Client が入っていればそちらを使う様になっていて
    そうでない場合にA5M2内蔵ライブラリでの直接接続になった、と思うのですが
    当問題が置きているPCにはNativeClientは入っていないので、その辺りが影響して
    LocalHostを認識できなくなっているんじゃないかと思っています。

    できれば余計な追加導入せず軽い環境にしておきたいので、ODBCドライバ追加やその他補助ツールの追加等、は避けたいのですがなにか効果的な方策等あればご教示いただけると助かります。
    可能であればご確認お願いします。

    #21006 返信
    とある利用者
    ゲスト

    試行錯誤の結果、自己解決?したようなので追記しておきます。

    結論から書くと、SQL Server Native Client v11.0 を追加インストールすることで
    A5M2 が内蔵ライブラリではなくNative Client 経由でのアクセスを行うようになり
    SQLServer2022 LocalDBへの接続が確立できました。
    A5M2 v2.18.4の内蔵ライブラリではSQLServer2022 LoclaDBへのアクセスは確立できない、
    ということみたいです。

    以前(SQLServer2016まで)はSSMSをインストールすればNativeClientも入っていたのですが
    SQLServer2022からはNativeClientを統合インストーラに含まなくした、らしいです。
    (MS公式「SQL Server Native Client のインストール」に記述あり。
      SQL Server Native Client (SNAC と略されることがよくあります) は、
      SQL Server 2022 (16.x) と SQL Server Management Studio 19 (SSMS) から
      削除されました。    だそうです。)

    SQLServer2022 Native Client のインストーラはいまのところ見つけられていないため、
    仕方なく SQLServer Native Client v11.0 を入れて対応している状態です。

    A5M2 v2.18.4以降の内蔵ライブラリでSQLServer2022 LoclaDBへのアクセスが可能になれば
    わざわざ過去のNativeClient v11.0を持ってくる必要はなくなると思いますので
    状況確認いただき、ご対応くださると嬉しいです。  よろしくお願いします。

    #21522 返信
    とある利用者
    ゲスト

    この件(#21001、#21006)、
    A5M2本体側の内蔵ライブラリでのご確認、ご対応はいかがでしょうか?
    ご対応いただくことは難しいでしょうか?

    #21525 返信
    ゲスト
    ゲスト

    大変上記の情報を参考していただきありがとうございました。
    SQL Server Native Clientをインストールによって、かつstate:stopの場合
    A5からLocalDBの接続ができました。
    だけど、ローカルでプロジェクトを動きながら、A5でDBをいじりたいですが、

    プロジェクトを実行している時、 sqllocaldb info MSSQLLocalDBコマンドで調べたら、state:Runningの場合、A5からLocalDBの接続ができない、エラーが発生「SQL Server ネットワーク インターフェイス: LocalDB インスタンスを開始する際にエラーが発生しました: SQL Server プロセスを開始できませんでした。
    [x89C5010A]. 」

    state:stopの場合、A5からLocalDBの接続ができます。

    LocalDBをいじりたい時、sqllocaldb stop MSSQLLocalDBコマンドで実行してから、A5からLocalDBを接続し、修正してから、またsqllocaldb start MSSQLLocalDBコマンドで実行し、プロジェクトをデバッグモードで起動してテストする、一々面倒くさいなぁ。。。

    #21527 返信
    とある利用者
    ゲスト

    >>ゲストさん
    > ローカルでプロジェクトを動きながら、A5でDBをいじりたい ~ インスタンスを開始する際にエラーが発生しました

    それはLocalDB本来の仕様だから仕方ないのでは。
    LocalDBは、DBアクセス発生毎に固有のインスタンスを生成してDBへのアクセスを確立する仕様だったと思います。(公式ドキュメントに記載あります。)
    そのため、ご要望のようなプロジェクト実行時に はすでに生成されたインスタンスがDBアクセスのコネクションを占有する形になるため、A5がアクセスしようとしてもダメなんじゃないかと思います。(LocalDBの共有利用は想定外、だそうなので。)

    Express版ではなくLocalDBであることの制約、とでも言いましょうか。
    リアルタイムでテーブルの推移をA5で確認したい、というようなご要望自体は、
    よくわかるところなんですけどね。汗

    #21537 返信
    松原正和
    キーマスター

    ゲストさん、とある利用者さんこんにちは。お返事が遅くなり申し訳ありません。
     
    すみません、SQLServer 2022 LocalDB というのは、SQLServer 2022 をローカルPCにインストールしたというわけではなく、SQLServer 2022 LocalDB という、Microsoft の製品なのですね。
     
    使ったことがなかったのですが、接続先ホスト名は localhost ではなく、(LocalDB) であっているのでしょうか? Microsoft のドキュメントを見ても、たしかに (LocalDB) を指定するようですが…。
     
    Version 2.19系を使用しても同様でしょうか? つなぐことができない場合は、SQL Server Native Client v11.0 経由で接続するしかないかなという気がします。

    #21548 返信
    とある利用者
    ゲスト

    松原様
    お疲れ様です。ご返信ありがとうございます。

    >> SQLServer 2022 LocalDB というのは、SQLServer 2022 をローカルPCにインストールしたというわけではなく、SQLServer 2022 LocalDB という、Microsoft の製品なのですね。

    そうです。
    呼び出し元アプリのDBアクセス要求に呼応して単一固有のインスタンスが生成される仕様で、
    アクセス先のDB名は実質 (LocalDB)¥MSSQLLocalDB 固定、になるみたいです。
    (説明によっては、(LocalDB)¥v11.0 とバージョンNo指定だったりしますが。
    こちらでは SQL Server Native Client 経由、 (LocalDB)¥MSSQLLocalDB でアクセスしています。)

    以前のバージョンでは、SQL Server Native Client が同時導入されていたため
    通常のSQLServerのDB接続設定画面から無意識に SQL Server Native Client 経由でのアクセスになっていたのだと思いますが
    SQLSV2022版(SSMS v19以降)のインストーラから SQL Server Native Client が付属しなくなった、そうで、
    A5M2の場合 Native Client がなければ内蔵ドライバで動くようになり、これがNative Clientの
    代替になっていない模様です。

    公式の記述によれば、今後は SQL Server Native Client は非推奨になるため、
    今後は SQL Server Native Client は使用せず、ODBCドライバ経由かADO/OLEDBドライバ経由
    (従来のOLEDBプロバイダは廃止らしい)でのアクセスに切り替えて開発せよ、ということらしいです。
    公式:SQL Server Native Client における LocalDB のサポート

    開発元の意向でもありますし、もしかするとLocalDBの利用者数、頻度はかなり少ないのかも
    しれませんが、A5M2からLocalDBに普通に設定してアクセスできないのは非常に困りますので、
    上記を踏まえてご対応いただければ幸いです。

    勝手な要望ですが、ぜひご検討のほどお願いいたします。

    #21560 返信
    松原正和
    キーマスター

    とある利用者さんこんにちは。
     
    この辺りは、利用しているDB接続ライブラリである、Devart 社の UniDAC が対応してくれないと何ともしようがない状況です。

    Devart 社の UniDAC が新しいバージョンで LocalDB への接続へ対応したら追従したいともいますので、しばらくお待ちいただければと思います。
     

    #21570 返信
    とある利用者
    ゲスト

    松原様
    なるほど、アプリで使用しているDB用コンポーネントでの問題なのですね。
    UniDACでのダイレクトモード、確かにありがたい機能です。
    委細承知いたしました。
    対応可能な状況になりましたらぜひよろしくお願いします。
     

9件の投稿を表示中 - 1 - 9件目 (全9件中)
返信先: SQLServer 2022 LocalDB へ接続できません。
あなたの情報:




コメントは受け付けていません。