2013-08-08 7 views
6

Mit einer TAdoConnection in D5, um eine Verbindung zu einem lokalen Sql-Server auf einem Windows 7 64-Bit-Maschine mit einem Password sa Account, bekomme ich die Fehlermeldung "Anmeldung fehlgeschlagen für Benutzer sa", trotz der Tatsache, dass ich habe den TAdoConnection ConnectionString mit dem Passwort erstellt. Zu dem Zeitpunkt, zu dem das Ereignis BeforeConnect ausgelöst wird, enthält der ConnectionString das Kennwort nicht mehr. Ich kann das Kennwort im WillConnect-Ereignis festlegen und die Verbindung funktioniert dann einwandfrei.TAdoConnection-Passwort goes AWOL

Meine Frage ist, was ist das Entfernen des Passworts aus dem ConnectionString? Ist es vielleicht ein Sicherheitsmerkmal in W7 hinzugefügt - ich erinnere mich nicht, dieses Problem auf XP zu bekommen.

Btw: Dieses Problem tritt immer noch auf, selbst wenn ich im ConnectionString Persist Security Info auf true setzen - das Passwort wird nicht einmal im DFM gespeichert.

+0

Öffnen Sie diese Verbindung nicht zur Entwurfszeit (oder tun Sie es, aber mit 'Persist Security Info = True 'in der Verbindungszeichenfolge), und es sollte in DFM gespeichert werden. – TLama

+0

Ich weiß, dass es gerettet werden sollte, aber wie ich in meinem "Btw" gesagt habe, tut es nicht. – MartynA

+0

Verwenden Sie nicht die ConnectionString-Schaltfläche "Erstellen ...", die den Windows OLE DB-Datenverknüpfungseigenschaften-Dialog aufruft und das Kennwort beim Schließen ausblendet. Ich hatte nur dieses Problem mit SQL Server, es muss die Verbindungszeichenfolge gegen den tatsächlichen Anbieter überprüfen. (SQLNCLI, SQLNCLI10, SQLOLEDB) Erstellen Sie die Verbindungszeichenfolge von Hand und fügen Sie sie in die ConnectionString-Eigenschaft ein, und speichern Sie sie anschließend. – TDC

Antwort

7

Ihr ConnectionString muss "Persist Security Info = True" enthalten, siehe prior topic. Ich benutze zwei Const, eine für die SQL-Authentifizierung und die andere für die Active Directory-Authentifizierung und füllen Sie einfach die Lücken.

Verwandte Themen