Cześć. Chciałbym zrobić relacyjną(?) bazę danych. Tzn. Daję 2xTdataSource i 2x TTable.
No i oczywiście 2xTDBGrid.
Łączę ze sobą DataSource, TTable i DBGrid.
Ma to być przykładowa baza dla wypożyczalni video.
Na jednym gridzie mają być widoczni klienci, a na drugim filmy, jakie dany klient ma na koncie.
Tzn. zaznaczam odpowiedniego klienta w GridKlient, a na GridFilm pojawia mi się jakby jego konto(wypożyczone filmy).
Za pomocą Database Desktop stworzyłem sobie dwie bazy: klient.dbf i film.dbf. I teraz mam problem.
W trybie projektowania właściwości Active TTable są ustawione na false.
W onCreate formy mam oto taki kod:
//wydobycie ścieżki, w której jest program:
sciezka:=extractFilePath(paramStr(0));
//ustawianie właściwości
try
tableKlient.DatabaseName:=sciezka+'film.dbf';
tableKlient.TableName:=sciezka+'klient.dbf';
tableFilm.DatabaseName:=sciezka+'film.dbf';
tableFilm.TableName:=sciezka+'film.dbf';
tableKlient.Open; //najpierw zamiast OPEN miałem active:=true
tableFilm.Open; //tutaj oczywiście też
except
begin
showMessage('Błąd');
end;
No i pojawia się błąd. Gdy uruchamiam w środowisku błąd jest następujący:
"Project project1.exe raised exception class EDBEngine error with message: 'Invalid Directory'
Directory: <tu wypisana pełna ścieżka wraz z nazwą pliku: film.dbf>"
Jeśli linie
tableKlient.DatabaseName:=sciezka+'film.dbf';
tableFilm.DatabaseName:=sciezka+'film.dbf';
opatrze komentarzami to wszystko idzie. Ale ja potrzebuję zrobić taką relację, jak pisałem na początku. Nigdy nie robiłem baz tego typu, więc proszę o rady, pomoc, wskazówki...
Myślałem, że muszę moze zarejestrować alias jakiś. Ale w helpie jest napisane, że może być po prostu pełna ścieżka dostępu do pliku.