![]() |
Datenbank: MS SQL Server 2016 • Version: 2016 • Zugriff über: ADO
Auf SQL Datenbank via INI Datei zugreifen
Guten Morgen,
seit mehreren Wochen beschäftige ich mich mit Delphi, insbesondere Grids, Tabellen und Datenbankabfragen. Ich bin also noch absoluter Programmier Neuling. (Delphi ist meine erste Programmiersprache) Im Moment scheitere ich leider daran, den Connection String für die ADO Verbindung aus einer INI Datei auszulesen. Mein Code ist wie folgt: begin Ini:= TIniFile.Create('C:Daten.ini'); try Server:= Ini.ReadString('Daten','Server',''); Datenbank:= Ini.ReadString('Daten','DB',''); User:= Ini.ReadString('Daten','user',''); Password:= Ini.ReadString('Daten','password','0'); Provider:= Ini.ReadString('Daten','Provider','SQLNCLI11.1'); Timeout:='150'; constr := 'Provider='+Provider+';'+ 'Integrated Security=SSPI'+';'+ 'Persist Security Info=False'+';'+ 'User ID=' + User + ';'+ 'Initial Catalog=' + Datenbank + ';'+ 'Data Source=' + Server +';'+ 'Server SPN=' + Password; // 'Mode=Read|Write;Connect Timeout = ' + Timeout; AdoConnection1.ConnectionString:= constr; finally ini.free; Leider erhalte ich hierbei die Fehlermeldung: Named Pipes Provider: Could not open a SQL Connection. In der SQL Server Konfiguration sind die Named Pipes Provider aber auf enabled geschalten. Meine Ini Datei hat den Aufbau: [Daten] Provider=SQLNCLI11.1 Server=TABLET-TCHUFJUG\SQLEXPRESS DB=Delphi User= Password=Geheim123 Hoffe ihr habt Tipps. Danke im voraus. Viele Grüße Fabi |
AW: Auf SQL Datenbank via INI Datei zugreifen
1) Bitte Code-Tags verwenden.
2) Wenn du alle Konfigurationsdaten der Ini-Datei "von Hand" in Deinem Programm setzt, funktioniert es dann? Falls ja, mach Dich per Debugging auf die Suche, was da wo falsch läuft. Sherlock |
AW: Auf SQL Datenbank via INI Datei zugreifen
Hi,
trag mal deine Delphi Version in die Userdaten ein, hast du evtl nur Starter? kann die Datenbank? |
AW: Auf SQL Datenbank via INI Datei zugreifen
Ist denn der SQL Native Client auch wirklich auf dem System installiert auf dem du die Anwendung ausführst?
|
AW: Auf SQL Datenbank via INI Datei zugreifen
Hmm..
anscheinend verwendest Du eine SQL-EXPRESS Version von MS. Deshalb die Fragen: - Wird die App auf dem gleichen PC (TABLET-TCHUFJUG) gestartet? Wenn nicht müssen Windows-Firewall und SQL-Server umkonfiguriert werden, da die Express-Version nicht bei der Installation für Zugriff von Extern vorkonfiguriert ist. - Ist der INI-Eintrag für den 'User' korrekt? Denn da steht gar kein Username drinnen. Hinweis: Setze den Provider nicht über eine INI-Datei, sondern ermittle die Provider und nehme den höchsten SQL-Server-Provider, welcher auf deinem System verfügbar ist. Im Regelfall, wenn der Client nicht manuell installiert wurde, dann dürfte es der 'SQLOLEDB' Provider sein! |
AW: Auf SQL Datenbank via INI Datei zugreifen
Statt INI würde ich direkt udl files nehmen.
Vorteil, die kannst Du ohne eine einzige Zeile Code testen und weißt dann, dass die Einträge ok sind. Du brauchst dazu nur einen Editor (Notepad reicht zur Note ;) ) Dann ins Programm einbauen und anwenden. ![]() |
AW: Auf SQL Datenbank via INI Datei zugreifen
Lieben Dank für eure schnellen Antworten!
@ Sherlock 1) sorry 2) der Connection String ist eigentlich 1:1 der, den ich zuvor via ADO Connection String in Delphi hinterlegt habe. Um flexibler zu sein und die Software auch auf anderen PCs nutzen zu können wollte ich das aber über eine Ini Datei lösen, in der ich die richtigen Daten hinterlegen kann @ matashen ja, ich habe die Professional Version @ Aviator Der SQL Native Client ist sicher installiert, wenn ich den String manuell in Delphi hinterlege funktioniert es @ HolgerX Ja, es ist MS Express. Das Programm wird aktuell auf demselben PC gestartet auf dem auch Delphi und die SQL Datenbank installiert ist(TABLET-TCHUFJUG) Bei der Ini Datei habe ich den User leer gelassen, weil im ADO Connection String der User auch leer ist (es geht via Windows "Authentifizierung" daher kann das leer bleiben?). Ich habe es allerdings auch mit meinem Windows Usernamen und Passwort mit demselben Ergebnis versucht. Wie ermittle ich den Server Provider?? @ jobo das klingt interessant. Hast du hier vielleicht ein Tutorial für mich parat...? Viele Grüße |
AW: Auf SQL Datenbank via INI Datei zugreifen
Tja, die Frage ist, was Du möchtest und in welcher Reihenfolge.
Programmtisch eine UDL Datei erzeugen? ![]() oder auch: ![]() ![]() ![]() Oder möchtest Du lieber erstmal: Ohne weitere Hilfsmittel (Delphi, ..) ein UDL File bauen, Verbindungstest durchführen und so sicher sein, einen validen Connectionstring zu erhalten? - Einfach eine leere Textdatei erzeugen - umbenennen nach <irgendwas>.udl - Doppelclick - Verdindung auswählen - Datei mit Texteditor oder Delphi öffnen und fertigen, funktionierenden Connectionstring weiterverwenden. Das Gemeine ist hier, wie bei ODBC gibt es eine dämliche Problematik mit 32 und 64 bit, bedeutet in der Praxis häufig, dass der Verbindungsassistent nicht die gewünschten / installierten Provider anzeigt. Wenn es um 32 bit DB Clients auf 64 bit OS geht, siehe hier: ![]() oder hier: ![]() Damit verwendest Du jedenfalls einen Standard, der "sogar" betriebssystemseitig mit einem Assistenten (leider 2 für 32 und 64 bit) unterstützt wird und sparst Dir die Hampelei mit INI Files. Bestimmt findest Du noch ein paar tolle Sachen hier, wenn Du die Suchfunktion in delphipraxis verwendest. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:49 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