damaflo
14.08.2009, 12:25:11
Witam
Używam firebird'a, na nim działają 2 bazy, (osobne pliki)
Pierwsza baza BAZA.GDB zawiera tabelę NIERUCHOMOSC (między innymi), z unikalnym polem NIERUCHOMOSC.ID
Druga baza OBRAZNY.GDB zawiera tabelę ZDJECIA z polem ZDJECIA.ID, będącym odpowiednikiem NIERUCHOMOSC.ID
Pytanie jak z tabeli ZDJECIA usunąć te rekordy, których ZDJECIA.ID nie ma odpowiednika w tabeli NIERUCHOMOSCI.ID?
Próbowałem znaleźć informację, jak w jednym pytaniu SELECT zawrzeć połaczenia do 2 różnych baz, ale nie znalazłem.
Będę bardzo wdzięczny za pomoc, baza ze djęciami sięga już prawie 2GB i obróbka jej zaczyna mulić sprzęt.
Darek
jmail
14.08.2009, 12:37:41
jeszcze powiedz, że zdjęcia jako bloby do bazy wsadziłeś <lol>
co do połączenia - postaw serwer i połącz się z nim na odpowiednim porcie a nie do pliku

i później już górki JOINEM
damaflo
14.08.2009, 12:51:50
Tak, zdjęcia wsadziłem blobem, problem w tym, że nijak nie mogę zmusić IBExperta do połączenia tabel z dwóch różnych baz :-(
na razie nie mogę się wdrapać na górkę :-)
jmail
14.08.2009, 13:09:11
a no tak. cudowny kochany IBExpert on koniecznie chce pliku ^^
no cóż. co zrobić

spróbuj to
http://www.clevercomponents.com/products/d.../ibdatapump.aspale najpierw obejrzyj ten topic
http://forums.devshed.com/firebird-sql-dev...ses-392083.html
damaflo
14.08.2009, 14:08:54
Datapump wymagałoby zrobienia tablicy NIERUCHOMOSC w drugiej bazie OBRAZY, załadowania jej aktualnymi danymi, zrobienia porządków, i jej usunięcia, ale to dzieje się na żywym organizmie i trochę się boję. Mogę zalogować się lokalnie na serwerze i podać w skrypcie IBExpert'a pliki, ale dalej nie wiem jak zmusić go do wybrania danych z dwóch baz, anie jak skonstruować samo zapytanie
Delete from [obrazy].zdjecia
where (select [baza].nieruchomosc.id = [obrazy].zdjecia.id ) is null
chodzi o to, że warunek jest negatywny, czyli muszę usunąć te zdjęcia, które nie mają już odpowiednika w tabeli nieruchomosc.....
Problem:
stworzenie 2 połączeń do dwóch różnych baz
polecenie odwołujące się do tabel w tych różnych bazach
składnia warunku, którego spełnienie kasuje dany record (może lepiej byłoby jakąś pętlę? Ale nie mam ppjęcia jak siedo tego zabrać, o eksperymentach mogę mówić dopiero jak uda mi się przejść pkt. 1 :-)
jmail
14.08.2009, 14:24:40
a nie moze to być jakiś programik w Delphi na przykład? albo jakie języki skryptowe masz na serwerze
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.