aboutsummaryrefslogtreecommitdiff
path: root/src/odbc/odbc_queries.erl
diff options
context:
space:
mode:
authorJérôme Sautret <jerome.sautret@process-one.net>2008-10-03 15:29:48 +0000
committerJérôme Sautret <jerome.sautret@process-one.net>2008-10-03 15:29:48 +0000
commit8883e4ad8b714edd3740aa8ede554865c2ff293e (patch)
tree5cd7965883ee28f66da324d84ddb82b7b82ad564 /src/odbc/odbc_queries.erl
parent* src/mod_shared_roster.erl: Correct roster push when changing a shared roste... (diff)
* src/mod_vcard_odbc: added vCard support for MS SQL Server 2005.
* src/odbc/odbc_queries.erl: likewise. * src/odbc/mssql2005.sql: likewise. SVN Revision: 1595
Diffstat (limited to 'src/odbc/odbc_queries.erl')
-rw-r--r--src/odbc/odbc_queries.erl57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/odbc/odbc_queries.erl b/src/odbc/odbc_queries.erl
index 33caa71d1..b3248dfa2 100644
--- a/src/odbc/odbc_queries.erl
+++ b/src/odbc/odbc_queries.erl
@@ -61,6 +61,8 @@
set_private_data_sql/3,
get_private_data/3,
del_user_private_storage/2,
+ set_vcard/26,
+ get_vcard/2,
escape/1,
count_records_where/3]).
@@ -378,6 +380,42 @@ del_user_private_storage(LServer, Username) ->
LServer,
["delete from private_storage where username='", Username, "';"]).
+
+set_vcard(LServer, LUsername, SBDay, SCTRY, SEMail, SFN, SFamily, SGiven,
+ SLBDay, SLCTRY, SLEMail, SLFN, SLFamily, SLGiven, SLLocality,
+ SLMiddle, SLNickname, SLOrgName, SLOrgUnit, SLocality, SMiddle,
+ SNickname, SOrgName, SOrgUnit, SVCARD, Username) ->
+ ejabberd_odbc:sql_transaction(
+ LServer,
+ [["delete from vcard where username='", LUsername, "';"],
+ ["insert into vcard(username, vcard) "
+ "values ('", LUsername, "', '", SVCARD, "');"],
+ ["delete from vcard_search where lusername='", LUsername, "';"],
+ ["insert into vcard_search("
+ " username, lusername, fn, lfn, family, lfamily,"
+ " given, lgiven, middle, lmiddle, nickname, lnickname,"
+ " bday, lbday, ctry, lctry, locality, llocality,"
+ " email, lemail, orgname, lorgname, orgunit, lorgunit)"
+ "values (",
+ " '", Username, "', '", LUsername, "',"
+ " '", SFN, "', '", SLFN, "',"
+ " '", SFamily, "', '", SLFamily, "',"
+ " '", SGiven, "', '", SLGiven, "',"
+ " '", SMiddle, "', '", SLMiddle, "',"
+ " '", SNickname, "', '", SLNickname, "',"
+ " '", SBDay, "', '", SLBDay, "',"
+ " '", SCTRY, "', '", SLCTRY, "',"
+ " '", SLocality, "', '", SLLocality, "',"
+ " '", SEMail, "', '", SLEMail, "',"
+ " '", SOrgName, "', '", SLOrgName, "',"
+ " '", SOrgUnit, "', '", SLOrgUnit, "');"]]).
+
+get_vcard(LServer, Username) ->
+ ejabberd_odbc:sql_query(
+ LServer,
+ ["select vcard from vcard "
+ "where username='", Username, "';"]).
+
%% Characters to escape
escape($\0) -> "\\0";
escape($\n) -> "\\n";
@@ -597,6 +635,25 @@ del_user_private_storage(LServer, Username) ->
LServer,
["EXECUTE dbo.del_user_storage '", Username, "'"]).
+set_vcard(LServer, LUsername, SBDay, SCTRY, SEMail, SFN, SFamily, SGiven,
+ SLBDay, SLCTRY, SLEMail, SLFN, SLFamily, SLGiven, SLLocality,
+ SLMiddle, SLNickname, SLOrgName, SLOrgUnit, SLocality, SMiddle,
+ SNickname, SOrgName, SOrgUnit, SVCARD, Username) ->
+ ejabberd_odbc:sql_query(
+ LServer,
+ ["EXECUTE dbo.set_vcard '", SVCARD, "' , '", Username, "' , '", LUsername, "' , '",
+ SFN, "' , '", SLFN, "' , '", SFamily, "' , '", SLFamily, "' , '",
+ SGiven, "' , '", SLGiven, "' , '", SMiddle, "' , '", SLMiddle, "' , '",
+ SNickname, "' , '", SLNickname, "' , '", SBDay, "' , '", SLBDay, "' , '",
+ SCTRY, "' , '", SLCTRY, "' , '", SLocality, "' , '", SLLocality, "' , '",
+ SEMail, "' , '", SLEMail, "' , '", SOrgName, "' , '", SLOrgName, "' , '",
+ SOrgUnit, "' , '", SLOrgUnit, "'"]).
+
+get_vcard(LServer, Username) ->
+ ejabberd_odbc:sql_query(
+ LServer,
+ ["EXECUTE dbo.get_vcard '", Username, "'"]).
+
%% Characters to escape
escape($\0) -> "\\0";
escape($\t) -> "\\t";