Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zugriff auf MS-SQL Datenbank (https://www.delphipraxis.net/83330-zugriff-auf-ms-sql-datenbank.html)

kmalmer 31. Dez 2006 01:43

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

jensw_2000 31. Dez 2006 02:14

Re: Zugriff auf MS-SQL Datenbank
 
Zitat:

Zitat von kmalmer
[MSSQLConnection]
User_Name=user (will ich gar nicht wissen)
Password=password (will ich auch nicht wissen)
OS Authentication=False

Hier sollte der Fehler liegen.
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]

marabu 31. Dez 2006 10:49

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:
# 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
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.

Freundliche Grüße vom marabu

kmalmer 31. Dez 2006 13:36

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...

Bernhard Geyer 31. Dez 2006 15:46

Re: Zugriff auf MS-SQL Datenbank
 
Dein Hostname ist schonmal <RechnerName>/SQL2000 da du eine benamste Instanz hast.

marabu 31. Dez 2006 16:00

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

Painterxyz 26. Nov 2007 10:34

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?

mkinzler 26. Nov 2007 10:38

Re: Zugriff auf MS-SQL Datenbank
 
Die dbExpress-Treiber sollte bei Delphi dabei sein.

Painterxyz 26. Nov 2007 10:42

Re: Zugriff auf MS-SQL Datenbank
 
MSSQL wird bei TSQLConnection nicht aufgeführt und in der dbxDrivers.ini auch nicht.

mkinzler 26. Nov 2007 10:49

Re: Zugriff auf MS-SQL Datenbank
 
Bei mir schon, habe aber kein Turbo Delphi. Da scheint dann wohl doch eine Beschränkung vorzuliegen.

Painterxyz 26. Nov 2007 10:53

Re: Zugriff auf MS-SQL Datenbank
 
Und was genau fehlt jetzt in den ini-Dateien und an Dateien?

mkinzler 26. Nov 2007 10:59

Re: Zugriff auf MS-SQL Datenbank
 
Ich vermute mal der dbExpress-Treiber an sich fehlt.

Painterxyz 26. Nov 2007 11:04

Re: Zugriff auf MS-SQL Datenbank
 
Also kann man nicht selber die inis erweitern weil auch die Funktionen fehlen? Mal abgesehen von den libs.

mkinzler 26. Nov 2007 11:09

Re: Zugriff auf MS-SQL Datenbank
 
Ohne die Treiber wird nichts gehen

Painterxyz 26. Nov 2007 11:21

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: http://www.delphipraxis.net/internal...ct.php?t=45280, steht eine Beispiel-Konfiguration, aber dieser Treiber fehlt auch.

mkinzler 26. Nov 2007 11:22

Re: Zugriff auf MS-SQL Datenbank
 
dbExpress != Odbc

Painterxyz 26. Nov 2007 13:19

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 http://islamov.com/dbexpress/downloads.html
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: http://www.delphipraxis.net/internal...t.php?t=123486

Viel Spaß damit :-D

mkinzler 26. Nov 2007 13:20

Re: Zugriff auf MS-SQL Datenbank
 
Aberwarum muss es unbedingt ODBC sein?

Painterxyz 26. Nov 2007 13:27

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.

Painterxyz 27. Nov 2007 09:44

Re: Zugriff auf MS-SQL Datenbank
 
Guten Morgen.

Gestern hatte ich noch mit einer weiteren Komponente rumexperemntiert, doch es will nicht so richtig klappen.

http://sourceforge.net/projects/open-dbexpress/

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

Painterxyz 27. Nov 2007 16:31

Re: Zugriff auf MS-SQL Datenbank
 
So über Lazarus gehts auch. Da gibt es sogar eine TODBC-Klasse. :-D

Painterxyz 1. Dez 2007 15:08

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:
http://sourceforge.net/projects/libsql/


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