diff options
author | Jérôme Sautret <jerome.sautret@process-one.net> | 2008-10-03 15:29:48 +0000 |
---|---|---|
committer | Jérôme Sautret <jerome.sautret@process-one.net> | 2008-10-03 15:29:48 +0000 |
commit | 8883e4ad8b714edd3740aa8ede554865c2ff293e (patch) | |
tree | 5cd7965883ee28f66da324d84ddb82b7b82ad564 /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.erl | 57 |
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"; |