Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Firebird 3.0 (https://www.delphipraxis.net/178262-firebird-3-0-a.html)

Dumpfbacke 12. Jan 2014 16:46

AW: Firebird 3.0
 
Zitat:

Zitat von tsteinmaurer (Beitrag 1243285)
Leider nicht in einem Single-SQL-Statement, sondern via EXECUTE STATEMENT in PSQL. Aber das gibt es schon seit 2.5.


Könntest du mier hierzu ein kleines Beispiel bitte geben wie man so etwas macht ? Man das wäre ja schön wenn es schon mit 2.5 gehen würde.

:thumb: :-D :shock: :P :cyclops:

Danke schon einmla Tanja

tsteinmaurer 12. Jan 2014 18:44

AW: Firebird 3.0
 
http://www.firebirdsql.org/refdocs/l...-execstat.html

Siehe den ON EXTERNAL Abschnitt.

LG

Dumpfbacke 15. Jan 2014 18:47

AW: Firebird 3.0
 
Zitat:

Zitat von tsteinmaurer (Beitrag 1243316)
http://www.firebirdsql.org/refdocs/l...-execstat.html

Siehe den ON EXTERNAL Abschnitt.

LG

Leider verstehe ich hier nichts. Könntest du mir eventuell ein Biespiel liefern ?

Beispiel:
Ich habe zwei Datenbanken mit jewals einer Tabelle. Ich möchte nun ein Select machen um Felder aus beiden Tabellen zu holen welche ich mit einm Left Outer Join verbunden habe.

Wie stelle ich es an das es geht ? Danke sachon einmal Tanja

IBExpert 16. Jan 2014 11:17

AW: Firebird 3.0
 
hier ein beispiel auf Basis der IBExpert Demodb db1.fdb

Code:
execute block
returns
(customer varchar(80),
total numeric(18,2))
as
declare variable customer_id bigint;
begin
  for
    select customer.id, customer.firstname||' '||customer.lastname
    from customer
    into :customer_id,:customer
  do
  begin
    execute statement ('select coalesce(sum(orders.netamount),0) from orders where orders.customer_id=:customer_id') (customer_id:=customer_id)
    on external 'LOCALHOST/3050:C:\db\DB1.FDB'
    as  user 'SYSDBA' password 'masterkey'
      into :total;
    suspend;
  end
end

lowmax_5 16. Jan 2014 12:04

AW: Firebird 3.0
 
Manchmal macht es Sinn, mit dem 'DB-Durchgriff' die gleich gesamte Tabelle in die Datenbank zu holen.
Dann sind 'normale Joins' ohne Weiteres möglich. Man muss halt nur darauf achten, dass die Daten aktuell bleiben...

Lemmy 16. Jan 2014 12:59

AW: Firebird 3.0
 
Zitat:

Zitat von lowmax_5 (Beitrag 1243949)
Manchmal macht es Sinn, mit dem 'DB-Durchgriff' die gleich gesamte Tabelle in die Datenbank zu holen.
Dann sind 'normale Joins' ohne Weiteres möglich. Man muss halt nur darauf achten, dass die Daten aktuell bleiben...

Aktualität könnte man je nach Umfang der Daten ggf. durch eine Temporäre Tabelle erreichen...

Und ein "normaler" Join sollte auch mit dem ExecuteBlock möglich sein, einfach den Aufruf ein eine StoredProcedure packen. Allerdings würde mich an der Stelle immer noch die Performance interessieren... Immerhin kommt ja ein Verbindungsaufbau mit dazu...


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:39 Uhr.
Seite 2 von 2     12   

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