SQL - Union 2 tabel w Delphi

0

Witam
Utworzyłem sobie w Firebird 2.0 dwie bazki przykładowe

  1. Baza (ID_bazy, Nazwisko, Imie, Nazwa_biura).
  2. Baza_dgl (ID_b_dgl, Nazwisko, Imie, Nazwa_biura).

IBquery1 należy do Baza
IBquery2 nalezy do Baza_dgl

Teraz próbuję je złączyć poniższym kodem:

procedure TForm1.Button3Click(Sender: TObject);
begin
  with IBQUERY1, ibquery2, sql do
   begin
    Close;
    Clear;
    Add('SELECT * FROM BAZA UNION ALL SELECT * FROM BAZA_DGL');
    Open;
   end;
end;

Jednak wystepuje błąd:

---------------------------
Debugger Exception Notification

Project Project1.exe raised exception class EIBInterBaseError with message 'Dynamic SQL Error
SQL error code = -204
Table unknown
BAZA
At line 1, column 20'. Process stopped. Use Step or Run to continue.

OK Help
---------------------------

Co tu mam źle? Tak jakby nie rozpoznawało IBquery1.

0
  1. po co dwa query?
  2. co to u licha sql?
  3. nauka czytania wydaje się byc teraz przydatna: "Table unknown BAZA"
0
  1. po co dwa query?

Każda baza ma swoje IBQuery na których robię operacje.

  1. co to u licha sql?

Bo nie robię IBQuery1.SQL.Add...

  1. nauka czytania wydaje się byc teraz przydatna: "Table unknown BAZA"

Wiem, co to znaczy, ale dlaczego BAZA nie jest znana jeśli fizycznie znajduje się w IBQuery1?

0

powtórzę pytanie.. skoro robisz JEDNO zapytanie to "po co ci dwa query?"
liczysz na to ze zapytanie będzie odpalone na dwóch query na raz? nie będzie! używa DRUGIEGO query bo zostało podane jako ostatnie i dlatego nie widzi tabeli w bazie która pewnie jest pod pierwszym.. no chyba ze myślisz ze zrobisz union na podstawie tabel z dwóch baz.. to już w ogóle niezła bajka :P

0

Oczywiście błąd tkwi w Twoich założeniach - uważasz, że jeżeli utworzyłeś dwie oddzielne bazy (dla serwera są one odrębne, o ile nie stworzysz warunków do udostępniania zasobów), a potem uważasz, że stawiając do datamodule dwa komponenty odpowiedzialne za połączenie z nimi pozwolą na wykonanie wspólnych zapytań, to oczywiście się mylisz. W Twoim rozwiązaniu pozostaje zastosować jakąś tabelę tymczasową w jednej z baz lub pamięci i bawić się w sprawdzanie zależności.
Dawno nie bawiłem się z firebirdem/firefoxem, ale pamiętam, że było tam coś związnego z łączeniem baz - gdzie konfigurowało się bazę dołączaną (mogę się mylić) - podejrzewam, że wówczas wówczas miałbyś możliwość wykorzystać zapytanie z union

0

powtórzę pytanie.. skoro robisz JEDNO zapytanie to "po co ci dwa query?"
liczysz na to ze zapytanie będzie odpalone na dwóch query na raz? nie będzie! używa DRUGIEGO query bo zostało podane jako ostatnie i dlatego nie widzi tabeli w bazie która pewnie jest pod pierwszym.. no chyba ze myślisz ze zrobisz union na podstawie tabel z dwóch baz.. to już w ogóle niezła bajka

Słuchaj no ziomek ja nie jestem programistą, a nawet informatykiem. Dostałem w pracy zadanie od szefa i mam je zrobić.
Widzisz czym się zajmuję? Chłopie sam do wszystkiego dochodziłem w całym programie i nie korzystałem na łatwiznę z 4p, aby mi napisali kod, tylko sam wszystko próbuję [!!!] W sracz ludzi chcący być porgramistami leci od razu na 4p po kod zamiast samemu pomyśleć, udając że jak napisali program "Witaj świecie" to już mogą kozaczyć. Ja nie jestem programistą i nigdy nim nie będę, ale przynajmniej sam próbuję zrobić to czy tamto, więc przestań się napinać i podejdź do mnie wyrozumiale, kumasz bazę? [!!!] [glowa]

0

Patrząc koleś na twoje wypowiedzi, to podejrzewam, że już w tym temacie żadnych podpowiedzi nie otrzymasz. Sam przynajmniej żałuję, że ci cokolwiek napisałem. To, że ci szef zlecił, a ty nie umiesz, nie jest winą twoich rozmówców, a jedynie zbyt wysokim, jak sądzę, mniemaniu twojego szefa o swoim pracowniku.
Uważam, że powinieneś postarać się sprostać wymaganiom szefa robiąc to rozwiązanie samodzielnie. Ze swojej strony, o ile będę na forum postaram się, aby każdorazowo, gdy o coś się zapytasz pod tym nickiem, zwrócić uwagę forumowiczów na wyżej opisaną kwestię.

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