ďťż
 
Problem z procedurą ďťż
 
Problem z procedurą
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Problem z procedurą



zk12tor@interia.pl - 10-09-2006 01:03
Problem z procedurą
  Witam wszystkich

Mam tabelę wynik z kilkoma polami m.in. data, czas i profil. Tabela
umieszczona jest na serwerze Firebird. Stworzyłem procedurę:

SET TERM ^ ;
CREATE PROCEDURE ustaw_profil AS
declare variable u_data varchar(10) ;
declare variable u_czas varchar(8) ;
declare variable u_profil integer ;
BEGIN
FOR
SELECT data,czas FROM wynik WHERE czas < '05:00:00' INTO
:u_data,:u_czas
DO
begin
UPDATE wynik SET profil = 1 Where (data = :u_data) and (czas =
:u_czas);
end
END ^
SET TERM ; ^
COMMIT WORK;

Procedura kompiluje się prawidłowo, ale po:
execute procedure ustaw_profil
otrzymuję komunikat "Problem in BindingCursor". Co robię nie tak?

Zdaję sobie sprawę, że procedura po kolei do każdego rekordu w pole
profil wpisze 1. Później wyrażenie "UPDATE wynik SET profil = 1 ..."
zmienię na "UPDATE wynik SET profil = cośtam ....".
Z góry dziękuję za wyjaśnienie.





Misiekd - 11-09-2006 00:36

  Dnia 9 Sep 2006 12:56:11 -0700, zk12tor@interia.pl napisał(a):

eee a nie prościej

UPDATE wynik SET profil = 1 Where czas < '05:00:00'

--
Pozdrawiam Misiekd




zk12tor@interia.pl - 11-09-2006 00:36

  Jak wspomniałem na końcu:

"Zdaję sobie sprawę, że procedura po kolei do każdego rekordu w
pole
profil wpisze 1. Później wyrażenie "UPDATE wynik SET profil = 1 ..."

zmienię na "UPDATE wynik SET profil = cośtam ...."."

czyli pole profil docelowo będzie przybierało różne wartości
zależne od innych pól danego rekordu. Dlatego muszę zrobić to
rekord po rekordzie. No chyba, że jest jakaś inna metoda.
Generalnie w tabeli są pola data,czas,numer,profil,stawka,koszt.
Pierwsze trzy pola są tworzone przez jakiś program. Po miesiącu
muszę na podstawie tych trzech pól obliczyć pole koszt. Do tego
służą mi pola pomocnicze profil i stawka.
Obliczenie kosztu potrafię wykonać ale z użyciem programu
klienckiego (w Delphi), w którym rekord po rekordzie pobieram datę,
czas i numer, wyliczam kwotę i na końcu Update rekordu. Spodziewam
się min. 5mln rekordów i dlatego chcę przenieść tę operację na
serwer.

Jeżeli ktoś zechce mi coś podpowiedzieć to będę wdzięczny.




Artur Muszynski - 11-09-2006 00:36

  ....
> Obliczenie kosztu potrafię wykonać ale z użyciem programu
> klienckiego (w Delphi), w którym rekord po rekordzie pobieram datę,
> czas i numer, wyliczam kwotę i na końcu Update rekordu. Spodziewam
> się min. 5mln rekordów i dlatego chcę przenieść tę operację na
> serwer.

W ten sposób to na efekt się nie doczekasz w rozsądnym czasie. Może BULK
INSERT albo INSERT FROM OPENXML, ale ja bym jednak posiedział nad
przerzuceniem tego algorytmu z Delphi do czegoś strawnego dla SQL.

artur
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= mysql i mysql-front, problem String line; if (line=="cos"){...}....problem Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?= [postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?= [oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?= Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ] [PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ? [MySQL] Problem z zapisem danych w bazie danych Problem z mysql - can't connect to MySQL/nietypowo...
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • kfia-tek.keep.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com