私のDelphi 7アプリケーションでは、SQL Serverへの接続を構築し、接続文字列を設定ファイルに格納することができます。
これは何年もの間何の問題もなく今まで働いてきました。Delphi 7のPromptDataSourceは以前と異なる結果を出しています
接続文字列を構築するためのコードはこれです:
procedure TDataModuleMain.GetADOProviderString;
var
ConnectionString : string;
begin
ConnectionString := PromptDataSource(Application.MainForm.Handle, cdsConnectionsADOConnectionString.AsString);
if ConnectionString <> cdsConnectionsADOConnectionString.AsString then
begin
if not (cdsConnectionsADO.State in [dsEdit, dsInsert]) then
cdsConnectionsADO.Edit;
cdsConnectionsADOConnectionString.AsString := ConnectionString;
end;
end;
PromptDataSourceはADODB.pasから関数であり、それは Microsoft datalink property window
とれたconnectionStringが返され、接続を設定した後が表示されます。
以前はBlank password
のチェックを外して、Allow saving password
とパスワードとsecurity info=true
が返された接続文字列に存在することを確認できました。
しかし、これはしばらく前に変更されています。この関数はパスワードを返さず、security info = trueも含まなくなりました。その結果、これらのチェックボックスは常に元に戻り、このスクリーンショットのようにパスワードは常に空です。
私はいくつかのウィンドウの更新がこれを行ったと思われますか?
私は誰かがこれに遭遇し、それに対する解決策があることを願っています。
EDIT 1
私がプロバイダとしてSQL Server Native Client 11.0
を選択したときだけ問題が起きる表示されます。 Microsoft OLE DB Provider for SQL Server
を選択すると問題はなく、すべて正常に動作します。
ネイティブクライアントを動作させ、希望の接続文字列を返す方法はありますか?私がテストしてい OSは
EDIT 2
私はコメントで示唆されているように、真のプロパティ永続セキュリティ情報=を設定してみましたが、やはりこれはネイティブクライアントを使用する場合に戻されますが使用していないときますのWindows 8.1でありますコメントで示唆したように、私は、拡張子.UDLのテキストファイルを作成し、その上でダブルクリックすることによって、それを試してみましたOLE DBクライアント
EDIT 3
。結果は同じですが、OLE DBプロバイダでは動作しますが、ネイティブクライアントでは動作しません。
私はあなたのqはOSとADOプロバイダは、使用している、すなわち、項目のカップルが不足していると思いますか? – MartynA
@MartynA私の質問には、プロバイダとOSを追加しました。 – GuidoG
https://msdn.microsoft.com/en-us/library/ms130978aspx – Sami