По поводу записи сообщений и вообще обслуживания LCS:
1. Вот хорошая
ссылочка. Там есть примеры довольно занятные.
2. Как это организованно у меня.
В БД добавлена таблица usernames, в которой храниться соответсвие URI - DisplayName из AD. Это в принципе можно не делать, просто мне так удобнее. При завпросах быстрее работает.
Вот хранимая процедура, которая извлекает из базы всю историю сообщений
[more]
Код: CREATE PROCEDURE dbo.GetHistory @user as int, @toid as int AS
IF @toid = (- 1)
BEGIN
SELECT DATEADD(hh, 4, t1.date) AS date, t2.name AS fromname, t3.name AS toname, t1.body, t4.useruri AS fromuri, t5.useruri AS touri
FROM messages t1 INNER JOIN
usernames t3 ON t3.userid = t1.fromid INNER JOIN
usernames t2 ON t2.userid = t1.toid LEFT OUTER JOIN
users t5 ON t5.userid = t1.fromid LEFT OUTER JOIN
users t4 ON t4.userid = t1.toid
WHERE (t1.fromid = @user) OR (t1.toid = @user)
ORDER BY t1.date DESC
END
ELSE
BEGIN
SELECT DATEADD(hh, 4, t1.date) AS date, t2.name AS fromname, t3.name AS toname, t1.body, t4.useruri AS fromuri, t5.useruri AS touri
FROM messages t1 INNER JOIN
usernames t3 ON t3.userid = t1.fromid INNER JOIN
usernames t2 ON t2.userid = t1.toid LEFT OUTER JOIN
users t5 ON t5.userid = t1.fromid LEFT OUTER JOIN
users t4 ON t4.userid = t1.toid
WHERE ((t1.fromid = @user) OR (t1.toid = @user)) AND ((t1.fromid = @toid) OR (t1.toid = @toid))
ORDER BY t1.date DESC
END
GO