メインコンテンツへスキップ

SQLServer2019へ接続する際に、「class not registered」とエラーとなる

コメント

57件のコメント

  • Tanda

    マジックソフトウェア社のサイトを見ますと、SQL Server 2017までは動作環境として問題なさそうなのですが、SQL Server 2019は「動作確認済み」の事項に「留意事項」という項目が多いですね。一度、そちらに目を通されたほうがいいかもしれませんね。

     

  • Magic User

    ありがとうございます、

    確認してみます

     

  • Magic User

    ありがとうございます、

    SQLServerをインストールしたサーバー上では、

    ManagementStudioをインストールして、

    データベース接続とテーブルをクエリで参照できました。

     

    エラーの発生している、

    端末から、ISHIJIMA樣投稿が

    できるか、これから試してみます。

     

  • Magic User

    まだ、ManagementStudioでは、試していないのですが、

    エラーの発生している、

    端末とは、別な端末で、環境構築して、

    SQLServer上の構成マネージャーから、下記のように変更したら

    エラーが変わりました。

     

    1.SQLServerの指定は、サーバー名

     『;Named Pipes Provider;could not open a connection to SQLServer [1326]』

     と変わりました

     それで、

     SQLServerの構成マネージャーで、

     名前付きパイプを無効から有効に変更して、サービス再起動しましたが、

     エラーは変わらず

     

    2.SQLServerの指定をIPアドレスにしたら、

    『サーバーのオープン処理の遅延のため、ログインプロセスを完了できませんでした。』

     と変わりました

     

     

     

     

     

     

  • Magic User

    解決できました、

    SQLServerをインストールした、サーバー上の

    ファイアーウォールの設定で、

    SQLServerのポート1433を許可したら、

    SQLServerのデータが参照できました。

     

    大変お騒がせいたしました。

    また情報ありがとうございました。

  • Tanda

    ちょうど今、ポート1433のことを書こうとしていた矢先でした。

    自前のWindows Serverは明示的に穴を開けてやる必要がありますから面倒ですよね。

    クラウドでしたら、こういうよく使われるポートはたいてい最初から穴が開いています。

  • Tanda

    もちろん、上位のルーターレベルでは穴は塞がれていますが。。。

  • Tanda

    クラウドのWindows Serverは本当に楽です。自前のWindows Serverは、買ってきて自分であれこれ設定しなければいけませんが、クラウドのWindows Serverは最初からほとんどの設定が成されていますので、すぐに稼働させることができますね。

  • Tanda

    何といっても、その便利さの最たるものは、クラウドの場合、最初からインスタンス毎に固定のグローバルIPアドレスが割り振られているという点ですね。ですのでRIAにしろ、WebClientにしろ、あっという間にサイトを立ち上げることができます。

    これが、自前のWindows Serverですと、まずは固定のグローバルIPアドレスを取得する手続きから始めなければならないという、なんとも面倒な手順が付きまといます。

    ※話題が本題とずれてしまってすみません。

     

  • 僕もこのエラーにはまりました。

    サーバー側はManagementStudioをインストールした際にOLE DBドライバが一緒にインストールされているので気がつかなかった

    のですが、クライアント側には別途 OLE DBドライバ をインストールしてやる必要がありました。


    TLS 1.2がサポートされたことに伴い、SQL Serverへの接続には、OLE DBドライバが必須になりました。
    OLE DBドライバは、現在のSQL Server のクライアントモジュールには標準インストールされませんので、

    以下のMicrosoftサイトよりダウンロードおよびインストールする必要があります。

    https://www.microsoft.com/ja-JP/download/details.aspx?id=56730

  • Tanda

    Magicのゲートウェイからアクセスする分には、関係なさそうですよ。

  • 丹田さん、こんにちは

    >Magicのゲートウェイからアクセスする分には、関係なさそうですよ。

    -----------------------------------------------------------------------------------------------

    いえ、サポートからの情報です。 

    <テクニカル情報より抜粋>
    2003544:SQL Serverへの接続に対して、OLE DBドライバが必須になった件

    HAYATO@アインシュタイン設計社

  • Tanda

    テクニカル情報を見てみました。

    本当ですね。ただ、Magic xpa 3.3b PT1より、Magicのインストール時にこのOLEドライバーも自動的にインストールされると書いてありますので、そのパッチ以降は問題なさそうですね。

    情報をありがとうございました。

    ※お元気そうで何よりです。曾孫さんはまだですか?(笑

  • 丹田さん、こんにちは。

    ひ孫ですか〜、憧れますね〜🤗。でもまだ高校生なんで暫くは憧れのままのようです。

    ところでインストーラーの件ですが3.3では対応しているとのことですが、僕もそう思っていたので、すっかりハマってしまいました。
    サポートから回答貰うまで、4.6.1+PT1では含まれていると思い込んでいました。

    ただ不可解なのは、同じ環境でUniPaaSのプログラムやA5などのツールだと正常にアクセス出来ることです。

    ただ、class not registeredの発生していたパソコンは、OLE DBドライバーか、それをインストーラーに含むマネージメントスタジオなどの他アプリをインストールすることで解決しました。

  • Tanda

    あ、そういういきさつがあったんですね。情報をどうもありがとうございました。

    クラサバ→WebClientへの移植、ぜひやってくださいね。期待しています!

  • Tanda

    HAYATOさん、他に書く人がいないようなので、HAYATOさんのこれまでの長年の移植ノウハウを生かして、WebClientへの移植ノウハウ本を書いてみませんか?きっと喜ばれると思いますよ。(^^)

    HAYATOさんが以前書いた本は、大切に大切に取ってありますよ(↓遠藤勇人 著)。

  • Tanda

    ちなみに、MさんやCHさん達が作ってくれた、「dbMAGIC Q&A 集」も、大事に大事に保存してあります(下図)。永久保存版ですね。

  • nkmt

    今までxpa 4 Enterprise Client をスタンドアロンでは提供していました。
    今日は初めてサーバー&クライアント環境へインストールしました。
    サーバーDB はSQL Server 2022です。
    class not registered が表示されました。
    OLE DB Driver for SQL Server をインストールしようとしたら
    Microsoft Visual C++ 2015-2022 Redistributable (x64) - 14.34.31938を入れろと表示されインストールしました。
    その後、OLE DB Driver for SQL Server のインストールをチャレンジしようとしたらMicrosoft Visual C++を入れろとまた表示されました。
    インストールがうまくいっていないのでしょうね。
    ちなみに普段開発PCとして使っているPCのSSMSやMagic開発版からは、対象サーバーのデータの読み書きに成功しました。

  • Tanda

    nkmtさん、

    DB接続とコマンド送信に関する仕事は、Magicに添付されたそれぞれのゲートウェイが全てをこなしてくれますので、基本的には外部のユーティリティ等は一切不要なはずですよ。かえって外部ツールを入れたりすると、処理の奪い合いになってしまう可能性があると思います。

     

  • nkmt

    テクニカル情報 xpa 4.8.1~ で
    OLE DB Driver for SQL Server 19 をインストールした端末では
    class not registered と出る
    18を入れなさいという情報を見つけ
    OLE DB Driver for SQL Server 18 をネットから探してインストールしたら
    クライアントPC xpa 4.7.1 PT2 からWindows Server 2019の
    SQL Server 2022 のデータを読み書きできました。
    焦る~汗

  • Tanda

    その外部ドライバが悪さをしていたということですね。OLEを使用するときは要注意ですね。

  • nkmt

    なので今のまとめは
    xpa 4.7.1 のインストール
    xpa 4.7.1 PT2 を当てる
    OLE DB Driver for SQL Server 18 をインストールする。
    すると xpa 4.7.1 Enterprise ClientのPCからSQL Server 2022 のデータが読み書きできる。
    かもしれません。tandaさんの記事と後先なっているかもしれません。
    客先現地作業なので。

  • nkmt

    16:12の書き込みは間違い情報かもれしれません。
    xpa 4.7.1 のインストール
    xpa 4.7.1 PT2 を当てた
    これだけで動いたPCがあります。
    うまくいかずに先程のPCは私が何かやっちゃった可能性がありますね。

  • Tanda

    SQL Server 2022を含めて、外部ツールは最新版を使用する場合は枯れていない箇所が存在する可能性がありますので要注意ですね。私は今でもメインは、SQL Server 2014です。Magicのゲートウェイでは、SQL Serverのそれ以降の新機能は使用していないと思いますので、軽さを優先しています。

  • nkmt

    かと思えば、今日あまり触っていないPCは
    OLE DB Driver for SQL Server 18  を入れたら
    class not registered  が表示されずにxpa が無事起動したPCもあります。

  • Tanda

    Magic以外に何がインストールされているかで変わるのでしょうね。OLE関係なら、Officeとかも要チェックですね。

  • nkmt

    今の所、OLE DB Driver for SQL Server 18  を入れないでいいPCが3台、
    入れないといけないのが2台でした。
    tandaさんのおっしゃる通り、不要なのかもしれません。
    入れないといけないPCは私がなにかやってしまったのでしょう。

  • nkmt

    tandaさんありがとうございます。
    xpa 起動して、class not registered とエラーが出てxpaアプリが動かない場合、
    OLE DB Driver for SQL Server 18 をインストールするようにしてみます。

  • Tanda

    ただし、こんどはその19ドライバを使用しているアプリ側で不具合が出る可能性もありますね。

  • nkmt

    なるほどですね。そうなるとこれまた問題ですね。
    今の所、OLEドライバ18を入れたPCと入れていないPCとメモしておきます。

サインインしてコメントを残してください。