Dodawanie użytkownika do bazy.

2013-01-29 13:08
0

Witam. Chcę dodać w swoim programie użytkownika do bazy. Jednak mam problem. Oto mój kod:

String sql0 = "create user ? identified by ? default tablespace users temporary tablespace temp quota unlimited on users";
                sta = bd.con.prepareStatement(sql0);
                sta.setString(1, jTextField6.getText());
                sta.setString(2, jPasswordField1.getText());
                sta.executeUpdate(); 

Nie chce się wykonać. W polu jTextField6 mam login a w jPasswordField1 hasło. Przy próbie wykonania wyskakuje błąd ORA-01935 missing user or role name.

Co robię źle? Dodam, że jeśli zamienię sql0 na

String sql0 = "create user Jim identified by Pass default tablespace users temporary tablespace temp quota unlimited on users";

Czyli zamiast pytajników dam domyślne wartości wszystko przebiega poprawnie i użytkownik zostaje dodany do bazy.

edytowany 1x, ostatnio: olek1, 2013-01-29 13:12

Pozostało 580 znaków

2013-01-29 14:35
Swr
1

weź sobie wypisz stworzony sta przed executeUpdate (sta.toString()) i sprawdz czy jest poprawnie stworzony - moze jakiegos NULLa probujesz utworzyc jako użytkownika

Pozostało 580 znaków

2013-01-29 14:40
0

Dałem coś takiego:

                String sql0 = "create user ? identified by ? default tablespace users temporary tablespace temp quota unlimited on users";
                sta = bd.con.prepareStatement(sql0);
                sta.setString(1, jTextField6.getText());
                sta.setString(2, jPasswordField1.getText());
                JOptionPane.showMessageDialog(null, sta.toString());
                sta.executeUpdate(); 

Ale to mi nie wyświetla nic sensownego tylko [email protected]

Pozostało 580 znaków

2013-01-29 14:43
Swr
1

hm na postgresie ta metoda wyrzuca caly stworzony SQL. to weź moze wyswietl teksty z field6 i field1

a najlepiej dodaj

sta.setString(1, "tekst ktory chcialbys by byl w field6");
sta.setString(2, "tekst ktory chcialbys by byl w field1");

i sprobuj czy pojdzie :) przy okazji wyswietl tez co jest w field6 i field1

edytowany 1x, ostatnio: Swr, 2013-01-29 14:45

Pozostało 580 znaków

2013-01-29 14:45
0

Sprawdzałem już to sobie wcześniej nic nie jest puste:

                String sql0 = "create user ? identified by ? default tablespace users temporary tablespace temp quota unlimited on users";
                sta = bd.con.prepareStatement(sql0);
                sta.setString(1, jTextField6.getText());
                sta.setString(2, jPasswordField1.getText());
                JOptionPane.showMessageDialog(null, jTextField6.getText());
                JOptionPane.showMessageDialog(null, jPasswordField1.getText());
                sta.executeUpdate();

MessageDialog wyświetla mi to co wpisałem w tych polach.

Zaś ustawienie w setach domyślnie, wywala to samo jak były tam fieldy:

                String sql0 = "create user ? identified by ? default tablespace users temporary tablespace temp quota unlimited on users";
                sta = bd.con.prepareStatement(sql0);
                sta.setString(1, "Adam");
                sta.setString(2, "Pass");
                JOptionPane.showMessageDialog(null, jTextField6.getText());
                JOptionPane.showMessageDialog(null, jPasswordField1.getText());
                sta.executeUpdate(); 
edytowany 1x, ostatnio: olek1, 2013-01-29 14:49

Pozostało 580 znaków

2013-01-29 14:49
Swr

wrzuc do setString na stale Stringi ktore chcesz by tam byly, jesli pojdzie to pewnie chodzi o metode setString - umieszcza wartosci w ' ' (przynajmniej w postgresie) a tu wydaje sie ze maja byc bez ' '

edit:

no nic to sobie zrob nornalny Statement łącząc Stringi "create user " + user + " identified by " +password+ " default tablespace users temporary tablespace temp quota unlimited on users"

wydaje się ze coś kiepsko setString w tym wypadku dziala bo pewnie wsadza tekst pomiędzy ' ' a z przykladu ktory podales wynikalo ze ich tam nie ma

edytowany 1x, ostatnio: Swr, 2013-01-29 15:00
Nie wiem czemu to nie działa w insertach i updatach działa zawsze to z ?. A czemu tutaj jest jakiś problem to nie wiem.;/ - olek1 2013-01-29 15:02
Dzięki twój pomysł z łączeniem stringów działa. Sam na to bym nie wpadł jakoś.;d Dzięki wielki za pomoc. - olek1 2013-01-29 15:06
nie ma sprawy :) - Swr 2013-01-29 15:59

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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