0

(64 ビット) Windows に php 5.3.5 を使用して Xampp をインストールし、(32 ビット) SQL Server 2005 でサードパーティの ODBC ドライバーを使用してデータベースに接続したいのですが、常に同じ間違い「SQL エラー: データ ソース」が発生します。 name not found and no default driver specified”. システム DSN を作成し、odbc_connect を使用して接続しようとしています。

4

4 に答える 4

1

Windows 64 ビットには 2 つの ODBC ドライバー マネージャーがあります。間違ったものを使用した疑いがあります。xampp が 32 ビットか 64 ビットかを調べる必要があり、適切な ODBC アドミニストレーターで DSN を定義する必要があります。64 ビット ODBCを参照してください。詳しく説明されています。

于 2012-08-02T08:05:02.727 に答える
1

問題は通常、sqlncli.dll何らかの理由で適切に登録されていないことにあることがわかりました。dllファイル自体の問題、レジストリへのアクセス許可などが原因である可能性があります。

このエラーを解決する方法は次のとおりです。

Open Regedit
Navigate to H_KEY_LOCAL_MACHINE\Software\ODBC\ODBCINST
NOTE: If it is a 64 bit computer and you are working with a 32-bit SQL install, the path will probably actually be H_KEY_LOCAL_MACHINE\Software\WOW6432Node\ODBC\ODBCINST

ODBCINST キーで、SQL Native Clent regkey が存在することを確認します。それをクリックして、すべての値が画面の右側に表示されることを確認します。次のように表示されます。

(Default)            REG_SZ   (value not set)
APILevel             REG_SZ   2
Connectfunctions     REG_SZ   YYY
CPTimeout            REG_SZ   60
Driver               REG_SZ   c:\windows\system32\slncli.dll 
DriverODBCVer        REG_SZ   09.00
FileUsage            REG_SZ   0
Setup                REG_SZ   c:\Windows\System32\sqlncli.dll
SQLLevel             REG_SZ   1
Usagecount           REG_DWORD 0x00000001 (1)

(デフォルト) エントリしか表示されない場合は、slncli.dll が正しく登録されていません。これは、SQL Native Client ODBC ドライバーが正しく登録されていないことを意味します。

次のように進めます。

管理者としてログインしていることを確認してください。現在ログインしているユーザーに、regkey に対するフル コントロール アクセス許可を付与します。アクセス許可を設定できるようにするには、キーの所有権を取得する必要がある場合があることに注意してください。regkey の所有権を取得してアクセス許可を設定する方法を説明するリソースはたくさんあるので、ここでは詳しく説明しません。

キーに対する完全な制御権限を取得すると、値が画面の右側に表示されるだけになります。これは、単に権限の問題であったことを意味します。

それでも値が表示されない場合は、次のステップとして、それがフォルダーまたはフォルダー (64 ビット システムの場合) にsqlncli.dll存在することを確認します。存在しない場合は、別の PC からコピーを取得する必要があります。ファイルを取得する PC の OS が、ファイルがない PC と同じであることを確認してください。Windows\System32Windows\SysWow64

ファイルが存在する場合は、ファイルのバージョンを確認してください。SQL 2005 はバージョン 9.00.4035.00 を使用します。ファイルのバージョンが表示されていない場合は、ファイルが破損しているため、別の PC からコピーを取得する必要があります。

ファイルが存在し、バージョンがリストされている場合は、regsvr32 を使用してコマンド ラインから手動で登録します。

于 2013-09-27T17:34:25.937 に答える
0

おそらく、それが明確に言うように、ドライバーを持っていないでしょう:) x32およびx64をダウンロードしてください。- ここ

    https://www.microsoft.com/en-us/download/details.aspx?id=13255

いらっしゃいませ。

于 2015-06-08T19:10:46.303 に答える
0

私はちょうどこの問題で半日を過ごし、最終的にそれを理解しました - 少なくとも私の状況では。このスレッドが少し古いことは知っていますが、それでも関連性がありました。

osql.exe のバージョンが、使用しているネイティブ クライアントのバージョンと一致していることを確認する必要があります。2005 年の osql.exe と 2008 R2 のネイティブ クライアントがありました。'08 R2 osql.exe を使用するとすぐに、すべてが期待どおりに機能しました。

于 2016-03-02T19:22:28.487 に答える