TSQLStoredProc – poprawnie pobiera dane tylko za pierwszym razem

Odpowiedz Nowy wątek
2017-08-11 10:40
Łysy Koń
0

Witam,
Krótkie pytanie, czy ktoś może mi popowiedzieć co robię źle ?

Mam bazę na Oracle 10g, korzystam poprzez dbexpoda40.dll z dostępu do bazy na Delphi 2007. Używając kontrolki standardowej TSQLStoredProc za pierszym razem pobiera poprawnie dane. Za drugim razem już nie: (DM - DataModule)...

begin 
  DM.oTSQLStoreProc.StoredProcName := 'Procka'; 
  DM.oTSQLStoreProc.Params[0] := id;
  DM.oTSQLStoreProc.ExecProc;    ///   1 uruchomienie działa poprawnie - każde kolejne pomięta pierwsze uruchomienie.
  coś tam robi...
 
  DM.oTSQLStoreProc.Close;
end;
edytowany 1x, ostatnio: furious programming, 2017-08-11 14:34

Pozostało 580 znaków

2017-08-11 10:49
0

jeśli SP zwraca kursor to otwarcie powinno następować przez Open albo Active := True a nie ExecProc. Poza tym co znaczy każde kolejne pomięta pierwsze uruchomienie.


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

2017-08-11 10:59
Łysy Koń
0

To znaczy, że pamięta tę samą zawartość - która jest zwrócona po pierwszym uruchomieniu...

ani metoda Open ani Active := true / false; nie działa. Dalej mam w kursorze wynik pierwszego wywołania. W jaki sposób można wyczyścić ten wcześniejszy Kursor SP ?

edytowany 1x, ostatnio: furious programming, 2017-08-11 14:34

Pozostało 580 znaków

2017-08-11 11:14
0

ani metoda Open ani Active := true / false; nie działa.
co znaczy nie działa ?? może w zły sposób odczytujesz sam wynik ??
pokaż kod odczytujący dane, może w nim jest problem

edytowany 1x, ostatnio: grzegorz_so, 2017-08-11 11:15

Pozostało 580 znaków

2017-08-11 11:45
Łysy Koń
0

i znalazłem gada - procedura ma kilka parametrów - jak którykolwiek z wcześniej ustawionych nie zostanie wyzerowany a po drodze procedura ma kilka wariantów uruchomienia, to dlatego zwraca smród a nie to co trzeba...

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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