Как добавить новых пользователей в базу данных сервера SQL через графический интерфейс JAVA

Это легко объяснить на примере. Рассмотрим

struct Cat { void meow() { } };
struct Dog { void bark() { } };

и

template 
void pet(T x)
{
    if(std::is_same{}){ x.meow(); }
    else if(std::is_same{}){ x.bark(); }
}

Вызов

pet(Cat{});
pet(Dog{});

приведет к ошибке компиляции (пример wandbox) , потому что обе ветви оператора if должны быть хорошо сформированы.

prog.cc:10:40: error: no member named 'bark' in 'Cat'
    else if(std::is_same{}){ x.bark(); }
                                     ~ ^
prog.cc:15:5: note: in instantiation of function template specialization 'pet' requested here
    pet(Cat{});
    ^
prog.cc:9:35: error: no member named 'meow' in 'Dog'
    if(std::is_same{}){ x.meow(); }
                                ~ ^
prog.cc:16:5: note: in instantiation of function template specialization 'pet' requested here
    pet(Dog{});
    ^

Для изменения pet для использования if constexpr

template 
void pet(T x)
{
    if constexpr(std::is_same{}){ x.meow(); }
    else if constexpr(std::is_same{}){ x.bark(); }
}

требуется только ветви, подлежащие анализу - только ветвь, которая соответствует условию, должна быть хорошо сформирована (пример wandbox) .

Отрывок

pet(Cat{});
pet(Dog{});

будет компилироваться и работать должным образом.

0
задан Paul Eames 27 March 2019 в 18:18
поделиться

1 ответ

Хорошо, я понял это. WOHOOO !!!

Я добавляю код на тот случай, если кому-то еще понадобится.

Теперь, чтобы выяснить, как ограничить определенные таблицы для каждого нового пользователя ....

Спасибо,

try {

                    String username = "";
                    String password = "";
                    username = UsernametextField.getText().trim();
                    password = PasswordtextField.getText().trim();

                    if (username.equals("")|| password.equals(""))
                    {
                        JOptionPane.showMessageDialog(null," name or password is wrong","Error",JOptionPane.ERROR_MESSAGE);
                    }
                    else
                    {
                        connection = DriverManager.getConnection(AdminMenu.DATABASE_URL, AdminMenu.UserName, AdminMenu.Password);
                        statement = connection.createStatement();


                        resultSetInt = statement.executeUpdate("CREATE LOGIN "+username+" WITH PASSWORD = '"+password+"'");
                        resultSetInt = statement.executeUpdate("IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'"+username+"') CREATE USER ["+username+"] FOR LOGIN ["+username+"] EXEC sp_addrolemember N'db_owner', N'"+username+"'");

                        //("CREATE LOGIN NewAdminName WITH PASSWORD = 'ABCD' GO USE BEPAWI GO IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'NewAdminName') BEGIN CREATE USER [NewAdminName] FOR LOGIN [NewAdminName]  EXEC sp_addrolemember N'db_owner', N'NewAdminName' END;) VALUES('"+username+"', '"+password+"');");

                        String SMessage = "Record added for "+username;

                                           // create dialog ox which is print message
                            JOptionPane.showMessageDialog(null,SMessage,"Message",JOptionPane.PLAIN_MESSAGE);
                        //close connection
                        ((java.sql.Connection)connection).close();
                    }

                    }

                catch (SQLException se) 
                {
                    //handle errors for JDBC
                    se.printStackTrace();
                }
                catch (Exception a) //catch block
                {
                    a.printStackTrace();
                }

            }
        });
0
ответ дан Paul Eames 27 March 2019 в 18:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: