проблема с mod_vcard_odbc

Используется ejabberd 2.0.3. При переносе данных в РСУБД MSSQL возникли проблемы с VCARD. Информация не сохраняется.

ejabberd.cfg:

{hosts, ["localhost"]}.

{auth_method, odbc}.

{odbc_server, "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"}.

{modules,
 [
  {mod_adhoc,    []},
  {mod_announce, [{access, announce}]},
  {mod_caps,     []}, 
  {mod_configure,[]},
  {mod_disco,    []},
  {mod_http_bind,[]},
  {mod_irc,      []},
  {mod_last,[]},
  {mod_muc,      [
		  {access, muc},
		  {access_create, muc},
		  {access_persistent, muc},
		  {access_admin, muc_admin}
		 ]},
  {mod_offline,  []},
  {mod_privacy,  []},
  {mod_private,  []},
  {mod_pubsub,   [
		  {access_createnode, pubsub_createnode},
		  {plugins, ["default", "pep"]}
		 ]},
  {mod_register, [
		  {welcome_message, {"Welcome!", 
				     "Welcome to this Jabber server."}},
		  {access, register}
		 ]},
  {mod_roster_odbc,   []},
  {mod_shared_roster,[]},
  {mod_time,     []},
  {mod_vcard_odbc,    []},
  {mod_version,  []}
 ]}.

XML-консоль показывает вот такой диалог:

<iq type="get" to="user@localhost" id="qip_14">
<vCard xmlns="vcard-temp" prodid="-//HandGen//NONSGML vGen v1.0//EN" version="2.0" />
</iq>

<iq from="user@localhost" to="user@localhost/QIP" id="qip_14" type="result" />

<iq type="set" id="qip_16">
<vCard xmlns="vcard-temp">
<FN />
<N>
<GIVEN>Name</GIVEN>
<MIDDLE />
<FAMILY>Family</FAMILY>
</N>
...
</vCard>
</iq>

<iq from="user@localhost" to="user@localhost/QIP" id="qip_16" type="result" />

<iq type="get" to="user@localhost" id="qip_20">
<vCard xmlns="vcard-temp" prodid="-//HandGen//NONSGML vGen v1.0//EN" version="2.0" />
</iq>

<iq from="user@localhost" to="user@localhost/QIP" id="qip_20" type="result" />

При трассировке обращений к БД был обнаружен вот такой запрос:

insert into vcard(username, vcard) values ('user', '<vCard xmlns=\'vcard-temp\'><FN/><N><GIVEN>Name</GIVEN><MIDDLE/><FAMILY>Family</FAMILY></N><NICKNAME>user</NICKNAME><BDAY/><ADR><HOME/><STREET/><EXTADR/><EXTADD/><LOCALITY/><REGION/><PCODE/><CTRY/><COUNTRY/></ADR><ADR><WORK/><STREET/><EXTADR/><EXTADD/><LOCALITY/><REGION/><PCODE/><CTRY/><COUNTRY/></ADR><ORG><ORGNAME/><ORGUNIT/></ORG><TITLE/><ROLE/><URL/><DESC/><PHOTO/></vCard>');

т.е. одинарные кавычки внутри строковой константы не удваиваются, и запрос сваливается с ошибкой Неправильный синтаксис около "vcard".

Syndicate content