1. Уважаемые участники и гости, 19 октября codeby будет работать в режиме "Только чтение". Регистрация новых участников будет закрыта. 20 октября портал продолжит работу в прежнем режиме.

Odbc роняет лотус

Тема в разделе "Lotus - Программирование", создана пользователем K-Fire, 7 июн 2007.

  1. K-Fire

    K-Fire Гость

    Репутация:
    0
    Есть несложный код:

    Создается ODBCResultSet, выполяется запрос SELECT * from table. В таблице 1200 записей.
    Строго на 990 записи Lotus падает. Беру Ексель, и вытягиваю данные им, вытягивает все 1200 строк.

    Кто нить встречался с такой проблемой? Если да, как решали?
     
  2. oshmianski

    oshmianski Гость

    Репутация:
    0
    Для: K-Fire
    вот рабочий код:

    Код:
    ...
    Set con = New ODBCConnection
    Let con.SilentMode = True
    ...
    Set qry.Connection = con
    Let qry.SQL = "SELECT..."
    
    If Not qry.GetError = DBstsSUCCESS Then
    Print "SQL Query Error..."
    Exit Sub
    End If
    
    Set res.Query = qry	
    Let res.CacheLimit = DB_NONE	 
    Let res.FetchBatchSize = 1
    Let res.MaxRows = 1000000
    
    If Not res.Execute Then	 
    Print "ResultSet Error ..."
    Print qry.SQL		
    res.Close(DB_CLOSE)
    Exit Sub
    End If
    
    If res.IsResultSetAvailable Then
    Do
    res.NextRow
    ...
    Loop Until res.IsEndOfData
    Else
    Print "No data..."
    End If		
    res.Close(DB_CLOSE)
     
  3. K-Fire

    K-Fire Гость

    Репутация:
    0
    У меня уже есть полностью рабочий код. Примерно точно тоже что этот.

    Но этот код работает строго до 990 строки, потом падает лотус :lol: Падает на res.NextRow

    Беру свои слова обратно :(
    Какой-то из этих параметров сделал свое дело, код перестал падать
    Let res.CacheLimit = DB_NONE
    Let res.FetchBatchSize = 1
    Let res.MaxRows = 1000000

    Спасибо!
     
  4. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    30 май 2006
    Сообщения:
    1.322
    Симпатии:
    4
    ODBC глючил еще в 4-ке, тоже не получалась вся коллекция, правда Лотус НЕ падал. Ушел на LSX, там такого за 7 лет не видел (даже в случает LSX over ODBC)
     
  5. K-Fire

    K-Fire Гость

    Репутация:
    0
    <!--QuoteBegin-Constantin A Chervonenko+8:06:2007, 09:33 -->
    <span class="vbquote">(Constantin A Chervonenko @ 8:06:2007, 09:33 )</span><!--QuoteEBegin-->ODBC глючил еще в 4-ке, тоже не получалась вся коллекция, правда Лотус НЕ падал. Ушел на LSX, там такого за 7 лет не видел (даже в случает LSX over ODBC)
    [snapback]68612" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    А что за LSX библиотека? Можете поделиться?
    А то ODBC прямо скажем меня беспокоит, падение сервера из-за дефолтных настроек неприемлимо. Да и плюс к этому производительность тоже не фонтан.
     
  6. oshmianski

    oshmianski Гость

    Репутация:
    0
    Для: K-Fire
    что-то я не совсем понимаю. LSX - классы расширения LS. три класса из LSX позволяют работать с внешними бд через ODBC. или вы как-то по-другому работаете с ODBC?

    Для: Constantin A Chervonenko
    вы говорите о UseLSX "*LSXODBC"?
     
  7. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    30 май 2006
    Сообщения:
    1.322
    Симпатии:
    4
    Достачно Uselsx "*lsxlc", оно ВСЕ коннекторы накрывает.

    А автор темы юзает другое семейство классов: ODBCQuery, ODBCResultSet etc
     
  8. IsAvailable

    IsAvailable Гость

    Репутация:
    0
    Для: Constantin A Chervonenko
    А какое семейство классов тогда предпочтительнее юзать?
     
  9. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    30 май 2006
    Сообщения:
    1.322
    Симпатии:
    4
    LCSession
    LCConnect
    LCFieldList
    ...
     
Загрузка...

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