AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird on external

Ein Thema von Dumpfbacke · begonnen am 15. Okt 2015 · letzter Beitrag vom 15. Okt 2015
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: Firebird on external

  Alt 15. Okt 2015, 07:43
Du hast halt ein EXECUTE STATEMENT. Parameter kannst du hier nicht verwenden, aber das Statement selbst ist ja nur ein String.
Also kannst du sowas machen wie:

Code:
FOR EXECUTE STATEMENT 'SELECT * FROM lager WHERE lager.warenart = ''' || :warenart || '''' ON ...
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.395 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Firebird on external

  Alt 15. Okt 2015, 07:53
warum muss das unbedingt über eine Abfrage laufen? Frag doch beide DBs getrennt ab und führe das Ergebnis in deiner Client-Anwendung zu einem Resultset zusammen....
  Mit Zitat antworten Zitat
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
335 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Firebird on external

  Alt 15. Okt 2015, 09:16
warum muss das unbedingt über eine Abfrage laufen? Frag doch beide DBs getrennt ab und führe das Ergebnis in deiner Client-Anwendung zu einem Resultset zusammen....
Ich wolte es gene mit einem Select machen. Die Auswertung der ersten Dantenbak ergibt ca. 460 Datensätze. Somit müsste ich dann 460 Select auf die zweit DB jagen und das wollte ich sparen. Ansonsten muss ich halt auf die Version 3 warten hier sollte zumindest nach eine Aussage von einiger Zeit eine Join zwischen zwei Datenbanken möglich sein. Als alternative könnte ich mir noch eine UDF erstellen. Das muss ich mir noch mal durch den Kopf gehen lassen.
Tanja
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Firebird on external

  Alt 15. Okt 2015, 09:29
Hallo,

hier der Link zur Firebird-FAQ:http://www.firebirdfaq.org/faq16/

Steht im Grunde auch nur das drin, was im ersten Posting schon als Beispiel genannt wurde, von daher scheint das auch der Weg zu sein (zumindest in Version 2.5).

Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.395 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Firebird on external

  Alt 15. Okt 2015, 09:33
warum muss das unbedingt über eine Abfrage laufen? Frag doch beide DBs getrennt ab und führe das Ergebnis in deiner Client-Anwendung zu einem Resultset zusammen....
Ich wolte es gene mit einem Select machen. Die Auswertung der ersten Dantenbak ergibt ca. 460 Datensätze. Somit müsste ich dann 460 Select auf die zweit DB jagen und das wollte ich sparen. Ansonsten muss ich halt auf die Version 3 warten hier sollte zumindest nach eine Aussage von einiger Zeit eine Join zwischen zwei Datenbanken möglich sein. Als alternative könnte ich mir noch eine UDF erstellen. Das muss ich mir noch mal durch den Kopf gehen lassen.
warum musst Du 460 Selects auf die zweite DB jagen?

Erste DB auslesen in Klassenstruktur packen, zweite DB auslesen, dazu packen und gut ist... WEnn Du das nicht willst, dann kannst Du auch mit einer InMemorytabelle arbeiten. Gut, wenn das Live-Daten sein sollen, die du verändern willst, würde ich eher wieder ein ORM bemühen...
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
544 Beiträge
 
Delphi 12 Athens
 
#6

AW: Firebird on external

  Alt 15. Okt 2015, 10:03
Es geht auch mit Stored Procedures. Hier mal ein Beispiel, wie aus mehreren Datenbanken Informationen abgerufen und in eine temp. Tabelle geschrieben werden:

Code:
SET TERM ^ ;

CREATE OR ALTER PROCEDURE P_FILIALZAHLART (
    s timestamp,
    p timestamp,
    db varchar(200))
as
declare variable znr integer;
declare variable rsumme numeric(15,4);
begin
    for
    execute statement ('select zahlartnr, sum(Betrag) from kbzahlungen where datum between :s and :p group by zahlartnr')
    (s:=s,p:=p)
    on external data source :db as user 'sysdba' password 'masterkey'
    into :znr,:rsumme do
    begin
      insert into kbzahlungenfilial(zahlartnr,betrag) values(:znr,:rsumme);
    end

end^

SET TERM ; ^
Ralf
Gruß vom Niederrhein
  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 04:00 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