FHEM Forum

FHEM => Sonstiges => Thema gestartet von: rapster am 13 Oktober 2015, 14:16:43

Titel: configDB.pm - ESCAPE für configdb search [PATCH]
Beitrag von: rapster am 13 Oktober 2015, 14:16:43
Hallo Betateilchen,

kannst du bitte diesen Patch in configDB einbauen, damit man bei Bedarf auch nach % und _ suchen kann?
Index: configDB.pm
===================================================================
--- configDB.pm (Revision 9448)
+++ configDB.pm (Arbeitskopie)
@@ -895,8 +895,8 @@
my ($sql, $sth, @line, $row, @result, $ret, $text);
$sql  = "SELECT command, device, p1, p2 FROM fhemconfig as c join fhemversions as v ON v.versionuuid=c.versionuuid ";
$sql .= "WHERE v.version = '$searchversion' AND command not like '#create%' ";
- $sql .= "AND device like '$search%' " if($dsearch);
- $sql .= "AND (device like '$search%' OR P1 like '$search%' OR P2 like '$search%') " if(!$dsearch);
+ $sql .= "AND device like '$search%' ESCAPE '\\' " if($dsearch);
+ $sql .= "AND (device like '$search%' ESCAPE '\\' OR P1 like '$search%' ESCAPE '\\' OR P2 like '$search%' ESCAPE '\\') " if(!$dsearch);
$sql .= "ORDER BY lower(device),command DESC";
$sth = $fhem_dbh->prepare( $sql);
$sth->execute();


Hintergrund ist der dass bei mir in jedem device _ vorkommen, ich allerdings ohne diesen Patch viele Suchanfragen nicht genau genug Filtern kann.
Mit dem Patch ist es dann z.B. möglich mit "configdb search %\_foo%" die suche etwas genauer zu spezifizieren.

Ich denke nicht dass jemand Bedarf hat nach \ selber zu suchen, falls dieser Fall doch  vorkommen sollte muss er das \ natürlich anschließend selber mit \\ maskieren.

Gruß
  Claudiu
Titel: Antw:configDB.pm - ESCAPE für configdb search [PATCH]
Beitrag von: betateilchen am 13 Oktober 2015, 19:12:20
Schau ich mir bei Gelegenheit an.

Aber im Moment hab ich eine andere Großbaustelle  8)
Titel: Antw:configDB.pm - ESCAPE für configdb search [PATCH]
Beitrag von: rapster am 13 Oktober 2015, 19:53:20
Passt, nur keine Eile, is ja bei mir lokal drin, reicht mir vollkommen aus wenn beim nächsten configDB Update die Änderung nur nicht wieder Rückgängig gemacht wird ;)

Gruß
  Claudiu