Android SQlite problem

0

Witam piszę aplikację na androida (kalendarz przechowujacy dane na temat terminu wykonania konkretnej usługi). Napisałem klase BazaDanych która rozszerza klase SQLiteOpenHelper i metodzie oncreate tworzę tabele i przy tworzeniu drugiej tabeli wywala mi błąd. Poniżej zamieszczam kod metody oncreate:

@Override
	public void onCreate(SQLiteDatabase baza) {
		super.onOpen(baza);

	    	baza.execSQL("PRAGMA foreign_keys=ON;");

		baza.execSQL("CREATE TABLE "+TABELA_USLUGA+"("+IDUSLUGA+" INTEGER PRIMARY KEY, "+NAZWA+" TEXT);");
		baza.execSQL("CREATE TABLE "+TABELA_PRACOWNIK+"("+IDPRACOWNIK+" INTEGER PRIMARY KEY, "+USLUGA_ID+" INTEGER, FOREIGN KEY("+USLUGA_ID+") REFERENCES "+TABELA_USLUGA+"("+IDUSLUGA+"), "+IMIE+" TEXT,"+NAZWISKO+" TEXT);");
		baza.execSQL("CREATE TABLE "+TABELA_TERMIN+"("+IDTERMIN+" INTEGER PRIMARY KEY AUTOINCREMENT, "+PRACOWNIK_ID+" INTEGER, FOREIGN KEY("+PRACOWNIK_ID+") REFERENCES "+TABELA_PRACOWNIK+"("+IDPRACOWNIK+"), "+TYTUL+" TEXT, "+GODZ_START+" TEXT, "+GODZ_STOP+" TEXT, "+OPIS+" TEXT);");
}

Dodatkowo sworzyłem pomocniczą klasę zawierająca nazewnictwo.:

public interface BazaDane extends BaseColumns {

    // Kolumny w bazie danych, tabela termin
	public static final String TABELA_TERMIN = "Termin";
	public static final String IDTERMIN = "idTermin";
	public static final String PRACOWNIK_ID = "idPracownik" ;
    public static final String TYTUL = "Tytul" ;
    public static final String GODZ_START = "Godz_start" ;
    public static final String GODZ_STOP = "Godz_stop" ;
    public static final String OPIS = "Opis" ;
    
    // Kolumny w bazie danych, tabela pracownik
 	public static final String TABELA_PRACOWNIK = "Pracownik" ;
 	public static final String IDPRACOWNIK = "idPracownik";
 	public static final String USLUGA_ID = "idUsluga" ;
    public static final String IMIE = "Imie" ;
    public static final String NAZWISKO = "Nazwisko" ;
    
    // Kolumny w bazie danych, tabela usluga
  	public static final String TABELA_USLUGA = "Usluga" ;
  	public static final String IDUSLUGA = "idUsluga";
    public static final String NAZWA = "Nazwa" ;

}

Zamieszczam jeszcze to co wyrzuca mi Logcat:
Failure 1 (near "Imie": syntax error) on 0x38f380 when preparing 'CREATE TABLE Pracownik(idPracownik INTEGER PRIMARY KEY, idUsluga INTEGER, FOREIGN KEY(idUsluga) REFERENCES Usluga(idUsluga), Imie TEXT,Nazwisko TEXT);'.

android.database.sqlite.SQLiteException: near "Imie": syntax error: CREATE TABLE Pracownik(idPracownik INTEGER PRIMARY KEY, idUsluga INTEGER, FOREIGN KEY(idUsluga) REFERENCES Usluga(idUsluga), Imie TEXT,Nazwisko TEXT);

Proszę o jakieś podpowiedzi jak wklejam zapytanie prosto do mysql to działa.

0

Jak byk napisane jest:

Failure 1 (near "Imie": syntax error)

Z tego co pamiętam, to instrukcja FOREIGN KEY znajdować się powinna jako ostatnia we frazie CREATE TABLE. Czyli:

CREATE TABLE Pracownik(idPracownik INTEGER PRIMARY KEY, idUsluga INTEGER, Imie TEXT,Nazwisko TEXT, FOREIGN KEY(idUsluga) REFERENCES Usluga(idUsluga));

Zobacz:
http://www.sqlite.org/foreignkeys.html

0

Czytałem powyzszą dokumentację ale nie zauważyłem informacji że ta instrukcja ma być na końcu. Wychodzą braki w angielskim. Oczywiście teraz wszystko działa. Dziekuje bardzo za odpowiedź.

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