<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p><br>
</p>
<p><br>
</p>
<p>Hi.</p>
<p><br>
</p>
<p>My SQL query is: <br>
</p>
<p><br>
</p>
<p><i>UPDATE GeneralConfigurations set Value = 'casa' where Attribute = 'Exists_Intercom_Call'</i></p>
<p><br>
</p>
<p>This query is correct and can execute very well&nbsp;when applied via a Firefox plugin for SQLite. So, I believe that such query is really correct.</p>
<p><br>
</p>
<p>However, when this query is passed to avp_db_query, the OpenSIPS logs:</p>
<p><br>
</p>
<p>-----------------------------------------------------------------------------------------------------------------------</p>
<p><br>
</p>
<p>Nov&nbsp; 5 18:25:53 [5655] DBG:avpops:ops_dbquery_avps: query [UPDATE GeneralConfigurations set Value = 'casa' where Attribute = 'Exists_Intercom_Call']<br>
Nov&nbsp; 5 18:25:53 [5655] ERROR:db_sqlite:db_sqlite_raw_query: query failed: near &quot;UPDATE&quot;: syntax error<br>
</p>
<p>Nov&nbsp; 5 18:25:53 [5655] ERROR:avpops:db_query_avp: raw_query failed: db0(usr_preferences) UPDATE GeneralConfigurations set Value =...</p>
<p><br>
</p>
<p>--------------------------------------------------------------------------------------------------------------------------------</p>
<p><br>
</p>
<p>Can someone visualize what is the problem?&nbsp; Help, please.</p>
<p><br>
</p>
<p>Observations:</p>
<p><br>
</p>
<p>1. I'm using OpenSIPS 2.2 and SQLite 3.</p>
<p><br>
</p>
<p>2. I have changed the OpenSIPS dbase.c file on my own. (Following some hints gotten in this discussion list). So, I have changed the function db_sqlite_raw_query and now its code has these instructions:</p>
<p><br>
</p>
<p><br>
</p>
<p>..............................................................................................................................................................</p>
<p><br>
</p>
<p><br>
</p>
<p>int db_sqlite_raw_query(const db_con_t* _h, const str* _s, db_res_t** _r)<br>
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static char sql_str[SQL_BUF_LEN];<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ret=-1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char* errmsg;<br>
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str select_str={&quot;select&quot;, 6};<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CON_RESET_CURR_PS(_h);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (_s-&gt;len &#43; 1 &gt; SQL_BUF_LEN) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LM_ERR(&quot;query too big! try reducing the size of your query!&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;Current max size [%d]!\n&quot;, SQL_BUF_LEN);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memcpy(sql_str, _s-&gt;s, _s-&gt;len);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sql_str[_s-&gt;len] = '\0';<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char *saveptr;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char *cpFrstWrd;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char *cpScndWrd;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cpFrstWrd = strtok_r(sql_str, &quot; &quot;, &amp;saveptr);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cpScndWrd = strtok_r(NULL, &quot; &quot;, &amp;saveptr);<br>
<br>
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!((strncasecmp(cpFrstWrd, &quot;SELECT&quot;, 6)==0)&nbsp;&nbsp; || (strncasecmp(cpScndWrd, &quot;SELECT&quot;, 6)==0))){ &nbsp;
<b>// now it will refuse queries with SELECT just when SELECT is in the beginning of the query.</b><br>
</p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //if (!str_strstr(_s, &amp;select_str)) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* not a select statement; can execute the query and exit*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (sqlite3_exec(CON_CONNECTION(_h),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sql_str, NULL, NULL, &amp;errmsg)) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LM_ERR(&quot;query failed: %s\n&quot;, errmsg);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -2;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<p></p>
<p>// more logic follows here....</p>
<p><br>
</p>
<p>................................................................................................................................................<br>
</p>
<br>
<p></p>
<p><br>
</p>
<p>Any hint will be very helpful!!</p>
<p><br>
</p>
<p>Best regards.<br>
</p>
<p><br>
</p>
<p><br>
</p>
<div id="Signature">
<div name="divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:; margin:0">
<div class="BodyFragment"><font size="2">
<div class="PlainText">RODRIGO PIMENTA CARVALHO<br>
Inatel Competence Center<br>
Software<br>
Ph: &#43;55 35 3471 9200 RAMAL 979<br>
</div>
</font></div>
</div>
</div>
</div>
</body>
</html>