svn: /phpdoc/de/trunk/reference/pdo_sqlite/ PDO/sqliteCreateAggregate.xml PDO/sqliteCreateFunction.xml functions/PDO-sqliteCreateAggregate.xml functions/PDO-sqliteCreateFunction.xml

[email protected] (Christoph Michael Becker)
Newsgroups php.doc.de
Message-ID <[email protected]>
cmb                                      Thu, 29 Mar 2018 12:56:59 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=344585

Log:
Sync with EN

Changed paths:
    A   phpdoc/de/trunk/reference/pdo_sqlite/PDO/
    A   phpdoc/de/trunk/reference/pdo_sqlite/PDO/sqliteCreateAggregate.xml
    A   phpdoc/de/trunk/reference/pdo_sqlite/PDO/sqliteCreateFunction.xml
    D   phpdoc/de/trunk/reference/pdo_sqlite/functions/PDO-sqliteCreateAggregate.xml
    D   phpdoc/de/trunk/reference/pdo_sqlite/functions/PDO-sqliteCreateFunction.xml
svn-diffs-344585.txt (text/x-diff, 31.1 KB)
Added: phpdoc/de/trunk/reference/pdo_sqlite/PDO/sqliteCreateAggregate.xml
===================================================================
--- phpdoc/de/trunk/reference/pdo_sqlite/PDO/sqliteCreateAggregate.xml	                        (rev 0)
+++ phpdoc/de/trunk/reference/pdo_sqlite/PDO/sqliteCreateAggregate.xml	2018-03-29 12:56:59 UTC (rev 344585)
@@ -0,0 +1,260 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!-- $Revision: 318318 $ -->
+<!-- EN-Revision: 342286 Maintainer: lapistano Status: ready -->
+<refentry xml:id="pdo.sqlitecreateaggregate" xmlns="http://docbook.org/ns/docbook">
+ <refnamediv>
+  <refname>PDO::sqliteCreateAggregate</refname>
+  <refpurpose>
+   Registriert eine aggregierte, benutzerdefinierte Funktion, die in einer SQLite-Anfrage genutzt werden kann
+  </refpurpose>
+ </refnamediv>
+
+ <refsect1 role="description">
+  &reftitle.description;
+  <methodsynopsis>
+   <modifier>public</modifier> <type>bool</type><methodname>PDO::sqliteCreateAggregate</methodname>
+   <methodparam><type>string</type><parameter>function_name</parameter></methodparam>
+   <methodparam><type>callable</type><parameter>step_func</parameter></methodparam>
+   <methodparam><type>callable</type><parameter>finalize_func</parameter></methodparam>
+   <methodparam choice="opt"><type>int</type><parameter>num_args</parameter></methodparam>
+  </methodsynopsis>
+  &warn.experimental.func;
+  <para>
+   Diese Methode entspricht
+   <xref linkend="pdo.sqlitecreatefunction" />, mit dem Unterschied, dass
+   sie Funktionen registriert, welche benutzt werden können, ein Ergebnis über alle
+   Reihen einer Anfrage zu aggregieren.
+  </para>
+  <para>
+   Der Hauptunterschied zwischen dieser Methode und <xref
+   linkend="pdo.sqlitecreatefunction" /> ist, dass zwei Funktionen
+   notwendig sind, um die Aggregierung zu verwalten.
+  </para>
+ </refsect1>
+
+ <refsect1 role="parameters">
+  &reftitle.parameters;
+  <para>
+   <variablelist>
+    <varlistentry>
+     <term><parameter>function_name</parameter></term>
+     <listitem>
+      <para>
+       Der Name der in der Anfrage genutzten Funktion.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><parameter>step_func</parameter></term>
+     <listitem>
+      <para>
+       'Callback'-Funktion, welche für jede Reihe des Abfrageergebnisses ausgeführt wird.
+       Ihr PHP sollte das Ergebnis akkumulieren und in der Aggregation 'context' speichern.
+      </para>
+      <para>
+       Es ist notwendig, diese Funktion wie folgt zu definieren:
+       <methodsynopsis>
+        <type>mixed</type><methodname><replaceable>step</replaceable></methodname>
+        <methodparam><type>mixed</type><parameter>context</parameter></methodparam>
+        <methodparam><type>int</type><parameter>rownumber</parameter></methodparam>
+        <methodparam><type>mixed</type><parameter>value1</parameter></methodparam>
+        <methodparam choice="opt"><type>mixed</type><parameter>value2</parameter></methodparam>
+        <methodparam choice="opt"><type>mixed</type><parameter>..</parameter></methodparam>
+       </methodsynopsis>
+      </para>
+      <para>
+       Für die erste Reihe wird <varname>context</varname> &null; sein. Folgende Reihen
+       werden den zuvor zurückgegebenen Wert haben. Sie sollten diesen nutzen, um den
+       Status der Aggregation zu pflegen.
+      </para>
+      <para>
+       <varname>rownumber</varname> wird die Number der aktuellen Reihe beinhalten.
+      </para>
+      <para>
+       Der Rückgabewert dieser Funktion wird als <parameter>context</parameter>
+       Argument im nächsten Aufruf der step oder finalize Funktion verwendet.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><parameter>finalize_func</parameter></term>
+     <listitem>
+      <para>
+       'Callback'-Funktion, die die Informationen aller Reihen aggregiert.
+       Sind alle Reihen abgearbeitet, wird diese Funktion aufgerufen. Diese
+       sollte dann die Daten der Aggregation 'context' auswerten und das
+       Ergebnis zurückgeben. 'Callback'-Funktionen sollten einen Variablentyp
+       liefern, der von SQLite erwartet wird (z.B. <link
+       linkend="language.types.intro">scalar type</link>).
+      </para>
+      <para>
+       Diese Funktion ist als
+       <methodsynopsis>
+        <type>mixed</type><methodname><replaceable>fini</replaceable></methodname>
+        <methodparam><type>mixed</type><parameter>context</parameter></methodparam>
+        <methodparam><type>int</type><parameter>rownumber</parameter></methodparam>
+       </methodsynopsis>
+       zu definieren.
+      </para>
+      <para>
+       <varname>context</varname> wird den Rückgabewert des letzten Aufrufs der
+       Schritt-Funktion enthalten.
+      </para>
+      <para>
+       <varname>rownumber</varname> wird die Anzahl an Reihen enthalten, die
+       bereite Aggregiert wurden.
+      </para>
+      <para>
+       Der Rückgabewert dieser Funktion wird als Rückgabewert für die
+       Aggregation genutzt.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><parameter>num_args</parameter></term>
+     <listitem>
+      <para>
+       Hinweis für den SQLite-Parser, ob die 'Callback'-Funktion eine
+       bestimmte Anzahl an Parametern erwartet.
+      </para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </para>
+ </refsect1>
+
+ <refsect1 role="returnvalues">
+  &reftitle.returnvalues;
+  <para>
+   &return.success;
+  </para>
+ </refsect1>
+
+ <refsect1 role="examples">
+  &reftitle.examples;
+  <para>
+   <example>
+    <title>Beispiel für eine 'max_length'-Aggregierungs-Funktion</title>
+    <programlisting role="php">
+<![CDATA[
+<?php
+$data = array(
+   'one',
+   'two',
+   'three',
+   'four',
+   'five',
+   'six',
+   'seven',
+   'eight',
+   'nine',
+   'ten',
+   );
+$db = new PDO('sqlite::memory:');
+$db->exec("CREATE TABLE strings(a)");
+$insert = $db->prepare('INSERT INTO strings VALUES (?)');
+foreach ($data as $str) {
+    $insert->execute(array($str));
+}
+$insert = null;
+
+function max_len_step(&$context, $rownumber, $string)
+{
+    if (strlen($string) > $context) {
+        $context = strlen($string);
+    }
+    return $context;
+}
+
+function max_len_finalize(&$context, $rownumber)
+{
+    return $context === null ? 0 : $context;
+}
+
+$db->sqliteCreateAggregate('max_len', 'max_len_step', 'max_len_finalize');
+
+var_dump($db->query('SELECT max_len(a) from strings')->fetchAll());
+
+?>
+]]>
+    </programlisting>
+   </example>
+  </para>
+  <para>
+   In diesem Beispiel erzeugen wir eine Aggregat-Funktion, die die Länge
+   der längsten Zeichenkette innerhalb einer der Tabellenspalten ermittelt.
+   Die <literal>max_len_step</literal>-Funktion wird für jede durchlaufene Reihe
+   mit dem Parameter <parameter>context</parameter> aufgerufen. Der Parameter
+   'context' ist eine normal PHP Variable, welche Listen oder Objektinhalte
+   beinhalten kann. In diesem Beispiel benötigen wir sie als Speicher für die
+   größte bisher gefundene Länge der geprüften Zeichenketten. Wenn also die
+   die Zeichenkette in <parameter>string</parameter> länger ist, als die aktuell
+   Längste, wird der Inhalt von 'context' mit der neuen Länge überschrieben.
+  </para>
+  <para>
+   Nachdem alle Reihen abgearbeitet wurden, ruft SQLite die
+   <literal>max_len_finalize</literal>-Funktion auf, um das Endergebnis
+   zu ermitteln. Hier können wir nun jede Art von Berechnungen,
+   basierend auf den in <parameter>context</parameter> gesammelten Daten,
+   durchführen. In unserem Beispiel haben wir die Berechgungen bereits bei
+   der Datenerhebung getätigt, dass wir nun nur noch das Ergebnis -
+   den Inhalt von 'context' - zurückgeben brauchen.
+  </para>
+  <tip>
+   <para>
+    Es ist nicht ratsam, eine Kopie der Inhalte in 'context' zu speichern,
+    um diese dann am Ende auszuwerten. Das würde dazu führen, dass SQLite eine
+    große Menge an Speicher benötigt, um die Abfrage abzuarbeiten. Überlegen Sie
+    nur mal, wieviel Speicher eine Abfrage braucht, die 1 Millionen Reihen mit
+    je 32 Byte Inhalt aus der Datenbank liest.
+   </para>
+  </tip>
+  <tip>
+   <para>
+    Sie können <xref linkend="pdo.sqlitecreatefunction" /> und
+    <xref linkend="pdo.sqlitecreateaggregate" /> nutzen, um SQLites
+    native SQL-Funktionen zu überschreiben.
+   </para>
+  </tip>
+  <note>
+   <para>
+    Diese Methode ist im SQLite2-Treiber nicht verfügbar.
+    Benutzen Sie stattdessen die alte SQLite-API.
+   </para>
+  </note>
+ </refsect1>
+
+
+ <refsect1 role="seealso">
+  &reftitle.seealso;
+  <para>
+   <simplelist>
+    <member><xref linkend="pdo.sqlitecreatefunction" /></member>
+    <member><function>sqlite_create_function</function></member>
+    <member><function>sqlite_create_aggregate</function></member>
+   </simplelist>
+  </para>
+ </refsect1>
+
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+indent-tabs-mode:nil
+sgml-parent-document:nil
+sgml-default-dtd-file:"~/.phpdoc/manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->

Added: phpdoc/de/trunk/reference/pdo_sqlite/PDO/sqliteCreateFunction.xml
===================================================================
--- phpdoc/de/trunk/reference/pdo_sqlite/PDO/sqliteCreateFunction.xml	                        (rev 0)
+++ phpdoc/de/trunk/reference/pdo_sqlite/PDO/sqliteCreateFunction.xml	2018-03-29 12:56:59 UTC (rev 344585)
@@ -0,0 +1,217 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!-- $Revision: 318318 $ -->
+<!-- EN-Revision: 342156 Maintainer: lapistano Status: ready -->
+<refentry xml:id="pdo.sqlitecreatefunction" xmlns="http://docbook.org/ns/docbook">
+ <refnamediv>
+  <refname>PDO::sqliteCreateFunction</refname>
+  <refpurpose>
+   Registriert eine benutzerdefinierte Funktion (UDF) zur Nutzung in SQL-Anfragen
+  </refpurpose>
+ </refnamediv>
+
+ <refsect1 role="description">
+  &reftitle.description;
+  <methodsynopsis>
+   <modifier>public</modifier> <type>bool</type><methodname>PDO::sqliteCreateFunction</methodname>
+   <methodparam><type>string</type><parameter>function_name</parameter></methodparam>
+   <methodparam><type>callable</type><parameter>callback</parameter></methodparam>
+   <methodparam choice="opt"><type>int</type><parameter>num_args</parameter><initializer>-1</initializer></methodparam>
+   <methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>0</initializer></methodparam>
+  </methodsynopsis>
+  &warn.experimental.func;
+
+  <para>
+   Diese Methode erlaubt es, eine PHP-Funktion als eine benutzerdefinierte Funktion
+   (<acronym>UDF</acronym>) in SQLite zu registrieren, die dann in einer SQL-Anfrage
+   aufgerufen werden kann.
+  </para>
+  <para>
+   Die UDF kann nun in jeder SQL-Anfrage genutzt werden, die Funktionen aufrufen kann,
+   wie SELECT und UPDATE und auch in Triggern.
+  </para>
+ </refsect1>
+
+ <refsect1 role="parameters">
+  &reftitle.parameters;
+  <para>
+   <variablelist>
+    <varlistentry>
+     <term><parameter>function_name</parameter></term>
+     <listitem>
+      <para>
+       Der Name der Function, der in SQL-Anfragen genutzt wird.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><parameter>callback</parameter></term>
+     <listitem>
+      <para>
+       Die Callback-Funktion, die die definierte SQL-Funktion verarbeitet.
+      </para>
+      <note>
+       <simpara>
+        Die Callback-Funktionen sollten einen Typen zurückgeben, der von SQLite
+        verstanden wird, z.B. <link linkend="language.types.intro">Skalar Typ</link>.
+       </simpara>
+      </note>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><parameter>num_args</parameter></term>
+     <listitem>
+      <para>
+       Die Anzahl von Argumenten, die die SQL-Funktion erwartet. Ist dieser
+       Parameter <literal>-1</literal>, dann kann die SQL-Funktion eine
+       beliebige Anzahl von Argumenten annehmen.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><parameter>flags</parameter></term>
+     <listitem>
+      <para>
+       Eine bitweise Verknüpfung von Flags. Zurzeit wird nur
+       <constant>PDO::SQLITE_DETERMINISTIC</constant> unterstützt, das angibt,
+       dass die Funktion für die selbe Eingabe immer das selbe Ergebnis
+       innerhalb einer einzelnen SQL-Abfrage zurückliefert.
+      </para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </para>
+ </refsect1>
+
+ <refsect1 role="returnvalues">
+  &reftitle.returnvalues;
+  <para>
+   &return.success;
+  </para>
+ </refsect1>
+
+ <refsect1 role="changelog">
+  &reftitle.changelog;
+  <informaltable>
+   <tgroup cols="2">
+    <thead>
+     <row>
+      <entry>&Version;</entry>
+      <entry>&Description;</entry>
+     </row>
+    </thead>
+    <tbody>
+     <row>
+      <entry>PHP 7.1.4</entry>
+      <entry>
+       Der <parameter>flags</parameter> Parameter wurde hinzugefügt.
+      </entry>
+     </row>
+    </tbody>
+   </tgroup>
+  </informaltable>
+ </refsect1>
+
+ <refsect1 role="examples">
+  &reftitle.examples;
+  <para>
+   <example>
+    <title><function>PDO::sqliteCreateFunction</function>-Beispiel</title>
+    <programlisting role="php">
+<![CDATA[
+<?php
+function md5_and_reverse($string)
+{
+    return strrev(md5($string));
+}
+
+$db = new PDO('sqlite:sqlitedb');
+$db->sqliteCreateFunction('md5rev', 'md5_and_reverse', 1);
+$rows = $db->query('SELECT md5rev(filename) FROM files')->fetchAll();
+?>
+]]>
+    </programlisting>
+   </example>
+  </para>
+  <para>
+   In diesem Beispiel beschreiben wir eine Funktion, die die md5-Checksumme einer
+   Zeichenkette berechnet und anschließend wird die Checksumme umgekehrt. Aufgerufen
+   durch die SQL-Anfrage, gibt sie den durch die Funktion geänderten Dateinamen zurück.
+   Die Rückgabewerte der Funktion werden in <parameter>$rows</parameter> gespeichert.
+  </para>
+  <para>
+   Das Praktische an dieser Technik ist, dass das Ergebnis der Abfrage nicht in einer
+   &foreach;-Schleife nachbearbeitet werden muss.
+  </para>
+  <!-- not for PDO it doesn't, at least not yet
+  <para>
+   PHP registers a special function named <literal>php</literal> when the
+   database is first opened.  The php function can be used to call any PHP
+   function without having to register it first.
+  </para>
+  <para>
+   <example>
+    <title>Example of using the PHP function</title>
+    <programlisting role="php">
+<![CDATA[
+<?php
+$rows = $db->query("SELECT php('md5', filename) from files")->fetchAll();
+?>
+]]>
+    </programlisting>
+    <para>
+     This example will call the <function>md5</function> on each
+     <literal>filename</literal> column in the database and return the result
+     into <parameter>$rows</parameter>
+    </para>
+   </example>
+  </para>
+
+  -->
+  <tip>
+   <para>
+    Sie können <xref linkend="pdo.sqlitecreatefunction" /> und
+    <xref linkend="pdo.sqlitecreateaggregate" /> nutzen, um SQLites
+    native SQL-Funktionen zu überschreiben.
+   </para>
+  </tip>
+  <note>
+   <para>
+    Diese Methode ist im SQLite2-Treiber nicht verfügbar.
+    Benutzen Sie stattdessen die alte SQLite-API.
+   </para>
+  </note>
+ </refsect1>
+
+ <refsect1 role="seealso">
+  &reftitle.seealso;
+  <para>
+   <simplelist>
+    <member><xref linkend="pdo.sqlitecreateaggregate" /></member>
+    <member><function>sqlite_create_function</function></member>
+    <member><function>sqlite_create_aggregate</function></member>
+   </simplelist>
+  </para>
+ </refsect1>
+
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+indent-tabs-mode:nil
+sgml-parent-document:nil
+sgml-default-dtd-file:"~/.phpdoc/manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->

Deleted: phpdoc/de/trunk/reference/pdo_sqlite/functions/PDO-sqliteCreateAggregate.xml
===================================================================
--- phpdoc/de/trunk/reference/pdo_sqlite/functions/PDO-sqliteCreateAggregate.xml	2018-03-29 12:21:19 UTC (rev 344584)
+++ phpdoc/de/trunk/reference/pdo_sqlite/functions/PDO-sqliteCreateAggregate.xml	2018-03-29 12:56:59 UTC (rev 344585)
@@ -1,259 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- $Revision$ -->
-<!-- EN-Revision: 315005 Maintainer: lapistano Status: ready -->
-<refentry xml:id="function.pdo-sqlitecreateaggregate" xmlns="http://docbook.org/ns/docbook">
- <refnamediv>
-  <refname>PDO::sqliteCreateAggregate</refname>
-  <refpurpose>
-   Registriert eine aggregierte, benutzerdefinierte Funktion, die in einer SQLite-Anfrage genutzt werden kann
-  </refpurpose>
- </refnamediv>
-
- <refsect1 role="description">
-  &reftitle.description;
-  <classsynopsis>
-   <ooclass><classname>PDO</classname></ooclass>
-   <methodsynopsis>
-    <type>bool</type><methodname>sqliteCreateAggregate</methodname>
-    <methodparam><type>string</type><parameter>function_name</parameter></methodparam>
-    <methodparam><type>callback</type><parameter>step_func</parameter></methodparam>
-    <methodparam><type>callback</type><parameter>finalize_func</parameter></methodparam>
-    <methodparam choice="opt"><type>int</type><parameter>num_args</parameter></methodparam>
-   </methodsynopsis>
-  </classsynopsis>
-  &warn.experimental.func;
-  <para>
-   Diese Methode entspricht
-   <xref linkend="function.pdo-sqlitecreatefunction" />, mit dem Unterschied, dass
-   sie Funktionen registriert, welche benutzt werden können, ein Ergebnis über alle
-   Reihen einer Anfrage zu aggregieren.
-  </para>
-  <para>
-   Der Hauptunterschied zwischen dieser Methode und <xref
-   linkend="function.pdo-sqlitecreatefunction" /> ist, dass zwei Funktionen
-   notwendig sind, um die Aggregierung zu verwalten.
-  </para>
- </refsect1>
-
- <refsect1 role="parameters">
-  &reftitle.parameters;
-  <para>
-   <variablelist>
-    <varlistentry>
-     <term><parameter>function_name</parameter></term>
-     <listitem>
-      <para>
-       Der Name der in der Anfrage genutzten Funktion.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term><parameter>step_func</parameter></term>
-     <listitem>
-      <para>
-       'Callback'-Funktion, welche für jede Reihe des Abfrageergebnisses ausgeführt wird.
-       Ihr PHP sollte das Ergebnis akkumulieren und in der Aggregation 'context' speichern.
-      </para>
-      <para>
-       Es ist notwendig, diese Funktion wie folgt zu definieren:
-       <methodsynopsis>
-        <methodname><replaceable>step</replaceable></methodname>
-        <methodparam><type>mixed</type><parameter>context</parameter></methodparam>
-        <methodparam><type>int</type><parameter>rownumber</parameter></methodparam>
-        <methodparam><type>mixed</type><parameter>value1</parameter></methodparam>
-        <methodparam choice="opt"><type>mixed</type><parameter>value2</parameter></methodparam>
-        <methodparam choice="opt"><type>mixed</type><parameter>..</parameter></methodparam>
-       </methodsynopsis>
-      </para>
-      <para>
-       Für die erste Reihe wird <varname>context</varname> &null; sein. Folgende Reihen
-       werden den zuvor zurückgegebenen Wert haben. Sie sollten diesen nutzen, um den
-       Status der Aggregation zu pflegen.
-      </para>
-      <para>
-       <varname>rownumber</varname> wird die Number der aktuellen Reihe beinhalten.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term><parameter>finalize_func</parameter></term>
-     <listitem>
-      <para>
-       'Callback'-Funktion, die die Informationen aller Reihen aggregiert.
-       Sind alle Reihen abgearbeitet, wird diese Funktion aufgerufen. Diese
-       sollte dann die Daten der Aggregation 'context' auswerten und das
-       Ergebnis zurückgeben. 'Callback'-Funktionen sollten einen Variablentyp
-       liefern, der von SQLite erwartet wird (z.B. <link
-       linkend="language.types.intro">scalar type</link>).
-      </para>
-      <para>
-       Diese Funktion ist als
-       <methodsynopsis>
-        <methodname><replaceable>fini</replaceable></methodname>
-        <methodparam><type>mixed</type><parameter>context</parameter></methodparam>
-        <methodparam><type>int</type><parameter>rownumber</parameter></methodparam>
-       </methodsynopsis>
-       zu definieren.
-      </para>
-      <para>
-       <varname>context</varname> wird den Rückgabewert des letzten Aufrufs der
-       Schritt-Funktion enthalten.
-      </para>
-      <para>
-       <varname>rownumber</varname> wird die Anzahl an Reihen enthalten, die
-       bereite Aggregiert wurden.
-      </para>
-      <para>
-       Der Rückgabewert dieser Funktion wird als Rückgabewert für die
-       Aggregation genutzt.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term><parameter>num_args</parameter></term>
-     <listitem>
-      <para>
-       Hinweis für den SQLite-Parser, ob die 'Callback'-Funktion eine
-       bestimmte Anzahl an Parametern erwartet.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </para>
- </refsect1>
-
- <refsect1 role="returnvalues">
-  &reftitle.returnvalues;
-  <para>
-   &return.success;
-  </para>
- </refsect1>
-
- <refsect1 role="examples">
-  &reftitle.examples;
-  <para>
-   <example>
-    <title>Beispiel für eine 'max_length'-Aggregierungs-Funktion</title>
-    <programlisting role="php">
-<![CDATA[
-<?php
-$data = array(
-   'one',
-   'two',
-   'three',
-   'four',
-   'five',
-   'six',
-   'seven',
-   'eight',
-   'nine',
-   'ten',
-   );
-$db = new PDO('sqlite::memory:');
-$db->exec("CREATE TABLE strings(a)");
-$insert = $db->prepare('INSERT INTO strings VALUES (?)');
-foreach ($data as $str) {
-    $insert->execute(array($str));
-}
-$insert = null;
-
-function max_len_step(&$context, $rownumber, $string)
-{
-    if (strlen($string) > $context) {
-        $context = strlen($string);
-    }
-    return $context;
-}
-
-function max_len_finalize(&$context, $rownumber)
-{
-    return $context;
-}
-
-$db->sqliteCreateAggregate('max_len', 'max_len_step', 'max_len_finalize');
-
-var_dump($db->query('SELECT max_len(a) from strings')->fetchAll());
-
-?>
-]]>
-    </programlisting>
-   </example>
-  </para>
-  <para>
-   In diesem Beispiel erzeugen wir eine Aggregat-Funktion, die die Länge
-   der längsten Zeichenkette innerhalb einer der Tabellenspalten ermittelt.
-   Die <literal>max_len_step</literal>-Funktion wird für jede durchlaufene Reihe
-   mit dem Parameter <parameter>context</parameter> aufgerufen. Der Parameter
-   'context' ist eine normal PHP Variable, welche Listen oder Objektinhalte
-   beinhalten kann. In diesem Beispiel benötigen wir sie als Speicher für die
-   größte bisher gefundene Länge der geprüften Zeichenketten. Wenn also die
-   die Zeichenkette in <parameter>string</parameter> länger ist, als die aktuell
-   Längste, wird der Inhalt von 'context' mit der neuen Länge überschrieben.
-  </para>
-  <para>
-   Nachdem alle Reihen abgearbeitet wurden, ruft SQLite die
-   <literal>max_len_finalize</literal>-Funktion auf, um das Endergebnis
-   zu ermitteln. Hier können wir nun jede Art von Berechnungen,
-   basierend auf den in <parameter>context</parameter> gesammelten Daten,
-   durchführen. In unserem Beispiel haben wir die Berechgungen bereits bei
-   der Datenerhebung getätigt, dass wir nun nur noch das Ergebnis -
-   den Inhalt von 'context' - zurückgeben brauchen.
-  </para>
-  <tip>
-   <para>
-    Es ist nicht ratsam, eine Kopie der Inhalte in 'context' zu speichern,
-    um diese dann am Ende auszuwerten. Das würde dazu führen, dass SQLite eine
-    große Menge an Speicher benötigt, um die Abfrage abzuarbeiten. Überlegen Sie
-    nur mal, wieviel Speicher eine Abfrage braucht, die 1 Millionen Reihen mit
-    je 32 Byte Inhalt aus der Datenbank liest.
-   </para>
-  </tip>
-  <tip>
-   <para>
-    Sie können <xref linkend="function.pdo-sqlitecreatefunction" /> und
-    <xref linkend="function.pdo-sqlitecreateaggregate" /> nutzen, um SQLites
-    native SQL-Funktionen zu überschreiben.
-   </para>
-  </tip>
-  <note>
-   <para>
-    Diese Methode ist im SQLite2-Treiber nicht verfügbar.
-    Benutzen Sie stattdessen die alte SQLite-API.
-   </para>
-  </note>
- </refsect1>
-
-
- <refsect1 role="seealso">
-  &reftitle.seealso;
-  <para>
-   <simplelist>
-    <member><xref linkend="function.pdo-sqlitecreatefunction" /></member>
-    <member><function>sqlite_create_function</function></member>
-    <member><function>sqlite_create_aggregate</function></member>
-   </simplelist>
-  </para>
- </refsect1>
-
-</refentry>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-indent-tabs-mode:nil
-sgml-parent-document:nil
-sgml-default-dtd-file:"~/.phpdoc/manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
--->

Deleted: phpdoc/de/trunk/reference/pdo_sqlite/functions/PDO-sqliteCreateFunction.xml
===================================================================
--- phpdoc/de/trunk/reference/pdo_sqlite/functions/PDO-sqliteCreateFunction.xml	2018-03-29 12:21:19 UTC (rev 344584)
+++ phpdoc/de/trunk/reference/pdo_sqlite/functions/PDO-sqliteCreateFunction.xml	2018-03-29 12:56:59 UTC (rev 344585)
@@ -1,185 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- $Revision$ -->
-<!-- EN-Revision: 315005 Maintainer: lapistano Status: ready -->
-<refentry xml:id="function.pdo-sqlitecreatefunction" xmlns="http://docbook.org/ns/docbook">
- <refnamediv>
-  <refname>PDO::sqliteCreateFunction</refname>
-  <refpurpose>
-   Registriert eine benutzerdefinierte Funktion (UDF) zur Nutzung in SQL-Anfragen
-  </refpurpose>
- </refnamediv>
-
- <refsect1 role="description">
-  &reftitle.description;
-  <classsynopsis>
-   <ooclass><classname>PDO</classname></ooclass>
-   <methodsynopsis>
-    <type>bool</type><methodname>sqliteCreateFunction</methodname>
-    <methodparam><type>string</type><parameter>function_name</parameter></methodparam>
-    <methodparam><type>callback</type><parameter>callback</parameter></methodparam>
-    <methodparam choice="opt"><type>int</type><parameter>num_args</parameter></methodparam>
-   </methodsynopsis>
-  </classsynopsis>
-  &warn.experimental.func;
-
-  <para>
-   Diese Methode erlaubt es, eine PHP-Funktion als eine benutzerdefinierte Funktion
-   (<acronym>UDF</acronym>) in SQLite zu registrieren, die dann in einer SQL-Anfrage
-   aufgerufen werden kann.
-  </para>
-  <para>
-   Die UDF kann nun in jeder SQL-Anfrage genutzt werden, die Funktionen aufrufen kann,
-   wie SELECT und UPDATE und auch in Triggern.
-  </para>
- </refsect1>
-
- <refsect1 role="parameters">
-  &reftitle.parameters;
-  <para>
-   <variablelist>
-    <varlistentry>
-     <term><parameter>function_name</parameter></term>
-     <listitem>
-      <para>
-       Der Name der Function, der in SQL-Anfragen genutzt wird.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term><parameter>callback</parameter></term>
-     <listitem>
-      <para>
-       Die Callback-Funktion, die die definierte SQL-Funktion verarbeitet.
-      </para>
-      <note>
-       <simpara>
-        Die Callback-Funktionen sollten einen Typen zurückgeben, der von SQLite
-        verstanden wird, z.B. <link linkend="language.types.intro">Skalar Typ</link>.
-       </simpara>
-      </note>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term><parameter>num_args</parameter></term>
-     <listitem>
-      <para>
-       Hinweis für den SQLite-Parser, ob die Callback-Funktion eine bestimmte Anzahl
-       an Parametern erwartet.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </para>
- </refsect1>
-
- <refsect1 role="returnvalues">
-  &reftitle.returnvalues;
-  <para>
-   &return.success;
-  </para>
- </refsect1>
-
- <refsect1 role="examples">
-  &reftitle.examples;
-  <para>
-   <example>
-    <title><function>PDO::sqliteCreateFunction</function>-Beispiel</title>
-    <programlisting role="php">
-<![CDATA[
-<?php
-function md5_and_reverse($string)
-{
-    return strrev(md5($string));
-}
-
-$db = new PDO('sqlite:sqlitedb');
-$db->sqliteCreateFunction('md5rev', 'md5_and_reverse', 1);
-$rows = $db->query('SELECT md5rev(filename) FROM files')->fetchAll();
-?>
-]]>
-    </programlisting>
-   </example>
-  </para>
-  <para>
-   In diesem Beispiel beschreiben wir eine Funktion, die die md5-Checksumme einer
-   Zeichenkette berechnet und anschließend wird die Checksumme umgekehrt. Aufgerufen
-   durch die SQL-Anfrage, gibt sie den durch die Funktion geänderten Dateinamen zurück.
-   Die Rückgabewerte der Funktion werden in <parameter>$rows</parameter> gespeichert.
-  </para>
-  <para>
-   Das Praktische an dieser Technik ist, dass das Ergebnis der Abfrage nicht in einer
-   &foreach;-Schleife nachbearbeitet werden muss.
-  </para>
-  <!-- not for PDO it doesn't, at least not yet
-  <para>
-   PHP registers a special function named <literal>php</literal> when the
-   database is first opened.  The php function can be used to call any PHP
-   function without having to register it first.
-  </para>
-  <para>
-   <example>
-    <title>Example of using the PHP function</title>
-    <programlisting role="php">
-<![CDATA[
-<?php
-$rows = $db->query("SELECT php('md5', filename) from files")->fetchAll();
-?>
-]]>
-    </programlisting>
-    <para>
-     This example will call the <function>md5</function> on each
-     <literal>filename</literal> column in the database and return the result
-     into <parameter>$rows</parameter>
-    </para>
-   </example>
-  </para>
-
-  -->
-  <tip>
-   <para>
-    Sie können <xref linkend="function.pdo-sqlitecreatefunction" /> und
-    <xref linkend="function.pdo-sqlitecreateaggregate" /> nutzen, um SQLites
-    native SQL-Funktionen zu überschreiben.
-   </para>
-  </tip>
-  <note>
-   <para>
-    Diese Methode ist im SQLite2-Treiber nicht verfügbar.
-    Benutzen Sie stattdessen die alte SQLite-API.
-   </para>
-  </note>
- </refsect1>
-
- <refsect1 role="seealso">
-  &reftitle.seealso;
-  <para>
-   <simplelist>
-    <member><xref linkend="function.pdo-sqlitecreateaggregate" /></member>
-    <member><function>sqlite_create_function</function></member>
-    <member><function>sqlite_create_aggregate</function></member>
-   </simplelist>
-  </para>
- </refsect1>
-
-</refentry>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-indent-tabs-mode:nil
-sgml-parent-document:nil
-sgml-default-dtd-file:"~/.phpdoc/manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
--->
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.