![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 4.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam taki problem, muszę zrobić w oracl graf, a poźniej za pomocą kursorów zrobić wyszukiwanie drogi w tym grafie (od jednego węzła do drugiego). Do stworzenia grafu uzyłem tabeli słownikowej: Cytat create table miasta (idmiasta int primary key, nazwa varchar(20) not null UNIQUE); a w opisie grafu posłużyłem się indeksami do słownika: Cytat create table graf2 (od int, do int, odleglosc real, waga real, constraint pk Primary key (od, do), constraint fk1 Foreign key (od) References miasta(idmiasta), constraint fk2 Foreign key (do) References miasta(idmiasta) ); i teraz zaczynaja sie schody bo muszę zrobić wyszukiwanie drogi w takim grafie (schemat tego grafu można znaleść pod linkiem: rysunek grafu). Liczby nad nazwą miasta to nr indeksu - idmiasta w tabeli miasta). Póki co stworzyłem tylko jeden kursor, który zwraca nam wartosci, ale tylko pomiędzy dwoma najbliższymi węzłami: Cytat SET SERVEROUTPUT On; declare rec graf2%rowtype; cursor sledz is select * from graf2 where od = 2 and cel = 1; begin open sledz; fetch sledz into rec; while sledz%found loop dbms_output.put_line(sledz%rowcount); dbms_output.put_line(rec.od|| ' ' ||rec.cel|| ' ' ||rec.odleglosc||' '||rec.koszt); fetch sledz into rec; end loop; close sledz; end; Jeśli ktoś ma jakiś pomysł na rozwiązanie tego proglemu to byłbym wdzięczny. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 4.07.2025 - 21:29 |