2013-08-12 18 views
5

Mam program, który korzysta z lokalnej bazy danych (sqlite3 i używać modułu db). Co chcę zrobić, to korzystać z bazy danych, nie wiedząc, gdzie to jest.Lokalizacja bazy danych na schemacie

Na przykład, jeśli zakodowuję lokalizację bazy danych w moim programie (np. C:/my documents/my program/localdb.db), działa ona poprawnie.

Ale jeśli po prostu napiszę "localdb.db", to nie znajdzie bazy danych, nawet jeśli baza danych znajduje się w tym samym folderze z plikiem .rkt, który korzysta z bazy danych. (Nie wiem jak, ale we wcześniejszych wersjach mojego programu działało).

Jak zatem zapewnić korzystanie z bazy danych bez kodowania jej lokalizacji?

Wielkie dzięki!

Odpowiedz

8

Zamiast "localdb.db", spróbuj użyć runtime-ścieżkę tak:

(define-runtime-path localdb "localdb.db") 

i używać localdb zamiast napisu ścieżki. Musisz (require racket/runtime-path).

+1

To jest to! Dziękujemy – Asqan

+0

Czy istnieje sposób w taki sposób, aby poznać konkretny katalog bazy danych? @Asumu Takikawa – Asqan

+2

Możesz wywołać 'split-path' na ścieżce runtime, aby to uzyskać. –

Powiązane problemy