Hello,
I'm using sql_xquery also (Kamailio 5.5.2).
I too have noticed that (except in case of error), it will always return 1.
So to check if rows are actually returned, I'm looking at the result XAVP.
E.g. :
if ($xavp(query_result[0]) == $null) {
# no row
(...)
Regards,
Nicolas.
-----Message d'origine-----
De : sr-users <sr-users-bounces(a)lists.kamailio.org> De la part de Benoît Panizzon
Envoyé : vendredi 5 novembre 2021 15:55
À : Kamailio (SER) - Users Mailing List
Objet : [SR-Users] sql_xquery return 1 on 0 rows?
***This mail has been sent by an external source***
Dear List...
kamcmd> version
kamailio 5.4.7 (x86_64/linux)
Strange issue found.
According to:
https://kamailio.org/docs/modules/5.4.x/modules/sqlops.html
I should get return value 2 if no rows returned:
$var(query) contains a query that does not match (number is not
assigned)
if (sql_xquery("impkam", "$var(query)",
"assignedtn") == 1) {
if ($avp(debug) > 1) {
xlog("L_INFO", "$cfg(route): SQL Dump Result:
$var(assignedtn) ROWS: $dbr(assignedtn=>rows) \n");
}
do stuff with the assigned number
} else {
do stuff in case that number is not assigned
}
Log Output:
CHECK_ASSIGNED_TN: SQL Dump Result: 0 ROWS: 0
So the return value of the query was == 1 but the result contains no rows. How can that
be?
--
Mit freundlichen Grüssen
-Benoît Panizzon- @ HomeOffice und normal erreichbar
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web
http://www.imp.ch
______________________________________________________
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
* sr-users(a)lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the sender!
Edit mailing list options or unsubscribe:
*
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
This message contains information that may be privileged or confidential and is the
property of the Capgemini Group. It is intended only for the person to whom it is
addressed. If you are not the intended recipient, you are not authorized to read, print,
retain, copy, disseminate, distribute, or use this message or any part thereof. If you
receive this message in error, please notify the sender immediately and delete all copies
of this message.