Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Flatly)
  • No Skin
Collapse
Brand Logo

NetXMS Forum

  1. Home
  2. Support (Russian)
  3. Параметры в DB.QueryResult

Параметры в DB.QueryResult

Scheduled Pinned Locked Moved Support (Russian)
7 Posts 2 Posters 17.9k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • V
    V
    VSS
    wrote on last edited by
    #1

    Всем привет!

    Попробовали оптимизировать работу с запросами и добавить параметр как описано в анонсе и документации:
    https://www.netxms.org/forum/announcements/netxms-1-2-14-released/msg13923/#msg13923

    Но что-то не получилось в логе:

    [18-Jun-2015 17:50:42.538] [DEBUG] [session:0] Received message CMD_GET_PARAMETER
    [18-Jun-2015 17:50:42.538] [DEBUG] [session:0] Requesting parameter "DB.QueryResult(checksensor(1))"
    [18-Jun-2015 17:50:42.538] [DEBUG] [session:0] GetParameterValue(): result is 404 (UNKNOWN_PARAMETER)
    [18-Jun-2015 17:50:42.538] [DEBUG] [session:0] Sending message CMD_REQUEST_COMPLETED (size 32)
    [18-Jun-2015 17:50:43.569] [DEBUG] [session:0] Message dump:
      ** 000300000000001000000A2D00000000
      ** code=0x0003 (CMD_KEEPALIVE) flags=0x0000 id=2605 size=16 numFields=0

    Запрос задан как:

    Query = checksensor:dbname:check the status of sensor:SELECT STUFF ( (SELECT top 5 ';' + objid + ',' + action + ',' + CONVERT(varchar(10),DATEDIFF(s,'1970-01-01', DATEADD(second, DATEDIFF(second, GETDATE(), GETUTCDATE()), date))) FROM .... where ... param1

    Вызывается как:

    DB.QueryResult(checksensor(1))

    Версия 1.2.14. Подскажите, пожалуйста, что может быть не так?

    1 Reply Last reply
    0
    • V
      V
      VSS
      wrote on last edited by
      #2

      Коллеги, у кого есть идеи ??? Спасибо!

      1 Reply Last reply
      0
      • V
        V
        Victor Kirhenshtein
        wrote on last edited by
        #3

        Попробуйте прописать в конфиге агента как ConfigurableQuery - должен появится новый параметр checksensor к которому можно будет обратится как checksensor(1)

        1 Reply Last reply
        0
        • V
          V
          VSS
          wrote on last edited by
          #4

          @victor said in Параметры в DB.QueryResult:

          Попробуйте прописать в конфиге агента как ConfigurableQuery - должен появится новый параметр checksensor к которому можно будет обратится как checksensor(1)

          Спасибо за подсказку, изменили тип запроса на ConfigurableQuery. Теперь запрос можно вызвать как checksensor(1).

          Но каким образом описать ПАРАМЕТР в самом запросе, такой вариант не сработал:

          SELECT STUFF ( (SELECT top 5 ';' + objid + ',' + action + ',' + CONVERT(varchar(10),DATEDIFF(s,'1970-01-01', DATEADD(second, DATEDIFF(second, GETDATE(), GETUTCDATE()), date))) FROM .... where ... param1

          Т.е. непонятно как в запросе описать сам параметр?

          1 Reply Last reply
          0
          • V
            V
            Victor Kirhenshtein
            wrote on last edited by
            #5

            Ставить знак вопроса. Первый параметр подставится в первый знак вопроса, второй во второй, и т.д. Например:

            SELECT STUFF ( (SELECT top 5 ';' + objid + ',' + action + ',' + CONVERT(varchar(10),DATEDIFF(s,'1970-01-01', DATEADD(second, DATEDIFF(second, GETDATE(), GETUTCDATE()), date))) FROM .... WHERE ... condition_column=?

            1 Reply Last reply
            0
            • V
              V
              VSS
              wrote on last edited by
              #6

              @victor said in Параметры в DB.QueryResult:

              Ставить знак вопроса. Первый параметр подставится в первый знак вопроса, второй во второй, и т.д. Например:

              SELECT STUFF ( (SELECT top 5 ';' + objid + ',' + action + ',' + CONVERT(varchar(10),DATEDIFF(s,'1970-01-01', DATEADD(second, DATEDIFF(second, GETDATE(), GETUTCDATE()), date))) FROM .... WHERE ... condition_column=?

              Спасибо за подсказку. Попробовали, но из наблюдений параметр не передается в запрос.

              изменили запрос на:

              SELECT STUFF ( (SELECT top 5 ';' + objid + ',' + action + ',' + CONVERT(varchar(10),DATEDIFF(s,'1970-01-01', DATEADD(second, DATEDIFF(second, GETDATE(), GETUTCDATE()), date))) FROM ... where ... and objid in (?) ORDER BY ...

              в Data Collection вызываем его как  checksensor(1)

              но в журнале появляется ошибка:

              [ERROR] SQL query failed (Query = "SELECT STUFF ( (SELECT top 5 ';' + objid + ',' + action + ',' + CONVERT(varchar(10),DATEDIFF(s,'1970-01-01', DATEADD(second, DATEDIFF(second, GETDATE(), GETUTCDATE()), date))) FROM ... where ... and objid in (?) ORDER BY ... "): [Microsoft][SQL Server Native Client 10.0]COUNT field incorrect or syntax error

              В конфиги он создается как:

              ConfigurableQuery = checksensor:testdb:test query:SELECT STUFF ( (SELECT top 5 ';' + objid + ',' + action + ',' + CONVERT(varchar(10),DATEDIFF(s,'1970-01-01', DATEADD(second, DATEDIFF(second, GETDATE(), GETUTCDATE()), date))) FROM ... where ... and objid in (?) ORDER BY ....'')

              Версия: 1.2.14.

              1 Reply Last reply
              0
              • V
                V
                Victor Kirhenshtein
                wrote on last edited by
                #7

                Я советую обновить этот агент до 2.0-M3 или выше, поскольку в 2.0-M3 были исправления в параметризованных запросах.

                1 Reply Last reply
                0

                Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                With your input, this post could be even better 💗

                Register Login
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                • Login

                • Don't have an account? Register

                • Login or register to search.
                Powered by NodeBB Contributors
                • First post
                  Last post
                0
                • Categories
                • Recent
                • Tags
                • Popular
                • Users
                • Groups