END\r
GO\r
\r
+/******************************************************************/\r
+/****** Object: StoredProcedure [dbo].[set_roster_version] **/\r
+/** Update users roster_version **/\r
+/******************************************************************/\r
+CREATE PROCEDURE [dbo].[set_roster_version]\r
+ @Username varchar(200), \r
+ @Version varchar(50)\r
+AS\r
+BEGIN\r
+ IF EXISTS (SELECT username FROM roster_version WITH (NOLOCK) WHERE username=@Username)\r
+ BEGIN\r
+ UPDATE roster_version SET username=@Username, version=@Version WHERE username=@Username;\r
+ END\r
+ ELSE\r
+ BEGIN\r
+ INSERT INTO roster_version (username, version) VALUES (@Username, @Version);\r
+ END\r
+END\r
+GO\r
+\r
+/******************************************************************/\r
+/****** Object: StoredProcedure [dbo].[get_roster_version] **/\r
+/** Retrive the user roster_version **/\r
+/******************************************************************/\r
+CREATE PROCEDURE [dbo].[get_roster_version]\r
+ @Username varchar(200)\r
+AS\r
+BEGIN\r
+ SELECT roster_version.version as version \r
+ FROM roster_version WITH (NOLOCK)\r
+ WHERE username=@Username;\r
+END\r
+GO\r
+\r
/***************************************************************/\r
/****** Object: StoredProcedure [dbo].[clean_spool_msg] ******/\r
/** Delete messages older that 3 days from spool **/\r
END
GO
+/******************************************************************/
+/****** Object: StoredProcedure [dbo].[set_roster_version] **/
+/** Update users roster_version **/
+/******************************************************************/
+CREATE PROCEDURE [dbo].[set_roster_version]
+ @Username varchar(200),
+ @Version varchar(8000)
+AS
+BEGIN
+ IF EXISTS (SELECT username FROM roster_version WITH (NOLOCK) WHERE username=@Username)
+ BEGIN
+ UPDATE roster_version SET username=@Username, version=@Version WHERE username=@Username;
+ END
+ ELSE
+ BEGIN
+ INSERT INTO roster_version (username, version) VALUES (@Username, @Version);
+ END
+END
+GO
+
+/******************************************************************/
+/****** Object: StoredProcedure [dbo].[get_roster_version] **/
+/** Retrive the user roster_version **/
+/******************************************************************/
+CREATE PROCEDURE [dbo].[get_roster_version]
+ @Username varchar(200)
+AS
+BEGIN
+ SELECT roster_version.version as version
+ FROM roster_version WITH (NOLOCK)
+ WHERE username=@Username;
+END
+GO
+
/***************************************************************/
/****** Object: StoredProcedure [dbo].[clean_spool_msg] ******/
/** Delete messages older that 3 days from spool **/
-define(generic, true).
-endif.
+-include("ejabberd.hrl").
+
%% Almost a copy of string:join/2.
%% We use this version because string:join/2 is relatively
%% new function (introduced in R12B-0).
["select count(*) from ", Table, " with (nolock) ", WhereClause]).
get_roster_version(LServer, LUser) ->
- ejabberd_odbc:sql_query(LServer,
- ["select version from dbo.roster_version with (nolock) where username = '", LUser, "'"]).
-set_roster_version(LUser, Version) ->
- update_t("dbo.roster_version", ["username", "version"], [LUser, Version], ["username = '", LUser, "'"]).
+ ejabberd_odbc:sql_query(
+ LServer,
+ ["EXECUTE dbo.get_roster_version '", LUser, "'"]).
+
+set_roster_version(Username, Version) ->
+ %% This function doesn't know the vhost, so we hope it's the first one defined:
+ LServer = ?MYNAME,
+ ejabberd_odbc:sql_query(
+ LServer,
+ ["EXECUTE dbo.set_roster_version '", Username, "', '", Version, "'"]).
-endif.