AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MS-SQL Logik

Ein Thema von Hansa · begonnen am 4. Sep 2012 · letzter Beitrag vom 6. Sep 2012
Antwort Antwort
Furtbichler
(Gast)

n/a Beiträge
 
#1

AW: MS-SQL Logik

  Alt 5. Sep 2012, 06:28
Zitat:
Da tut sich nichts, der kann die UDL-Datei nicht öffnen. "Stellen sie sicher, daß es sich um eine Datenverknüpfungs-Datei handelt".
Verstehe ich nicht.
Ich schon.

Die Datei muss wirklich leer sein (0 Bytes). Steht da irgend etwas drin, was nicht UDL ist, kommt o.g. Meldung.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

AW: MS-SQL Logik

  Alt 5. Sep 2012, 14:10
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 ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.643 Beiträge
 
#3

AW: MS-SQL Logik

  Alt 5. Sep 2012, 17:54
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#4

AW: MS-SQL Logik

  Alt 5. Sep 2012, 18:24
Die Filename-Geschichte ist and und für sich nur dann interessant, wenn man LocalDB verwendet oder SQL Server CE (Compact Edition).
Auch Wuoah


In der UDL Datei ist definiert, welcher Provider, welcher Server, welche Instanz welche Authentifizierung und wie die Verbindung erfolgt.

Der "File Name" Verweis auf den universal Datalink hat nichts mit lokalen Datenbanken zu tun.
Letztendlich ist es ja nur eine "Verknüpfung" zu einer definierten Datenquelle.

Also UDL und den "klassischen ConnectionString" nicht mischen...

Entweder legst du die DB-Config "statisch" in der Anwendung fest.
(etwa so)
Code:
Provider=MSDASQL;Server=localhost;Database=Northwind;Trusted_Connection=Yes
oder du gibst in deiner Anwendung an, in welcher UDL Datei die Datenbankverbindung definiert ist
(etwa so)
Code:
ConnectionString := 'FILE NAME=test.udl';
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.643 Beiträge
 
#5

AW: MS-SQL Logik

  Alt 5. Sep 2012, 18:34
Ich nutzen ausschliesslich ADO.NET, da hab ich mit udl's nix am hut. Hansa hatte aber bei DefaultDatabase den Pfad zur MDF-Datei eingetragen, und das ist irgendwie.. suboptimal.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#6

AW: MS-SQL Logik

  Alt 5. Sep 2012, 18:44
... hatte aber bei DefaultDatabase den Pfad zur MDF-Datei eingetragen, und das ist irgendwie.. suboptimal.
Stimmt,
das kann .Net mit dem SQL Server Compact irgendwie machen ...
Aber bisher Null Erfahrung damit gesammelt ...
  Mit Zitat antworten Zitat
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
187 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: MS-SQL Logik

  Alt 5. Sep 2012, 23:09
hansa nur ein hinweis, ich wollte dire gerade etwas senden:

Zitat:
Der Posteingang von Hansa ist voll. Hansa kann keine weiteren Privaten Nachrichten empfangen, solange ältere Private Nachrichten nicht gelöscht worden sind.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

AW: MS-SQL Logik

  Alt 6. Sep 2012, 10:00
Ein Connectionstring sieht idealerweise so aus:
Code:
Provider=MSDASQL;Server=localhost;Database=Northwind;Trusted_Connection=Yes
Die einzige funktionierende Konstellation bei mir sieht so aus :

Delphi-Quellcode:
  object con1: TADOConnection
    Connected = True
    ConnectionString =
      'Provider=SQLNCLI11.1;Integrated Security=SSPI;Persist Security I' +
      'nfo=False;User ID="";Initial Catalog="";Data Source="";Initial F' +
      'ile Name="";Server SPN=""'
    DefaultDatabase = 'Northwind'
    Provider = 'SQLNCLI11.1'
So steht das in der DFM. Und sieh an, in einem DBgrid sehe ich jetzt "Alfreds Futterkiste". Aber, was hat das jetzt zu bedeuten, dass das komplett anders aussieht, als in dem Connection-String von Phoenix ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.643 Beiträge
 
#9

AW: MS-SQL Logik

  Alt 6. Sep 2012, 10:39
Nungut.. der Provider ist austauschbar. Kommt halt drauf welche zur Verfügung stehen.

Eigentlich solltest Du alle Werte im Connectionstring die leer sind auch komplett weg lassen können.

Wenn du IntegratedSecurity=SSPI verwendest (das sollte allerdings identisch zu Trusted_Connection=True bzw. Trusted_Connection=Yes sein, je nach Provider versteht der eine halt verschiedene Variationen mehr oder weniger), brauchst Du die User ID z.B. nicht.

Database in meinem String ist Initial Catalog in Deinem und wird aber von dem DefaultDatabase Property direkt nach dem Connectionstring gleich wieder überschrieben.

Von daher sollte das passen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

AW: MS-SQL Logik

  Alt 6. Sep 2012, 11:09
So siehts aus. Minimalistischer gehts nicht mehr:

con1.ConnectionString := 'Provider=SQLNCLI11.1;Integrated Security=SSPI;';
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz