Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > А помогите с базами разобраться..


Автор: Maksys 21.4.2006, 09:08
... подцепиться да с другого сервера... прочитал тут книжечку про JDBC и запрос типа jdbc:odbc:mydb меня не устраивает... 
т.е. Сервер приложений и сервер мелкомягкогоSQL находятся на разных машинках.. можно как нить через iP подцепиться к удаленной базе... т.е.  Знаю что можно, а как?
Помогите начинающему Java папке smile плз. 

Автор: batigoal 21.4.2006, 10:45
Никогда не пробовал, но поиск дал мне вот это:
Код

DriverManager.getConnection("jdbc:inetdae7:<hostname>", "<user>", "<password>" )

http://www.inetsoftware.de/products/jdbc/mssql/configuration/


Код

con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", "userName", "password");

http://support.microsoft.com/default.aspx?scid=kb;en-us;313100

Добавлено @ 10:46 
Т.е. прописываешь имя хоста, и все. 

Автор: ALKS 21.4.2006, 11:15
Maksys, я не верю что ты прочитал  "книжечку про JDBC". потому что даже в самой разпаршивой книге пример того как делать коннект базе быть обязан. 

Автор: Maksys 21.4.2006, 16:25
Честно книга просто САКС... вот про  JDBC написано не больше 5 страничек, я ее купил так чтобы хоть представление иметь... скажу даже как называется: "Java и JavaScript" хотелось найти в книги чем эти два разных совершенно языка перехлестываются... Смеялсе долго, но ща на джаве контрольную надо делать, и нет кроме этого ни че под рукой.
За ответы спасибо башое smile  smile  

Автор: Maksys 22.4.2006, 18:55
А драйвер какой подгружать а то ексепшен вылетает про драва чета? 

Автор: LSD 22.4.2006, 19:02
Штатный телепат уволился. Так что придется всетаки написать, что за ошибка. 

Автор: Maksys 22.4.2006, 20:36
 smile печально, ну ладно вод собственно че я на карючил:
Код

public static void main(String[] args) {
        try {
            //String url = "jdbc:microsoft:sqlserver://maksys:1433, Администратор, MKpolo510";
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection cn = DriverManager.getConnection("jdbc:microsoft:sqlserver://maksys:1433", "Администратор", "MKpolo510");
            Statement st = cn.createStatement();
            String sqlQuiry = "USE PI_ISA; SELECT * FROM Users";
            ResultSet rs=st.executeQuery(sqlQuiry);
            int maxCols=rs.getMetaData().getColumnCount();
            for (int i = 1; i <= maxCols; i++) {
                if (i > 1)
                    System.out.print(", ");
                System.out.print(rs.getMetaData().getColumnLabel(i));
            }
            System.out.println();
            System.out
                    .println("----------------------------------------------");
            while (rs.next()) {
                for (int i = 1; i <= maxCols; i++) {
                    System.out.print(rs.getString(i) + ", ");
                }
                System.out.println();
            }
            st.close();
            cn.close();

        } catch (Exception e) {
            System.out.print(e.toString());
        }
    }}

А вот ексепшен: 
Код

java.sql.SQLException: No suitable driver


Че тут хитрого еще запрятано? 

Автор: LSD 22.4.2006, 21:03
проблема в том, что ты пытаешься использовать драйвер ODBC, а строку соединения указываешь как для родного JDBC драйвера SQL Server-а.

Посмотри внимательней на тот код, что привел Жорж (тот что на MSDN). Они там грузят драйвер так:
Код
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");


И не забудь подключить драйвер к твоему проекту. Если получишь java.lang.ClassNotFoundException, значит все же не подключил. 

Автор: powerOn 22.4.2006, 21:10
 Ты загрузил стандартный JDBC-ODBC мост (т.е. драйвер), а в  DriverManager.getConnection() используешь строку соединения для другого драйвера - Microsoft-кого...
можно так попробовать:

Код

Connection cn = DriverManager.getConnection("jdbc:odbc:OdbcDataSourceName", "Администратор", "MKpolo510");
 

где OdbcDataSourceName - имя твоего ODBC источника данных. 

Автор: Maksys 23.4.2006, 12:08
Ура получилось... тока чет говорит что типа login failed... но это я сам думаю разберуся...
СПАСИБО БАЛЬШОЕ. smile  

Автор: LSD 23.4.2006, 12:12
Цитата(Maksys @  23.4.2006,  13:08 Найти цитируемый пост)
тока чет говорит что типа login failed... но это я сам думаю разберуся...

Цитата
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Login failed for user 'user'. Reason: Not associated with a trusted SQL Server connection.

This error message occurs if the SQL Server 2000 authentication mode is set to Windows Authentication mode. The Microsoft SQL Server 2000 driver for JDBC does not support connecting by using Windows NT authentication. You must set the authentication mode of your SQL Server to Mixed mode, which permits both Windows Authentication and SQL Server Authentication.
 

Автор: парторг 23.4.2006, 17:11
никогда не используйте драйвер от майкрософт - он глючный кошмарно

альтернатива - jtds  

Автор: Maksys 23.4.2006, 17:55
А http://edocs.bea.com/wls/docs81/jdbc_drivers/mssqlserver.html#1074572 че за дрова? и ваще че лучше всего юзать тода? для MS SQL 2000 ну и за одно 2005... 
я просто всю ночь пытался понять че за драва надо врубать как!? А ща парюсь... какие!?

Добавлено @ 18:01 
Цитата(LSD @ 23.4.2006,  15:12)
Цитата

This error message occurs if the SQL Server 2000 authentication mode is set to Windows Authentication mode. The Microsoft SQL Server 2000 driver for JDBC does not support connecting by using Windows NT authentication. You must set the authentication mode of your SQL Server to Mixed mode, which permits both Windows Authentication and SQL Server Authentication.

Даже так?
НО это все фигня... пароль просто надо было угадать  smile 
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)