![]() |
Datenbank: MS-SQL • Version: 2000 • Zugriff über: dbExpress (genau das ist das Problem)
Zugriff auf MS-SQL Datenbank
Hallo zusammen,
ich verwende das Borland Developer Studio 2006 und versuche vergebens mit dem Data Explorer eine Verbindung zu einer MS-SQL 2000 (MSDE) Datenbank herzustellen. Jetzt muss doch die Verbindung entweder über BDP oder dbExpress erfolgen. Aber jedes mal, wenn ich die entsprechende Verbindung konfiguriere (Connections Editor) kommt eine Fehlermeldung: SQL Server existiert nicht oder Zugriff verweigert. Ich habe alle möglichen Konstellationen ausprobiert... ratlos! Was genau muss denn bei den Connection Settings stehen? Oder anders gefragt: Könnte vielleicht jemand, der einen funktionierenden Zugriff auf eine MS-SQL Datenbank hat einen Auszug aus der dbxconnections.ini posten? Der sollte dann so ähnlich aussehen wie dieser: [MSSQLConnection] DriverName=MSSQL (was muss hier stehen?) HostName=ServerName (und hier?) DataBase=Database Name (und hier?) User_Name=user (will ich gar nicht wissen) Password=password (will ich auch nicht wissen) BlobSize=-1 ErrorResourceFile= LocaleCode=0000 MSSQL TransIsolation=ReadCommited OS Authentication=False Prepare SQL=False PS: Das Developer Studio ist komplett installiert, eine Firewall stört nicht und die Datenbank existiert wirklich Grüße, Karsten |
Re: Zugriff auf MS-SQL Datenbank
Zitat:
Du musst dich beim SQL-Server anlenden. Entweder über eine SQL-Server Anmeldung oder über Windows Authentifizierung. Für die OS Authentification muss dein aktuelles Benutzerkonto Zugriffsrechte auf den SQL-Server haben. Die SQL-Server Authentifizierung kann u.U. beim SQL-Server deaktiviert sein. Falls Sie aktiv ist, muss ein Anmeldename + Kennwort für einen existierendes SQL-Server Login existieren. Kommst du über andere Wege auf den Server ? [Edit] Ich habe nur die Explorer Edition (die ich derzeit auch nicht wirklich verwende). Irgendwie kann ich keine Einträge unter dem BDP erzeugen und dein Problem nachstellen. Klappt es denn, wenn du dir eine TAdoConnection auf das Formular ziehst und mit dieser eine Vervindung zur DB aufbaust ? Wenn nicht, dann überprüfe die Art der Anmeldung (SQL oder Windows), die SQL-Server Berechtigungen und ob auf dem SQL-Server die Zugriffsprotokolle (TCP/IP bzw. Named Pipes) aktiv sind und ob der SQL-Server einen Remote-Zugriff zulässt. [/Edit] |
Re: Zugriff auf MS-SQL Datenbank
Herzlich willkommen in der Delphi-PRAXiS, Karsten.
Zwei Dinge müssen bei dir zusammenspielen: Die Konfigurationsdatei für das MSDE-Setup (MSDE.INI) und die Einstellungen deiner SQLConnection-Komponente.
Code:
Wenn du jetzt eine SQLConnection auf deine Form packst und dort den ConnectionName auf Test und LoginPrompt auf False setzt, dann solltest du schon zur Entwurfszeit problemlos eine Verbindung erhalten, indem du Connected auf True setzt.
# Inhalt der Datei
# MSDE.INI [Options] saPwd=gohome disableNetworkProtocols=0 securityMode=sql dataDir=C:\Daten\ targetDir=C:\Programme\ # Inhalt der Datei # %CommonProgramFiles%\Borland Shared\DBExpress\dbxconnections.ini [Test] DriverName=MSSQL HostName=majestix DataBase=testdb User_Name=sa Password=gohome BlobSize=-1 ErrorResourceFile= LocaleCode=0000 MSSQL TransIsolation=ReadCommited OS Authentication=False Freundliche Grüße vom marabu |
Re: Zugriff auf MS-SQL Datenbank
Ähm, OK... aus irgendeinem Grund habe ich gar keine MSDE.INI
Versteh ich aber nicht ganz, weil der Dienst (also die Instanz) läuft... Installiert habe ich die MSDE so: setup INSTANCENAME="SQL2000" SECURITYMODE=SQL SAPWD="AStrongSAPwd" Oder ist die MSDE.INI optional? Kann aber doch auch nicht sein, weil irgendwo muss doch entweder das SA-Kennwort stehen oder der Hinweis darauf, dass Windows-Authentifizierung verwendet werden soll. Hmm... |
Re: Zugriff auf MS-SQL Datenbank
Dein Hostname ist schonmal <RechnerName>/SQL2000 da du eine benamste Instanz hast.
|
Re: Zugriff auf MS-SQL Datenbank
Hallo Karsten,
das mag schon sein, dass du keine MSDE.INI hast. Lies doch mal die HTML-Seite zur MSDE-Installation (kommt mit dem Setup auf deine Platte) genau durch. Am Ende kommst du drauf, dass du vielleicht nochmal mit INI-Datei neu installierst. Für mich hat das den Vorteil, dass die Installationsparameter dokumentiert sind und ich die INI-Datei auch an andere weitergeben kann. Freundliche Grüße |
Re: Zugriff auf MS-SQL Datenbank
Also so wie das hier beschrieben ist, ist alles nachvollziehbar. Aber wie installiert man den benötigten dbexpress-Treiber, bzw. wo gibt es den oder muss man dll-Bibliotheken angeben?
|
Re: Zugriff auf MS-SQL Datenbank
Die dbExpress-Treiber sollte bei Delphi dabei sein.
|
Re: Zugriff auf MS-SQL Datenbank
MSSQL wird bei TSQLConnection nicht aufgeführt und in der dbxDrivers.ini auch nicht.
|
Re: Zugriff auf MS-SQL Datenbank
Bei mir schon, habe aber kein Turbo Delphi. Da scheint dann wohl doch eine Beschränkung vorzuliegen.
|
Re: Zugriff auf MS-SQL Datenbank
Und was genau fehlt jetzt in den ini-Dateien und an Dateien?
|
Re: Zugriff auf MS-SQL Datenbank
Ich vermute mal der dbExpress-Treiber an sich fehlt.
|
Re: Zugriff auf MS-SQL Datenbank
Also kann man nicht selber die inis erweitern weil auch die Funktionen fehlen? Mal abgesehen von den libs.
|
Re: Zugriff auf MS-SQL Datenbank
Ohne die Treiber wird nichts gehen
|
Re: Zugriff auf MS-SQL Datenbank
Wie muss man die TSQLConnection-Komponenten konfigurieren um über ODBC auf die z.B. Adventureworks-Datenbank zugreifen zu können?
Hier: ![]() |
Re: Zugriff auf MS-SQL Datenbank
dbExpress != Odbc
|
Re: Zugriff auf MS-SQL Datenbank
Mit der TSQLConnection-Komponente kann man eine Verbindung zu einer MS SQL-Datenbank herstellen.
So gehts: 1. Den ODBC-Treiber für dbexpress runterladen ![]() 2. dbexpodbc.dll in das Projektverzeichniss oder in das System32-Verzeichniss von Windows kopieren 3. Eine ODBC-Verbindung vom Typ Sql Server im ODBC-Datenquellen-Administrator erstellen z.B. mit dem Namen MyCon 4. Eine TSQLConnection-Komponente auf das Formular platzieren 5. In die Textansicht des Formulars wechseln Es sollte ungefähr so aussehen: object SQLConnection1: TSQLConnection ConnectionName = 'MyCon' DriverName = 'NoName' GetDriverFunc = 'getSQLDriverODBC' LibraryName = 'dbexpodbc.dll' LoginPrompt = False Params.Strings = ( 'Database=Driver={SQL Server};Server=MyPc;Database=Adv' + 'entureWorks;'#13#10) VendorLib = 'noname.dll' Connected = True Left = 200 Top = 104 Das wärs auch schon. Mit einer TSQLQuery-Komponente kann man das ganze testen und auch benutzen. Das folgende Beispiel bezieht sich auf die Aventureworks-Datenbank, die aber auch eine andere sein kann wie zum Beispiel Northwind 1. In SQL folgendes Eintragen: SELECT * FROM Sales.Customer 2. Ein Doppelklick auf Query-Komponente oder ein Rechts-Klick und auf Feld-Editor klicken Jetzt müssten Die Spalten der Tabelle von Sales.Customer als Felder angezeigt werden. An der Stelle möchte ich noch mal auf den Beitrag mODBC verweisen, wenn jemand das zum laufen bekommt schreibt das in den Beitrag: ![]() Viel Spaß damit :-D |
Re: Zugriff auf MS-SQL Datenbank
Aberwarum muss es unbedingt ODBC sein?
|
Re: Zugriff auf MS-SQL Datenbank
Ja mkinzler mir ist klar das man das viel leichter und besser über die ADO-Komponente lösen kann, aber es ist eine Aufgabe die mir gestellt wurde, eine Datenbank über ODBC anzusprechen. Was jetzt auch endlich funktioniert.
|
Re: Zugriff auf MS-SQL Datenbank
Guten Morgen.
Gestern hatte ich noch mit einer weiteren Komponente rumexperemntiert, doch es will nicht so richtig klappen. ![]() Ich habe alles nach Anleitung gemacht und die ini-Dateien ergänzt, aber es kommt immer die gleiche Fehlermeldung: [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben Params hatte folgenden Wert: DriverName=openodbc Database=DSN=DELL4YOU;DB=adventureworks |
Re: Zugriff auf MS-SQL Datenbank
So über Lazarus gehts auch. Da gibt es sogar eine TODBC-Klasse. :-D
|
Re: Zugriff auf MS-SQL Datenbank
Hi ich bins mal wieder.
Für Delphi und Lazarus gibt es noch eine Bibliothek mit Komponenten, die mit Delphi, Kylix und Lazarus zusammen arbeitet. Ich habs unter Lazarus installiert und getestet mit dem Ergebnis, das man sich zu einer MySQL-Datenbank verbinden kann, aber nicht zu einer MS-SQL-Datenbank über ODBC. Hat das schon einer getestet bzw. verwendet, wenn ja was muss man da einstellen in der ODBC-Komponente? Die Datenbank bei mir ist lokal. Hier gibt es die Bibliothek: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:37 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 by Thomas Breitkreuz