Игорь Горбонос пишет:
Там можно изменить запрос для конкретного сервера.
Скажи, только как! :-)
Я поменял на равенство, заработало как нужно, только я не уверен, что это касаеться только Firebird. Я менял в модуле DatabaseManager.cs
...
 private static int CreateMissingTopics(JanusDB db, string stringizedBatch)
или нужно не там менять, я в с# не силён однако :(
Я бы предложил всё же заменить на
SELECT
  msg."tid" AS "mid",
  msg."gid",
  0         AS "tid",
  0         AS "pid",
  msg."dte",
  '<<Темы нет в локальной БД>>' AS "usernick",
  msg."subject",
  3 AS "uclass",
  -1  AS "uid", 0  AS "ismarked", 0  AS "isread"
FROM
  "messages" msg
  INNER JOIN (
    SELECT
      Min(msga."mid") as mid
    FROM
      ("messages" msga
      LEFT JOIN "messages" msgb on msga."pid" = msgb."mid")
      LEFT JOIN "messages" msgc on msga."tid" = msgc."mid"
    WHERE
      msga."tid" <> 0 AND msgb."mid" IS Null AND msgc."mid" IS Null
      AND msga."mid" IN (1, 2, 3, 4)
    GROUP BY
      msga."tid"
  ) as msgd on msgd.mid = msg."mid"
Только Jet этот запрос точно не переварит.
По моему, нужно создать виртуальный метод в SqlScriptFactory и перекрыть его в FbScripts. Как это сделано для GetSubscribedForumList...

Ответить