Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL SUM - Unbekannter Fehler (https://www.delphipraxis.net/201993-sql-sum-unbekannter-fehler.html)

Alter Mann 17. Sep 2019 13:37

Datenbank: MS Access • Version: 2003 • Zugriff über: OLEDB.4.0

SQL SUM - Unbekannter Fehler
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich möchte eigentlich nur die Anzahl aller Werte addieren wenn sie der Vorgabe entsprechen.
(Die Tabelle mit ein paar Dummy-Werten im Anhang)

Delphi-Quellcode:
function TWotFS.GetResult(const Value : Integer) :Integer;
var
  Q : TADODataSet;
  S : String;
  I : Integer;
begin
  Q := TADODataSet.Create(Self);
  try
    I := GetLastIdx('TabSession');
    S := Format('Select SUM(Result) As Ret From TabStatistic Where ((Session=%s) and (Result=%s))', [IntToStr(I), IntToStr(Value)]);
    Q.Connection := ADOConn;
    Q.CommandText:= S;
    Q.Open;
    Result := Q.FieldByName('Ret').AsInteger;
    Q.Close;
  finally
    Q.Free;
  end;
end;
Doch leider kommt es bei Q.Open zu einer Exception = 'Unbekannter Fehler'.
Eine Abfrage des generierten SQL-Strings in MS Access bringt das gewünschte Ergebnis:
Code:
'Select SUM(Result) As Ret From TabStatistic Where ((Session=1) and (Result=1))' = 2.
Was läuft da schief?

jobo 17. Sep 2019 13:42

AW: SQL SUM - Unbekannter Fehler
 
Warum IntToStr, wenn es (Ganz)Zahlen sind?
Die Abfrage sieht richtig aus, kann mir höchstens vorstellen, dass Deine Parameter nicht so befüllt sind, wie Du glaubst, besonders die Tabindexsache.

probehalber mal feste Werte eintragen, ohne Format.

hoika 17. Sep 2019 13:52

AW: SQL SUM - Unbekannter Fehler
 
Hallo,
was kommt bei
Select * From TabStatistic

Auch unbekannter Fehler?
Dann stimmt deine Connection nicht.

Alter Mann 17. Sep 2019 14:07

AW: SQL SUM - Unbekannter Fehler
 
Solche Sachen wie
Code:
'Select * From TabStatistic'
laufen durch,
Code:
'Select SUM(Result) As Ret From TabStatistic Where ((Session=1) and (Result=1))'
aber nicht. Es kommt wieder 'Unbekannter Fehler'.

jobo 17. Sep 2019 14:25

AW: SQL SUM - Unbekannter Fehler
 
Falls Du den SQL Text irgendwie per Copy / Paste in den Code geschaufelt hast:
Nimm ihn raus und tipp ihn noch mal ein.

Vielleicht gibt es auch ein Problem mit Namensfeldern der Tabelle, die besondere Zeichen enthalten, dann müssten bei Access glaub ich diese eckigen Klammern drum..

hoika 17. Sep 2019 14:42

AW: SQL SUM - Unbekannter Fehler
 
Hallo,
dann schrittweise den Fehler "einkreisen".

Select * From TabStatistic // hattest Du bereits
Select SUM(Result) From TabStatistic
Select SUM(Result) As Ret From TabStatistic

usw.

ghubi01 17. Sep 2019 14:50

AW: SQL SUM - Unbekannter Fehler
 
Hallo,

@Alter Mann
Der Feldname 'Session' ist das Problem.
Selbst der einfache SQL-Befehl 'Select * From TabStatistic Where Session=1;' ergibt einen unbekannten Fehler.
Frag mich nicht warum. Ich arbeite schon sehr lange nicht mehr mit Access.

Ändere ihn mal ab in z.B. 'ASession'.
Damit hat Dein Beispiel hier bei mir funktioniert.
Getestet habe ich mit mit Access 2000 und Delphi 7 (Hab ich noch auf einen alten XP-Rechner).:-D

DeddyH 17. Sep 2019 14:56

AW: SQL SUM - Unbekannter Fehler
 
Wenn es daran liegt, sollte
SQL-Code:
Select
  SUM(Result) As Ret
From
  TabStatistic
Where
  (([Session]=1) and (Result=1))
doch auch funktionieren, oder?

ghubi01 17. Sep 2019 15:01

AW: SQL SUM - Unbekannter Fehler
 
Hallo,

@DeddyH

ja das funktioniert auch (hab es gerade getestet).
Wie gesagt ich habe sehr lange nicht mehr mit Access gearbeitet.:|

ghubi01 17. Sep 2019 16:12

AW: SQL SUM - Unbekannter Fehler
 
Hallo,

Nachtrag:
Ich hab hierzu mal ein bisschen gegoogled. Das erklärt vielleicht warum es mit dem Feldnamen 'Session' Probleme gibt.

https://support.office.com/de-de/art...__toc262648755

.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr.
Seite 1 von 2  1 2      

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