AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken TADOConnection mit SystemDSN? Problem...
Thema durchsuchen
Ansicht
Themen-Optionen

TADOConnection mit SystemDSN? Problem...

Ein Thema von stho · begonnen am 11. Aug 2010 · letzter Beitrag vom 11. Aug 2010
Antwort Antwort
Seite 1 von 2  1 2      
stho

Registriert seit: 16. Sep 2009
Ort: 127.0.0.1
288 Beiträge
 
Delphi 2007 Professional
 
#1

TADOConnection mit SystemDSN? Problem...

  Alt 11. Aug 2010, 12:55
Datenbank: - • Version: - • Zugriff über: ODBC
Hallo Leute,
ich hab das Problem das ich in einem Service mich alle XX Minuten mit einer Datenbank über die ODBCs verbinden möchte...
Jedoch hab ich jetzt als Service das Problem das ich keine Benutzer-DSNs anlegen sondern nur System-DSNs anlegen kann.
Somit erzeuge ich einen DSN (der beim Testen über den integrierten ODBC-Administrator) auch funktioniert.
("Verbindung testen" -> Verbindung erfolgreich)

Jedoch wenn ich eine ADOConnection im Service erzeuge und den Connectionstring auf den DSN zuweise
("Provider=MSDASQL.1;Persist Security Info=False;Data Source=MyDSN")
dann sagt er mir mit einer Fehlermeldung "DSN nicht gefunden!"

Was mache ich falsch? Kann ich ihm irgendwie explizit sagen das es sich bei dem DSN um einen System-DSN handelt und nicht um einen Benutzer-DSN?
Oder benötige ich besondere Berechtigungen?

Info:
Ich benutze WinXP SP3 mit D2007
Es kommt leider keine andere Verbindung als die ADO-Komponenten in Frage...

Währe sehr dankbar für eine Antwort
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TADOConnection mit SystemDSN? Problem...

  Alt 11. Aug 2010, 13:18
Jedoch wenn ich eine ADOConnection im Service erzeuge ...
Wie erzeugst du diesen?

Es kommt leider keine andere Verbindung als die ADO-Komponenten in Frage...
Aber muss es über ODBC gehen? MS SQL Server und Access geht direkt und bevor du MySQLODBC oder ODBC für Oracle installierst, installier doch den ADO/OLE DB-Provider dafür.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
stho

Registriert seit: 16. Sep 2009
Ort: 127.0.0.1
288 Beiträge
 
Delphi 2007 Professional
 
#3

AW: TADOConnection mit SystemDSN? Problem...

  Alt 11. Aug 2010, 14:18
Wie ich das erzeuge:

Delphi-Quellcode:
  ADO := TADOConnection.Create(nil);
  ADO.LoginPrompt := False;
  ADO.KeepConnection := False;
  ADO.ConnectionString := 'Provider=MSDASQL.1;Persist Security Info=False;Data Source='+sName;
  ADO.Connected := True;
-> Jedoch tritt der Fehler bei "ADO.Connected := True" auf

und nein, leider kommt eine andere Lösung nicht in betracht...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TADOConnection mit SystemDSN? Problem...

  Alt 11. Aug 2010, 14:19
Und was für einer?
Markus Kinzler
  Mit Zitat antworten Zitat
stho

Registriert seit: 16. Sep 2009
Ort: 127.0.0.1
288 Beiträge
 
Delphi 2007 Professional
 
#5

AW: TADOConnection mit SystemDSN? Problem...

  Alt 11. Aug 2010, 14:23
Zitat:
[...] Fehlermeldung "DSN nicht gefunden!"
Um genau zu sein:
"Fehler bei der syntaktischen Analyse: DSN 'MyDSN' existiert nicht!"

Daraus schließe ich mal das er den DSN unter Benutzer-DSNs sucht denn dort ist er ja NICHT vorhanden...
(Wie oben beschrieben ist der Eintrag als SystemDSN hinterlegt)

Daher ja auch meine Frage im Titel: Wie kann ich einen System-DSN mit den ADOs ansprechen
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: TADOConnection mit SystemDSN? Problem...

  Alt 11. Aug 2010, 14:26
[QUOTE=stho;1041169]Wie ich das erzeuge:

Falsch verquotet. Meinte:

Somit erzeuge ich einen DSN (der beim Testen über den integrierten ODBC-Administrator) auch funktioniert.
Wie erstellst du den DSN-Eintrag.

und nein, leider kommt eine andere Lösung nicht in betracht...
Es kommt nur ODBC in Betracht auch wenn es nicht vernünftig geht? Es sinnvollere Wege gibt. ...
Da kann ich mir dann meine Zeit sparen
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
stho

Registriert seit: 16. Sep 2009
Ort: 127.0.0.1
288 Beiträge
 
Delphi 2007 Professional
 
#7

AW: TADOConnection mit SystemDSN? Problem...

  Alt 11. Aug 2010, 14:32
Zitat:
Wie erstellst du den DSN-Eintrag.
Direkt in die Registry mit der TRegisry-Klasse von D2007
Welche genauen Werte ich eintrag darf ich leider nicht ansprechen... tut mir leid
Aber ich kann dir folgendes sagen:
"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyD SN" (Und hier halt die benötigten Werte rein)
Danach noch einen Eintrag in
"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODB C Data Source" als Value "MyDSN"

Zitat:
Da kann ich mir dann meine Zeit sparen
Natürlich kannst du das... jeder schreibt hier freiwillig...
aber da ich mich nunmal an gewisse dinge halten muss die mir mein chef vorgibt kann ich daran auch nichts ändern... ^^

Hoffe ich konnte deine Fragen beantworten
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: TADOConnection mit SystemDSN? Problem...

  Alt 11. Aug 2010, 14:43
Zitat:
Wie erstellst du den DSN-Eintrag.
Direkt in die Registry mit der TRegisry-Klasse von D2007
Welche genauen Werte ich eintrag darf ich leider nicht ansprechen... tut mir leid
Aber ich kann dir folgendes sagen:
"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyD SN" (Und hier halt die benötigten Werte rein)
Danach noch einen Eintrag in
"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODB C Data Source" als Value "MyDSN"
Wird nicht genügen. Und man sollte sowas über die WinAPI erledigen.
Ich Tipp darauf das der ODBC-Administrator beim Aufruf einfach die fehlerhafte Konfiguration korrigiert.


aber da ich mich nunmal an gewisse dinge halten muss die mir mein chef vorgibt kann ich daran auch nichts ändern... ^^
Und wenn der Chef sagt: "Spring aus dem Fenster" dann machst du das auch? Solche nicht mehr zeitgemäßen Vorgaben sollte man auch mal hinterfragen. Denn was vor 10/20 Jahren sinnvoll war ist nicht unbedingt im Jahre 2010 mehr sinnvoll. Evtl. weiß der Chef ja auch nicht das ODBC eigentlich schon wieder eine veraltete Technik ist und bei diversen DB's eigentlich nur noch minimal unterstützt wird (z.B. hat MS vor kuzren jegliche Treiberunterstützung für Oracle abgekündigt so das irgendwann der standardmäßig installierte MS-Oracle-Treiber verschwinden wird.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
stho

Registriert seit: 16. Sep 2009
Ort: 127.0.0.1
288 Beiträge
 
Delphi 2007 Professional
 
#9

AW: TADOConnection mit SystemDSN? Problem...

  Alt 11. Aug 2010, 14:59
Zitat:
Ich Tipp darauf das der ODBC-Administrator beim Aufruf einfach die fehlerhafte Konfiguration korrigiert.
Nein, ausgeschlossen...
Wenn ich ein normales Programm erstelle (Kein Service) und ich die ADO-Connection mit den im
Service genutzten ConnectionString sich verbinden lasse funktioniert es.
Und ja, die beiden Einstellungen beider Objekte sind vollkommen identisch... einziger Unterschied liegt darin das
die eine ADO-Connection im Service erzeugt wird und die andere in einem normalen Programm

Zitat:
Und wenn der Chef sagt: "Spring aus dem Fenster" dann machst du das auch?
-> Nein

Zitat:
Solche nicht mehr zeitgemäßen Vorgaben sollte man auch mal hinterfragen.
-> Habe ich...
Aber das lass mal meine sorge sein
Denn das ist ja im Moment nicht Sinn meiner Fragestellung wenn ich das mal so einwerfen darf ^^
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: TADOConnection mit SystemDSN? Problem...

  Alt 11. Aug 2010, 15:01
Und ja, die beiden Einstellungen beider Objekte sind vollkommen identisch... einziger Unterschied liegt darin das
die eine ADO-Connection im Service erzeugt wird und die andere in einem normalen Programm
Sollte zwar ander Fehlermeldung kommen, aber schreib mal in deinem Service ein CoInitialize(nil);
Windows Vista - Eine neue Erfahrung in Fehlern.

Geändert von Bernhard Geyer (11. Aug 2010 um 15:11 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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