AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Logische Datenbank Name
Thema durchsuchen
Ansicht
Themen-Optionen

Logische Datenbank Name

Ein Thema von Gregorius · begonnen am 14. Nov 2008 · letzter Beitrag vom 16. Nov 2008
Antwort Antwort
Gregorius

Registriert seit: 14. Nov 2008
4 Beiträge
 
#1

Logische Datenbank Name

  Alt 14. Nov 2008, 11:33
Datenbank: MsSQL • Zugriff über: odbc
Logische Datenbank Name

Eine Abfrage DIREKT auf dem SQL-Server (MsSQL)

Wie

SELECT FILE_NAME (1) as DataBaseName Oder
SELECT name from sysfiles where fileid = 1 liefert als Antwort logischen Datenbank-Name.


Leider funktioniert diese Abfrage im Delphi Program wo ich per TQuery den logischen Namen abfragen möchte nicht. Solche TQuery mit dem SQL-Text:

SELECT name from sysfiles where fileid = 1 liefert kein Ergebnis.

Ich benutze BDE /ODBC.

Wie kann ich per TQuery Abfrage den logischen Datenbank Namen erfahren?
Wohl gemerkt ist das nicht zwingend der gleiche Datenbank- Name wie auf dem SQL-Server in dem Zweig

Datenbanken sichtbar ist. Erstellt man z.B. eine Datenbank mit dem Namen XXX und spielt „drüber“ ein Backup YYY wird der logische Name von dem Backup übernommen.

.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Logische Datenbank Name

  Alt 14. Nov 2008, 12:02
Ich Tipp mal darauf das die BDE die Ergebnisspalte nicht erkennt oder über ODBC die Spalte nicht übertragen wird(Ok, ich sag jetzt nix das man die BDE nicht verwenden sollte ).
Hast du es mit ADOExpress/dbGo und TAdoQuery probiert was dort passiert?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Gregorius

Registriert seit: 14. Nov 2008
4 Beiträge
 
#3

Re: Logische Datenbank Name

  Alt 14. Nov 2008, 12:16
Ich muss TQuery benutzen. Ich habe gehofft, dass man es aus irgendeinen anderen System-Tabelle abfragen kann.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

Re: Logische Datenbank Name

  Alt 14. Nov 2008, 13:10
Hallo,

mach über die BDE mal einSELECT * from sysfiles where fileid = 1 und Du wirst feststellen, die Tabelle hat garkeine Spalte Name (für die BDE). Da wird irgendwas "unterwegs" gemappet oder so, dass bei der BDE nicht ankommt. Über Ado klappt das ja.
Wobei: Der Zugriff auf die Systemtabellen im Information_Schema ist über die BDE auch nicht (zwingend) möglich. Möchte hier nicht ausschließen, dass die Datenbank Feldtypen verwendet, die von der BDE nicht unterstützt werden.

Das ist zwar ägerlich, aber nicht hoffnungslos

So geht's auch über die BDE:

SELECT cast(name as Varchar(80)) from sysfiles
  Mit Zitat antworten Zitat
Gregorius

Registriert seit: 14. Nov 2008
4 Beiträge
 
#5

Re: Logische Datenbank Name

  Alt 14. Nov 2008, 13:46
Du bist ein Genie !!!

Super, morgen werde ich es ausprobieren, aber das sieht sehr gut aus (warum komme ich seblst nicht auf solche Idee?, hahahaha)

Also, Danke
  Mit Zitat antworten Zitat
tomsson74

Registriert seit: 8. Jan 2008
73 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Logische Datenbank Name

  Alt 14. Nov 2008, 14:04
Wenn mich nicht alles täuscht sind die Systemtabellen beim SQL-Server einem anderen Schema zugeordnet (sys).

Würde denn eventuell sowas funktionieren ?


SELECT name from sys.sysfiles where fileid = 1 /Thomas
  Mit Zitat antworten Zitat
Gregorius

Registriert seit: 14. Nov 2008
4 Beiträge
 
#7

Re: Logische Datenbank Name

  Alt 14. Nov 2008, 14:40
Das habe ich schon natürlich vorher ausprobiert (mit dem SYS.)

Funktioniert leider nicht
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Logische Datenbank Name

  Alt 14. Nov 2008, 14:46
Ja, die BDE ist doch was Dolles
Ich würde hier eher ADO verwenden
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Logische Datenbank Name

  Alt 16. Nov 2008, 22:41
Zitat von mkinzler:
Ja, die BDE ist doch was Dolles
Ich würde hier eher ADO verwenden
Aber nein. Nicht wieder einer dieser der nicht lesen kann. Der Fragesteller hat doch geschrieben: "Ich muss TQuery benutzen". Und wir sollten Ihn hier helfen und nicht wieder diese Diskussion über ein totes System führen das manch einer nicht loslasen will

@Fragesteller: WIESO muss die BDE verwendet werden? ist dem Fragesteller klar das die BDE schon längst keine Aktive Entwicklung mehr erfährt und eigentlich schon mit D2009 entgültig sterben sollte?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:33 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