Как только я получу имя SQLServer, как мне перечислить его базы данных в Java? - PullRequest
1 голос
/ 10 февраля 2010

Я пытаюсь заполнить раскрывающийся список SQLServers в сети с помощью команды osql -L через Java. Затем пользователь выберет сервер и введет имя пользователя и пароль. Мне также нужно заполнить другой список с базами данных на этом сервере. Любые идеи о том, как я могу реализовать это с помощью Java? Если возможно, пожалуйста, дайте код Java.

Спасибо.

public class SQL implements ActionListener{

public static void main(String[] args) throws Exception{
    String[] str = new String[] {"cmd.exe", "/c", "osql", "-L"  };
    Runtime rt = Runtime.getRuntime();
    try{

        Process p = rt.exec(str);
        InputStream is =p.getInputStream();
        InputStream err = p.getErrorStream();
        InputStreamReader in = new InputStreamReader(is);

        StringBuffer sb = new StringBuffer();
        BufferedReader buff = new BufferedReader(in);

        //clearing away white space and "Servers"
        buff.readLine();
        buff.readLine();


        String line = buff.readLine();
        JComboBox servers = new JComboBox();
        while (line != null){
            servers.addItem(line.trim());
            line =buff.readLine();
        }
        SQL sql = new SQL();

        servers.addActionListener(sql);
        JOptionPane.showMessageDialog(null, servers);

    }catch( Exception ex )
    {
        ex.printStackTrace();   
    }
}


@Override
public void actionPerformed(ActionEvent e) {
    JComboBox cb = (JComboBox)e.getSource();
    String ser = (String)cb.getSelectedItem();


}
}

Ответы [ 2 ]

0 голосов
/ 25 февраля 2014
public static void main(String[] args) {
        String[] str = new String[] {"cmd.exe", "/c", "sqlcmd -U abc -P abc -q sp_databases"};

        Runtime rt = Runtime.getRuntime();
        try{

            String ss = null;
            Process p = rt.exec(str);

            BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));

            BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));

            //obj.exec(ss);
            System.out.println("Here is the standard output of the command:\n");
            while ((ss = stdInput.readLine()) != null) {
                System.out.println(ss);
            }

            System.out.println("Here is the standard error of the command (if any):\n");
            while ((ss = stdError.readLine()) != null) {
                System.out.println(ss);
            }

        }catch( Exception ex )
        {
            ex.printStackTrace();   
        }
    }
0 голосов
/ 10 февраля 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...