Die Datei muss wirklich leer sein (0 Bytes). Steht da irgend etwas drin, was nicht UDL ist, kommt o.g. Meldung.
Thx, das war mal das. In Delphi kommt allerdings jetzt "ungültiges Attribut für die Verbindungszeichenfolge". Das kommt beim Versuch, connected auf true zu setzen. In der TAdoConnection ist dabei folgendes eingestellt : FILE NAME = \8.0\test.udl; Als Provider SQLNCLI11 und bei DefaultDataBase : der Pfad zur
DB. also : C:\Microsoft
SQL Server\MSSQL11.MSSQLSERVER\
MSSQL\DATA\northwnd.mdf
Was ist denn da noch falsch ?
Woah.
SQL Server ist keine File-Based Datenbank, sondern (wie schon oft erwähnt) eine Enterprise-Datenbank. Den Client hat es einen feuchten Kehricht zu interessieren, wo das
DB-File liegt. Der hat über Netzwerk (
TCP/
IP oder Named pipes) drauf zuzugreifen und braucht daher den Zielrechnernamen und den Datenbanknamen. Ggf. noch den Instanznamen wenn das nicht die default-Instanz ist. Die Filename-Geschichte ist and und für sich nur dann interessant, wenn man LocalDB verwendet oder
SQL Server CE (Compact Edition).
Ein Connectionstring sieht idealerweise so aus:
Code:
Provider=MSDASQL;Server=
localhost;Database=Northwind;Trusted_Connection=Yes
Das wäre im Fall dass Du Windows Authentication verwendest (als
DB-User wird der Windows-User genommen, in dessen Context die Applikation läuft). Das ist der Trusted_Connection - Teil. Wenn Du anstelle dessen named user verwenden willst (diese Mixed-Mode authentication bei der installation muss da angestellt worden sein), dann muss da anstelle von
Trusted_Connection=Yes entsprechend
User ID=username;Password=DasPasswort
Falls die Datenbank nicht in der Default-Instanz liegt, dann muss
Server=RECHNERNAME\INSTANZNAME angegeben werden. Also z.B.
localhost\SQLEXPRESS
Andere Beispiele findest Du auch hier:
http://www.connectionstrings.com/sql-server-2008 - das meiste lässt sich auf 2012 auch anwenden.