Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankübergreifende Benutzerdefinierte Funktion (https://www.delphipraxis.net/137937-datenbankuebergreifende-benutzerdefinierte-funktion.html)

DerAndereMicha 31. Jul 2009 12:26

Datenbank: MS SQL Server • Version: 2000 • Zugriff über: ADO

Datenbankübergreifende Benutzerdefinierte Funktion
 
Hallo,

ich habe eine benutzerdefinierte Funktion erstellt und möchte diese in mehreren Datenbanken verwenden. Angelegt habe ich sie aber nur in einer DB. Ich dachte nun, man kann wie bei Tabellen mittels ".." auf diese Fkt. aus anderen DB zugreifen. Leider gelingt mir das mit der üblichen Syntax nicht:

SQL-Code:
SELECT dbname..dbo.function(value)
Hat jemand ne Idee, oder muß ich die Funktion wirklich in jeder DB anlegen, in der ich sie verwenden will?

Gruß
Micha

sx2008 1. Aug 2009 01:17

Re: Datenbankübergreifende Benutzerdefinierte Funktion
 
Du musst einen Verbindungsserver einrichten. (im Enterprise Manager)
Hinter einem Verbindungsserver verbirgt sich der Name des Zielserver, Datenbanktyp, User und Passwort.
Der Name des Verbindungsservers ist üblicherweise gleich dem Namen des Zielservers; ist aber kein Muss.
http://msdn.microsoft.com/de-de/library/ms188279.aspx

DerAndereMicha 3. Aug 2009 07:03

Re: Datenbankübergreifende Benutzerdefinierte Funktion
 
Und was soll mir das bringen? Ich setze schon lange diese Technik ein, um auf andere Datenbanksysteme mittels SQL-Server zuzugreifen. Aber wie soll ich denn bitte mit Hilfe eines Verbindungsservers eine global verfügbare benutzerdefinierte Funktion realisieren? Ich glaube da hast Du meine Frage wohl nicht richtig verstanden.

Gruß
Micha

sx2008 4. Aug 2009 15:47

Re: Datenbankübergreifende Benutzerdefinierte Funktion
 
Zitat:

Zitat von DerAndereMicha
Ich glaube da hast Du meine Frage wohl nicht richtig verstanden.

Scheint wohl so. :oops:

Eine UDF ist doch immer einer bestimmten Datenbank (Schema) zugeordnet.
Also entweder die UDF ist in einer bestimmten Datenbank (z.B. master) und Du
verwendest dann den vollqualifizierten Namen
SQL-Code:
SELECT LinkedServer.master.dbo.function(value)
oder die UDF muss in jeder Datenbank vorhanden sein.

DerAndereMicha 4. Aug 2009 16:08

Re: Datenbankübergreifende Benutzerdefinierte Funktion
 
Danke. Ich stand auf dem Schlauch. Schau Dir mal mein 1.Posting genau an - bei mir war ein Punkt zuviel. Nun gehts perfekt.

Gruß
Micha


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:10 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-2025 by Thomas Breitkreuz