TQuery Open nie może otworzyć DataSet

0
          with DataModule1.dbqKoksyGodzWP2 do begin
            if Active = TRUE then
              Close;
            Sql.Clear;
            Sql.Add('SELECT * ');
            Sql.Add('FROM dbo.bf2_DataCharge ');
            Sql.Add('WHERE (DateTime >= :od and DateTime < :do) AND (MaterialID LIKE ''Koks%'') ');
            Sql.Add('GROUP BY MaterialID ');
            Sql.Add('ORDER BY MaterialID ');
            ParamByName('od').AsDateTime := godzinaWstecz;
            ParamByName('do').AsDateTime := godzina;
            Open;
          end;

Wykonanie Open wywołuje:
"dbqKoksyGodzWP2: Cannot perform this operation on a closed dataset."
Poza DataBaseName i DataSource wszystkie właściwości dbqKoksyGodzWP2 mają wartości domyślne. Czy coś powinienem ustawić, żeby się pozbyć błędu?

0

Co to za komponent: "dbqKoksyGodzWP2" ??

0
nemomemo napisał(a):

Co to za komponent: "dbqKoksyGodzWP2" ??

TQuery

0

Spróbuj tak:
with DataModule1.dbqKoksyGodzWP2 do begin
Close;
Sql.Clear;
Sql.Add('SELECT * ');
Sql.Add('FROM dbo.bf2_DataCharge ');
Open;
end;

Jak nic to nie da to pokaż cały kod.

0

Dało radę. Pomijając fakt, że nie jest to zbiór rekordów, który mnie interesuje, zapytanie które zasugerowałeś zwraca 209 rekordów (RecordCount) a tabela ma prawie 80 tyś...

1

Podoklejaj teraz po kolei warunki i zobacz w którym ewentualnie miejscu się wykrzacza.

0

Po problemie. Zła składnia zapytania SQL. Niepotrzebnie wsadziłem klauzulę GROUP BY, której w zasadzie nie potrzebuję. Po jej wywaleniu działa ok. Dzięki za pomoc +1 :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1