Ls+odbc в postgres - один и тот же запрос выдает разные данные

Тема в разделе "Lotus - Программирование", создана пользователем anna, 18 мар 2015.

  1. anna

    anna Lotus team
    Lotus team

    Регистрация:
    3 июн 2014
    Сообщения:
    312
    Симпатии:
    8
    Добрый день, коллеги!
    Есть некий скрипт, работает уже дцать лет, а тут внезапно стал работать нестабильно - на один и тот же SQL запрос то вернет правильное значение из базы, то вдруг ничего на найдет, потом снова найдет итп. При этом в самой Postgres базе ничего не меняется.
    Какова может быть природа у такой странности?
    запрос простой, типа select a."nob-kod" from PUB.k_ktnob a where (a."nob-dat-p"<=NOW()) AND(a."nob-dat-k">=NOW()) AND (a."nr-prac" = }+TabNum +{)}
    Админ Postgres прислал скриншот, что у него на такой запрос выдается все красиво. А у меня - то пусто, то правильно, то пусто, то правильно.
     
  2. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    1. NOW() - возвращает время с секундами
    2. Проверяйте поля a."nob-dat-k" и a."nob-dat-p" в базе, что там содержится, можно даже таблицу выгрузить глянуть.
     
  3. anna

    anna Lotus team
    Lotus team

    Регистрация:
    3 июн 2014
    Сообщения:
    312
    Симпатии:
    8
    И что? Я так понимаю, это функция sql....
    А какая разница?
     
  4. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    кешь отключи
     
  5. anna

    anna Lotus team
    Lotus team

    Регистрация:
    3 июн 2014
    Сообщения:
    312
    Симпатии:
    8
    Кеш где?
     
  6. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    а что за либа, кот. парсит ответ от слона?
     
  7. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    1) в настройках ODBC
    2) в LS укажи явно какой режиме работы ODBC
     
  8. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    или вовсе отказаться от ОДБЦ ;)
     
  9. anna

    anna Lotus team
    Lotus team

    Регистрация:
    3 июн 2014
    Сообщения:
    312
    Симпатии:
    8
    Что значит режим работы? Где это?
    [DOUBLEPOST=1426678734,1426678561][/DOUBLEPOST]
    Ну, систему в течение года вообще поменяем, поэтому переходить сейчас на что-то другое нет смысла.
    И, все же, должна же быть причина у такого странного поведения!
     
    #9 anna, 18 мар 2015
    Последнее редактирование модератором: 18 мар 2015
  10. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    ну вы же не описали - что поменялось ;)
    апдейты на систему, апдейты на ОДБЦ, дривер устарел...
    можно оттрейсить ответы от сервака, по сети (у ОДБЦ тоже есть режим трэйса)
     
  11. anna

    anna Lotus team
    Lotus team

    Регистрация:
    3 июн 2014
    Сообщения:
    312
    Симпатии:
    8
    Драйвер не устарел - новую версию базы не накатывали.
    апдейты на систему - не накатывались, да и если были, то лотусу-то что?
    Трейсить - попробуем, правда, не знаю, что даст. Вижу, что через раз правильно отдает, а с какого перепугу - неясно.
     
  12. rinsk

    rinsk Lotus team
    Lotus team

    Регистрация:
    12 ноя 2009
    Сообщения:
    797
    Симпатии:
    78
    Эзернет кабель поменяйте да и вообще - сеть проверьте. Там такие чудеса бывают...
     
  13. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Можете передать вместо NOW-sql значение now из лотуса?
    Чтобы передать и проверить работу со статичным значением.
     
  14. anna

    anna Lotus team
    Lotus team

    Регистрация:
    3 июн 2014
    Сообщения:
    312
    Симпатии:
    8
    :cool: тогда бы разброс был по разным вызовам и ошибки были бы разными.... Вначале-то проверка коннекта делается, и этот запрос в агенте отнюдь не первый, остальные-то отрабатывают
     
  15. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    домине - ничего ;), а вот ОДБЦ вполне себе заглючит
    [DOUBLEPOST=1426687199,1426687121][/DOUBLEPOST]
    это от работы стека зависит (TCP повторы делает, при ошибках)
    [DOUBLEPOST=1426687319][/DOUBLEPOST]вона людя бились
     
  16. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    ты в LS как к ODBC обращаешься?

    Set ODCConn = New ODBCConnection
    ODCConn.SilentMode = True

    Set SQLQuery = New ODBCQuery
    Set SQLQuery.Connection = ODCConn
    SQLQuery.SQL = SQLCommand
    Set ResultSet = New ODBCResultSet
    Set ResultSet.Query = SQLQuery
    ResultSet.CacheLimit = DB_NONE

    Есть что нибудь подобное? ;)
     
  17. anna

    anna Lotus team
    Lotus team

    Регистрация:
    3 июн 2014
    Сообщения:
    312
    Симпатии:
    8
    Вместо DB_NONE стоит DB_ALL
    это что значит?
     
  18. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    http://cprt.spb.ru/anna/myjournal_.nsf/site/C7D2EDC240D69F48C3256C8C0044DBAC
    а как это трактует @ToxaRat - это у него узнать надо :)
     
  19. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    у меня была подобная ситуация - повторное считывание = данные другие
    я решил проблему так
    пробуйте
     
  20. anna

    anna Lotus team
    Lotus team

    Регистрация:
    3 июн 2014
    Сообщения:
    312
    Симпатии:
    8
    Подключила хэндлер ошибок И в ранее нормально работавшем агенте вижу странное:
    Код (Text):
    Ошибка 640, LS:DO- Row has been UnCached., LS:DO- Row has been UnCached. on line 2
     
    #20 anna, 1 апр 2015
    Последнее редактирование модератором: 1 апр 2015
Загрузка...
Похожие Темы - Ls+odbc postgres один
  1. JohnLemon
    Ответов:
    19
    Просмотров:
    1.378
  2. Izver84
    Ответов:
    1
    Просмотров:
    4.402
  3. AnaStas

    Postgresql

    AnaStas, 26 окт 2009, в разделе: SQL
    Ответов:
    2
    Просмотров:
    2.271
  4. AnaStas
    Ответов:
    5
    Просмотров:
    4.762
  5. Akupaka
    Ответов:
    12
    Просмотров:
    4.330

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