Lotus и MS SQL (jdbc)

Тема в разделе "Lotus + Java + LS2J", создана пользователем Klido, 10 авг 2009.

  1. Klido

    Klido Гость

    Итак, по рекомендациям в топике ниже решено подключиться к sql2005 через JDBC. Из-под LD 8.5.1

    Вроде всё просто, качаем jdbc-драйвер, кладем его куда-то, прописываем путь в classpath переменную среды, пишем коротенький тестовый агентик для подключения вроде

    <!--shcode--><pre><code class='java'>import lotus.domino.*;
    import java.sql.*;

    public class JavaAgent extends AgentBase {
    public void NotesMain() {
    try {
    Session session = getSession();
    AgentContext agentContext = session.getAgentContext();
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    String connectionUrl = "jdbc:sqlserver://ИмяСервера:Порт;user=Юзер;password=Пароль;";
    Connection con = DriverManager.getConnection(connectionUrl);

    }
    catch (Exception e) {
    e.printStackTrace();
    }
    }
    }[/CODE]
    и вместо ожидаемого положительного результата получаем (и на клиенте под XP, и на серваке под линухом...):
    Внимательное чтение доки и гугление по этому поводу наводят на мысль, что у кучи народа похожие траблы с подключением класса, даже не под лотусом. Воркэраунд наводит на воспоминания, что как-то джава лотусиная была требовательна к местоположению джаров. В переменную JavaUserClasses путь к папке с драйвером указан...

    Есть ли какие-то ньюансы ещё, чтобы помочь подключить этот класс?
     
  2. vincent_vega

    vincent_vega Lotus team
    Lotus team

    Регистрация:
    2 апр 2005
    Сообщения:
    165
    Симпатии:
    1
    Для лотуса не надо прописывать класспасс. Просто скопируйте джарку в каталог Domino\jvm\lib\ext\ или Notes\jvm\lib\ext\ после копирования перегрузите клинт лотуса или сервак. Ошибка говорит как раз о том что не найден класс драйвера
     
  3. Klido

    Klido Гость

    угу, точно оно... не мог вспомнить :) спсб!
     
  4. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    lmike, а есть пример использования jdbc? Если есть покажи, пожалуйста)

    Драйвер jdbc в базу куда запихивать?)
    Как этот драйвер использовать в скрипте?
    (import com.sybase.jdbc.*;
    import java.sql.*:(

    Вот скрипт подключения, только не знаю он рабочий или нет)
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">код</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='java'> public BasicJDBCDemo()
    {
    try
    {
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    String url = "jdbc:mysql://localhost/coffeebreak";
    conn = DriverManager.getConnection(url, "username", "password");
    doTests();
    conn.close();
    }
    catch (ClassNotFoundException ex) {System.err.println(ex.getMessage());}
    catch (IllegalAccessException ex) {System.err.println(ex.getMessage());}
    catch (InstantiationException ex) {System.err.println(ex.getMessage());}
    catch (SQLException ex) {System.err.println(ex.getMessage());}
    }

    Вот пример запроса

    private void doSelectTest()
    {
    System.out.println("[OUTPUT FROM SELECT]");
    String query = "SELECT COF_NAME, PRICE FROM COFFEES";
    try
    {
    Statement st = conn.createStatement();
    ResultSet rs = st.executeQuery(query);
    while (rs.next())
    {
    String s = rs.getString("COF_NAME");
    float n = rs.getFloat("PRICE");
    System.out.println(s + " " + n);
    }
    }
    catch (SQLException ex)
    {
    System.err.println(ex.getMessage());
    }
    }[/CODE]Мне не понятно что за ex.?)

    Очень хочется разобраться, помогите)
     
  5. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
  6. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    Не понял, как драйвер присоединять к агенту)

    Если это вот так, то где хратится драйвер в базе?
    как его вообще к базе прикрутить?(
    Class.forName(doc.getItemValueString("JDBCDriver"));
     
  7. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
  8. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    *Для соединения с SQLite использовался jdbc-драйвер sqlitejdbc-v053.jar (http://www.zentus.com/sqlitejdbc/)
    Драйвер присоединен к агенту. *


    Я хочу, что бы этот драйвер лежал где-то в бд и что бы у любого пользователя работал connection без предварительной установки драйвера. такое возможно?
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    я уже отвечал на подобные вопросы...
    драйвер положить либо как в хэлпе, либо в jvm/lib/ext/
    цепляете в базу драйвера (в к-л док), проверяете, при старте, присут их в нужном каталоге
    если нет - кладёте туда и просите перезапустить Нотус (никакой установки!)
    каталог jvm:
    System.getProperty("java.home")
     
  10. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Првиет всем, та же ошибка

    тестирую под клиентом 7.0.2
    sqljdbc.jar и sqljdbc4.jar - лежат по "D:\notes\jvm\lib\ext" , Java.Home = D:\notes\jvm

    что может быть

    уже и комп перегружал и все равно при запуске локального агента

    java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
     
  11. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    путь к драйверу com.microsoft.sqlserver.jdbc.SQLServerDriver
    версия драйвера:
    после скачивания страницы/сохранения и открытия/принятия условий
    http://download.microsoft.com/download/b/4...C_Driver_12.htm

    из notes\jvm\lib\ext убрать все "лишние" бибиотеки, кот. предоставляют com.microsoft.sqlserver.jdbc.SQLServerDriver
    иначе класс может не загрузиться
     
  12. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    двигаемся дальше, следущая ошибка
    java.sql.SQLException: No suitable driver


    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">код агента</div></div><div class="sp-body"><div class="sp-content">
    Код (Text):
    import lotus.domino.*;
    import java.sql.*;

    public class JavaAgent extends AgentBase {


    public void NotesMain() {

    try {
    Session session = getSession();
    AgentContext agentContext = session.getAgentContext();


    // Get connection
    DriverManager.registerDriver(new    com.microsoft.sqlserver.jdbc.SQLServerDriver());
    Connection connection = DriverManager.getConnection(
    "jdbc:microsoft:sqlserver://MySQL:1433","USER","PASS");
    if (connection != null) { System.out.print("Enter the data: "); }


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

    java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getConnection(DriverManager.java:579)
    at java.sql.DriverManager.getConnection(DriverManager.java:189)
    at JavaAgent.NotesMain(JavaAgent.java:16)
    at lotus.domino.AgentBase.runNotes(Unknown Source)
    at lotus.domino.NotesThread.run(Unknown Source)
     
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    мне кажется странным такой стринг соединения :)

    Добавлено: и на линухах "это" возможно не заработает (там dll, в xa каталоге)

    Добавлено: у них в хелпе такие варианты:
     
  14. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
  15. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    а порт дефолтный?
    и притом - не ясно как ОЛЕ соединяется
    он могет через пайпы (есть такой тип коннектов), а не по TCP/IP (думаю по другому java коннект не пройдет, хотя... х.з. МС)
    в таком расладе - надо разрешить коннектиться к серваку по TCP
     
  16. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    lmike
    порт дефолтный

    всё решилось строкой
    Connection connection = DriverManager.getConnection( "jdbc:sqlserver://INSCOMP\\inscomsrv;integratedSecurity=false;","user","pass");

    на сколько я понимаю означает не использовать безопасность винды
     
  17. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    почти..., но только это больше касается ввода имени и пароля :)
    иначе используется виндовый акк
     
  18. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Всем привет!
    Вот пытался выполнить ЭТО

    В результате вот такая ошибка
    в чем прикол?
     
  19. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    NickProstoNick
    Бы ла такая же ошибка, неизвесный хост ( не может достучаться до сервера )
     
  20. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    NickProstoNick
    Тема начинается этой ошибкой, да и в руководстве по установке драйвера она указывается в первых абзацах. Рецепт лечения:
    http://codeby.net/ipb.html?s=&sh...st&p=145197
     
Загрузка...
Похожие Темы - Lotus SQL (jdbc)
  1. turumbay
    Ответов:
    19
    Просмотров:
    5.873
  2. swyatogor
    Ответов:
    30
    Просмотров:
    1.207
  3. anna
    Ответов:
    15
    Просмотров:
    1.129
  4. nayke
    Ответов:
    11
    Просмотров:
    3.693
  5. NickProstoNick
    Ответов:
    17
    Просмотров:
    5.321

Поделиться этой страницей