Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird - externe Stored Procedure mit Zeilenrückgabe (https://www.delphipraxis.net/98606-firebird-externe-stored-procedure-mit-zeilenrueckgabe.html)

omata 29. Aug 2007 20:01

Datenbank: Firebird embedded • Version: 2 • Zugriff über: Zeos 6.6.1

Firebird - externe Stored Procedure mit Zeilenrückgabe
 
Hallo,

ich möchte gern eine Funktionalität in Firebird nachbilden, die zur Zeit in einer MsSQL2000-DB läuft.

In MsSQL kann man ja über xp_cmdshell DOS-Befehle ausführen...
Code:
  SELECT @s = 'dir/s/b ' + @pfad
  INSERT INTO #temp EXEC master.dbo.xp_cmdshell @s
Das Ergebnis, also die Datei-Pfade, werden dann in eine temporäre Tabelle geschrieben.

Dieses Vorgehen hat den Vorteil das ein Dateivergleich (welche Datei ist neu, welche ist nicht mehr vorhanden) von ~2 Stunden auf ~2 Minuten reduziert werden konnte.
Ist soetwas auch mit Firebird möglich? Ich könnte ja die CMD-Befehlsverarbeitung auch in eine Delphi-Dll packen, aber wie bekomme ich die Zeilen der Verarbeitung dann wieder in die Firebird-DB?

Ich möchte also eine externe UDF schreiben, die eine Tabelle zurückgibt. Ist soetwas oder etwas ähnliches, das mein Problem löst, möglich?

Gruss
Thorsten

mkinzler 29. Aug 2007 20:11

Re: Firebird - externe Stored Procedure mit Zeilenrückgabe
 
Statt einer UDF würde ich es mit einem einem EXECUTE BLOCK versuchen.
Man könntes es mit einer EXTERNAL FILE versuchen.

omata 29. Aug 2007 20:20

Re: Firebird - externe Stored Procedure mit Zeilenrückgabe
 
Hallo mkinzler,

über EXTERNAL FILE bin ich auch gerade gestolpert. Ich weiss nur nicht ob ich die Datei auch während die DB läuft verändern darf. Was du allerdings für einen Vorteil in EXECUTE BLOCK siehst, erschliesst sich mir noch nicht.

Gruss
Thorsten

mkinzler 29. Aug 2007 20:25

Re: Firebird - externe Stored Procedure mit Zeilenrückgabe
 
Zitat:

ich weiss nur nicht ob ich die Datei auch während die DB läuft verändern darf.
Nur select und insert
Zitat:

Was du allerdings für einen Vorteil in EXECUTE BLOCK siehst, erschliesst sich mir noch nicht.
Man kann die Abfrage zur Laufzeit erzeugen.

omata 29. Aug 2007 20:30

Re: Firebird - externe Stored Procedure mit Zeilenrückgabe
 
Zitat:

Zitat von mkinzler
Zitat:

ich weiss nur nicht ob ich die Datei auch während die DB läuft verändern darf.
Nur select und insert

ja auf der Tabelle aus DB-Sicht. Ich hatte da jetzt etwas gemeiner gedacht, nämlich von außen.

Zitat:

Zitat von mkinzler
Zitat:

Was du allerdings für einen Vorteil in EXECUTE BLOCK siehst, erschliesst sich mir noch nicht.
Man kann die Abfrage zur Laufzeit erzeugen.

ja eine SQL-Abfrage. DOS-Befehle ausführen gehört aber ja nicht zum Umfang.

mkinzler 29. Aug 2007 20:32

Re: Firebird - externe Stored Procedure mit Zeilenrückgabe
 
Artikel für das externe erzeugen von external files für FB
http://www.firebirdsql.org/index.php...eful&id=netzka


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:55 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