also habe ich einen kleinen Script produziert, der alle IPS-Objekte in eine PG-Tabelle hinterlegt, zur relationalen Verwendung mit den Value-Tabellen.
<?php
$IpsObjectList = IPS_GetObjectList();
$CountIpsObjects = count($IpsObjectList);
echo $CountIpsObjects. " ips objects"."<br>";
//print_r($IpsObjectList);
$dbconn = pg_connect("host=localhost port=5432 dbname=IpsLogging user=IPS password=ips") or die ('Verbindungsaufbau fehlgeschlagen: ' . pg_last_error());
echo $dbconn . "<br>";
if ($dbconn==0) {die ("no odbc connection");}
pg_query($dbconn, "DROP TABLE IpsObjects;");
$createTable = " CREATE TABLE IpsObjects (
CHILDRENIDS TEXT,
HASCHILDREN BOOLEAN,
ISPERSISTENT BOOLEAN,
OBJECTICON TEXT,
OBJECTID INTEGER UNIQUE,
OBJECTIDENT TEXT,
OBJECTINFO TEXT,
OBJECTISHIDDEN BOOLEAN,
OBJECTISREADONLY BOOLEAN,
OBJECTNAME TEXT,
OBJECTPOSITION TEXT,
OBJECTSUMMARY TEXT,
OBJECTTYPE INTEGER,
PARENTID INTEGER,
ID SERIAL,
PRIMARY KEY(ID)
);";
pg_query($dbconn, $createTable);
$SqlExecuteString ="";
$SqlInsertString = "ChildrenIDs, HasChildren, IsPersistent, ObjectIcon, ObjectID, ObjectIdent, ObjectInfo, ObjectIsHidden, ObjectIsReadOnly, ObjectName, ObjectPosition, ObjectSummary, ObjectType, ParentID";
//$SqlValueString = "0,0,0,0,0,0,0,0,0,0, 0,0,0,0";
foreach ($IpsObjectList as $key1 => $value1)
{
echo "[$key1] => $value1"."<br>";
$IpsObject=IPS_GetObject($value1);
(string)$ChildrenIDs = utf8_encode(SqlNull(implode(",",$IpsObject['ChildrenIDs'])));
(bool)$HasChildren = SqlNull($IpsObject['HasChildren']);
(bool)$IsPersistent= $IpsObject['IsPersistent'];
(string)$ObjectIcon=utf8_encode(SqlNull($IpsObject['ObjectIcon']));
(int)$ObjectID=SqlNull($IpsObject['ObjectID']);
(string)$ObjectIdent=utf8_encode(SqlNull($IpsObject['ObjectIdent']));
(string)$ObjectInfo=utf8_encode(SqlNull($IpsObject['ObjectInfo']));
(bool)$ObjectIsHidden= SqlNull($IpsObject['ObjectIsHidden']);
(bool)$ObjectIsReadOnly= SqlNull($IpsObject['ObjectIsReadOnly']);
(string)$ObjectName=utf8_encode($IpsObject['ObjectName']);
(string)$ObjectPosition=utf8_encode(SqlNull($IpsObject['ObjectPosition']));
(string)$ObjectSummary=utf8_encode(SqlNull($IpsObject['ObjectSummary']));
(int)$ObjectType=SqlNull($IpsObject['ObjectType']);
(int)$ParentID=SqlNull($IpsObject['ParentID']);
$SqlValueString =
"'".$ChildrenIDs."',".
$HasChildren . ",".
$IsPersistent . ",".
"'" .$ObjectIcon."'" . ",".
$ObjectID . ",".
"'" .$ObjectIdent."'" . ",".
"'".$ObjectInfo."'". ",".
$ObjectIsHidden . ",".
$ObjectIsReadOnly . ",".
"'".$ObjectName. "'".",".
$ObjectPosition . ",".
"'".$ObjectSummary. "'".",".
$ObjectType . ",".
$ParentID;
$SqlExecuteString = "INSERT INTO IpsObjects ($SqlInsertString) VALUES ($SqlValueString);".chr(13);
echo $SqlExecuteString;
$QueryResult = pg_query($dbconn, $SqlExecuteString);
if (!$QueryResult)
{
// echo "A Postgres error occured:". pg_last_error();
}
}
pg_close($dbconn);
//----------------------------------------------
function SqlNull($SqlValue)
{
// insert the string "Null" into a null variable, for compatibility with Access SQL.
if (((string)$SqlValue==""))
{(string)$SqlValue='NULL';return ($SqlValue);}
else
{return ($SqlValue);}
}
?>