![]() |
Datenbank: FireDAC • Version: 1 • Zugriff über: Query
Zugriff auf Memtable über Query
Hallo zusammen,
ich habe ein Programm welches mit FD MemTables arbeitet. Nun möchte ich über eine Funktion auf die Tabelle zuzugreifen um Summen zu ermitteln Select Sum (Amount) As Total from FDMemPosition Where FromWarehouseID = '+ QuotedStr(Warehouse) + ' And ArtNo = '+QuotedStr(ArtNo) Ist sowas überhaupt möglich? Falls Ja, wie lautet denn der Name der Tabelle? In der Komponente der MemTable habe ich keinen Tabellennamen gefunden oder geht so was gar nicht. |
AW: Zugriff auf Memtable über Query
Ja man kann das machen
dafür benötigt man eine SQLite Connection (Intern arbeitet LocalSQL mit SQLite) und ein TFDLocalSQL z.B.: AConnectionLocalSQL := TFDConnection.Create(Application); AConnectionLocalSQL.ConnectionName := 'MEMORY'; AConnectionLocalSQL.Params.Values['DriverID'] := 'SQLite'; AConnectionLocalSQL.LoginPrompt := False; AConnectionLocalSQL.Connected := True; ALocalSQL := TFDLocalSQL.Create(Application); ALocalSQL.Connection := AConnectionLocalSQL; ALocalSQL.Active := True; //jede Memorytabelle muss dann registriert werden ALocalSQL.DataSets.Add.DataSet:=MyDataSet; Zugriff innerhalb des SQL Ausdruckes dann über den Objektnamen selbst. |
AW: Zugriff auf Memtable über Query
ja oder man benutzt
![]()
Delphi-Quellcode:
with FDMemTable1.Aggregates.Add do begin
Expression := 'sum(sal + bonus)'; Active := True; end; with FDMemTable1.Aggregates.Add do begin Expression := 'sum(sal + bonus)'; IndexName := 'by_deps'; Active := True; end; FDMemTable1.IndexName := 'by_deps'; FDMemTable1.AggregatesActive := True; Label1.Caption := 'Total payments : ' + VarToStr(FDMemTable1.Aggregates[0].Value); Label2.Caption := 'Current department payments : ' + VarToStr(FDMemTable1.Aggregates[1].Value); |
AW: Zugriff auf Memtable über Query
Hallöle...8-)
...aber bitte ohne WITH. :warn: Denkt immer daran... es lesen auch Kinder mit. :stupid::wink: |
AW: Zugriff auf Memtable über Query
Hallo zusammen,
ich habe noch nie mit Aggregates gearbeitet und mir diese eben angeschaut. Ich habe hier eher den Eindruck gewonnen, dass es sehr ähnlich einem berechneten Feld ist UND nicht für die Ermittlung von Daten über mehrere Zeilen hinweg genutzt werden kann. 'Sum (Amount) Where FromWarehouseID = 1 And ArtNo = 99' Ich will ja die Summe aller Werte aus der Spalte Amount ermitteln, wenn gewisse Felder übereinstimmen. In dem obigen Beispiel also WarehouseID und ArtNo. Ist sowas auch möglich? Jeder Versuch ist bisher gescheitert :cry: |
AW: Zugriff auf Memtable über Query
Aggregates in FireDAC sind vermutlich bestimmt was Ähnliches, wie Aggregates oder Window-Functions im DBMS ... drum heißen sie wohl zufällig genauso und machen ausversehn das, wonach sie benannt sind "Zusammenfassen" :angle:
Rate mal was SUM ist. |
AW: Zugriff auf Memtable über Query
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 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 by Thomas Breitkreuz