AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Auf SQL Datenbank via INI Datei zugreifen

Auf SQL Datenbank via INI Datei zugreifen

Ein Thema von fabi17 · begonnen am 29. Mai 2017 · letzter Beitrag vom 30. Mai 2017
Antwort Antwort
fabi17

Registriert seit: 1. Mai 2017
36 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Auf SQL Datenbank via INI Datei zugreifen

  Alt 29. Mai 2017, 09:45
Datenbank: MS SQL Server 2016 • Version: 2016 • Zugriff über: ADO
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('Caten.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
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.556 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Auf SQL Datenbank via INI Datei zugreifen

  Alt 29. Mai 2017, 10:08
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
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
454 Beiträge
 
Delphi XE2 Enterprise
 
#3

AW: Auf SQL Datenbank via INI Datei zugreifen

  Alt 29. Mai 2017, 10:18
Hi,

trag mal deine Delphi Version in die Userdaten ein, hast du evtl nur Starter? kann die Datenbank?
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.591 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Auf SQL Datenbank via INI Datei zugreifen

  Alt 29. Mai 2017, 11:02
Ist denn der SQL Native Client auch wirklich auf dem System installiert auf dem du die Anwendung ausführst?
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
910 Beiträge
 
Delphi 6 Professional
 
#5

AW: Auf SQL Datenbank via INI Datei zugreifen

  Alt 29. Mai 2017, 11:56
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!
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
2.966 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: Auf SQL Datenbank via INI Datei zugreifen

  Alt 29. Mai 2017, 13:50
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.

https://www.connectionstrings.com/sql-server/
Gruß, Jo
  Mit Zitat antworten Zitat
fabi17

Registriert seit: 1. Mai 2017
36 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: Auf SQL Datenbank via INI Datei zugreifen

  Alt 30. Mai 2017, 15:05
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
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
2.966 Beiträge
 
Delphi 2010 Enterprise
 
#8

AW: Auf SQL Datenbank via INI Datei zugreifen

  Alt 30. Mai 2017, 16:31
Tja, die Frage ist, was Du möchtest und in welcher Reihenfolge.

Programmtisch eine UDL Datei erzeugen?

http://www.delphipraxis.net/30778-ad...speichern.html

oder auch:
https://www.experts-exchange.com/que...onnection.html

https://www.experts-exchange.com/que...html#a23172966
https://www.experts-exchange.com/vie...ippetId=208878

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:
http://digital.ni.com/public.nsf/all...257FC4004A0FA4
oder hier:
https://blogs.msdn.microsoft.com/cha...rating-system/

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.
Gruß, Jo
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf