<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1-Based Variant V1.0//EN" "dtd/kdex.dtd" [
 <!ENTITY ksqlshell   "<application>KSqlShell</application>">
 <!ENTITY kappname "ksqlshell;">
 <!ENTITY % addindex "IGNORE">
 <!ENTITY % German "INCLUDE">
]>

<book lang="de">

<bookinfo>
<title>Das KSqlShell Handbuch</title>

<authorgroup>
<author>
<firstname>Olaf</firstname>
<surname>Gawenda</surname>
<affiliation>
<address><email>o.gawenda@gmx.de</email></address>
</affiliation>
</author>

<othercredit role="developer">
<firstname>Olaf</firstname>
<surname>Gawenda</surname>
<affiliation>
<address><email>o.gawenda@gmx.de</email></address>
</affiliation>
<contrib>Entwickler und Betreuer</contrib>
</othercredit>

</authorgroup>

<copyright>
<year>2003</year>
<holder>Olaf Gawenda</holder>
</copyright>
<legalnotice>&FDLNotice;</legalnotice>
<date>31/07/2003</date>
<releaseinfo>0.1.0</releaseinfo>

<abstract><para>&ksqlshell; ist ein Client f&uuml;r die Datenbanksysteme MySql und PostgreSql unter KDE.</para></abstract>

<keywordset>
<keyword>Datenbank</keyword>
<keyword>mysql</keyword>
<keyword>postgresql</keyword>
</keywordset>

</bookinfo>

<chapter id="Introduction"><title>Einleitung</title>
<para>
&ksqlshell; eignet sich besonders
f&uuml;r den gleichzeitigen Zugriff auf verschiedene Datenbankserver
und soll dabei helfen den &Uuml;berblick zu bewahren. Durch das GUI werden bis jetzt folgende Funktionen unterst&uuml;tzt: 
</para>
<itemizedlist>
  <listitem><para>Erstellung von Datenbanken und Tabellen</para></listitem>
  <listitem><para>&Auml;ndern von Feldnamen und Typen an bestehenden Tabellen</para></listitem>
  <listitem><para>Absetzen von SQL- Befehlen mit Eingabedialog f&uuml;r vorzugebende Werte</para></listitem>
  <listitem><para>Einfaches Speichern und Verwalten der SQL-Befehle</para></listitem>
  <listitem><para>Einf&uuml;gen, &Auml;ndern und L&ouml;schen von Werten in der Tabellenansicht</para></listitem>
  <listitem><para>Transponieren der Tabellenansicht</para></listitem>
</itemizedlist>

</chapter>


<chapter id="Installation"><title>Installation</title>

<para>
Erforderlich sind QT3.x und die Entwicklerpakete "mysql-devel" sowie "postgresql-devel".
</para>

<para>
Zum Compilieren des Programms sind die folgenden Befehle einzugeben:
<screen>
<prompt>%</prompt> <userinput>./configure --prefix="kdedir"</userinput>
<prompt>%</prompt> <userinput>make</userinput>
<prompt>%</prompt> <userinput>make install</userinput>
</screen>
</para>
<para>
 Bei Fehlern im Programm benachrichtigen Sie bitte den Autor
<ulink url="mailto:o.gawenda@gmx.de">Olaf Gawenda</ulink>.
</para>
</chapter>

<chapter id="usage"><title>Verwendung von KSqlShell</title>
<sect1 id="introduction_gui"><title>&Uuml;bersicht</title>
<para>
Die Oberfl&auml;che teilt sich in die Bereiche "Navigation", "Ausgabe" und "Befehlseingabe".
</para>
<mediaobject><imageobject><imagedata fileref="ksqlshell_beg_doc.png" format="PNG"/></imageobject></mediaobject>
<sect2 id="navi"><title>Navigation</title>
<para>
Die erste Spalte der Navigationsleiste zeigt hierarchisch die "Serververbindungen", "Datenbanken", "Tabellen" sowie die "Felder". 
In der zweiten ist der Status der Verbindung, die Anzahl der Tabelleneintr&auml;ge bzw. der Feldtyp zu sehen. Durch dr&uuml;cken der rechten 
Maustaste auf einen dieser Eintr&auml;ge erh&auml;lt man ein Men&uuml; in dem abh&auml;ngig von der Art des Eintrages Aktionen wie z.B. das 
Umbenennen einer Tabelle gestartet werden k&ouml;nnen. 
</para>
<mediaobject><imageobject><imagedata fileref="navigation_doc.png" format="PNG"/></imageobject></mediaobject>
</sect2>
<sect2 id="output"><title>Ausgabe</title>
<para>
Im Ausgabefenster k&ouml;nnen neben den Resultaten von SQL-Abfragen die Liste der Felder von Tabellen mit ihren Attributen sowie die Befehlsliste
angezeigt werden. Durch dr&uuml;cken der rechten Maustaste auf einen der Karteireiter erscheint ein Men&uuml; mit den Punkten "Fenster l&ouml;sen", "umbenennen" und "schlie&szlig;en". "Fenster l&ouml;sen" l&auml;&szlig;t die Ausgabe in einem eigenen Fenster erscheinen und mit "umbenennen" kann der Name ge&auml;ndert werden.
</para>
<mediaobject><imageobject><imagedata fileref="ausgabe_beg_doc.png" format="PNG"/></imageobject></mediaobject>
<para>
 Bis auf die Befehlsliste und die Fehleranzeige unterteilt sich jedes Ausgabefenster in ein Textfeld mit div. Informationen sowie einer Tabellenansicht und enth&auml;lt u.a. die Schaltfl&auml;chen: "Fenster l&ouml;sen / einf&uuml;gen", "schlie&szlig;en" und "neu laden" (Befehl wird erneut ausgef&uuml;hrt und das Resultat erscheint im gleichen Fenster). 
</para>
<mediaobject><imageobject><imagedata fileref="ausgabe_befehl.png" format="PNG"/></imageobject></mediaobject>
<para>
</para>
<mediaobject><imageobject><imagedata fileref="ausgabe_anzeigen.png" format="PNG"/></imageobject></mediaobject>
<para>
</para>
<mediaobject><imageobject><imagedata fileref="ausgabe_felder.png" format="PNG"/></imageobject></mediaobject>
<para>
</para>
<mediaobject><imageobject><imagedata fileref="ausgabe_fehler.png" format="PNG"/></imageobject></mediaobject>
<para>
</para>
<mediaobject><imageobject><imagedata fileref="ausgabe_befehlsliste.png" format="PNG"/></imageobject></mediaobject>
</sect2>
<sect2 id="input_sql"><title>Befehlseingabe</title>
<para>
Dieses Texteingabefeld dient zum Absetzen von SQL-Befehlen. Der Prompt zeigt dabei die Verbindung sowie die Datenbank an, an die der Befehl geschickt wird. &Uuml;ber die Navigationsleiste kann beides ge&auml;ndert werden.
</para>
<para>
Um einen Befehl auszuf&uuml;hren, ist am Ende ein Semikolon einzugeben und die Eingabetaste zu dr&uuml;cken. Mehrere Befehle (durch Semikolon getrennt) werden nacheinander ausgef&uuml;hrt.
</para>
<mediaobject><imageobject><imagedata fileref="eingabe_doc.png" format="PNG"/></imageobject></mediaobject>
</sect2>
</sect1>
<sect1 id="make connection"><title>Einrichtung einer Datenbankverbindung</title>
<para>
Klicken auf "neue Verbindung" oder im Men&uuml; "Verbindungen" den Punkt "neue Verbindung" w&auml;hlen. Es erscheint ein Eingabedialog, in dem der Datenbanktyp, die IP oder der Servername, Port, Benutzer, Passwort sowie eine Datenbank auf dem Server einzugeben sind.
</para>
<mediaobject><imageobject><imagedata fileref="neue_verbindung_menu_doc.png" format="PNG"/></imageobject></mediaobject>
<mediaobject><imageobject><imagedata fileref="neue_verbindung_doc.png" format="PNG"/></imageobject></mediaobject>
</sect1>
<sect1 id="make database"><title>Erstellen einer Datenbank</title>
<para>
&Uuml;ber "neue Datenbank" gelangt man zu einem Eingabefeld, in dem der Name der neuen Datenbank angegeben wird. Ist die Datenbank angelegt, so erscheint sie in der Navigationsleiste.
</para>
<mediaobject><imageobject><imagedata fileref="neue_db_doc.png" format="PNG"/></imageobject></mediaobject>
</sect1>
<sect1 id="make table"><title>Erstellen einer Tabelle</title>
<para>
Der Dialog f&uuml;r das Einrichten einer neuen Tabelle ist &uuml;ber die entsprechende Schaltfl&auml;che oder &uuml;ber, das durch Rechtsklick auf eine Datenbank in der Navigationsleiste erscheinende Men&uuml;, zu erreichen. Er unterscheidet sich in Abh&auml;ngigkeit vom Datenbanktyp (PgSql oder MySql).
</para>
<mediaobject><imageobject><imagedata fileref="neue_tabelle_menu_doc.png" format="PNG"/></imageobject></mediaobject>
<para>
</para>
<para>
In beiden F&auml;llen ist der Name der Tabelle anzugeben. Der Dialog enth&auml;lt nach Aufruf eine Liste mit vier Zeilen und ein Texteingabefeld f&uuml;r den Create-Befehl. Jede Zeile entspricht einer Spalte der neuen Tabelle. Klickt man mit der linken Maustaste auf eine Zeilennummer, so wird ein Men&uuml; mit den Punkten "Spalte einf&uuml;gen" und "Spalte l&ouml;schen" sichtbar. Damit l&auml;&szlig;t sich die Anzahl der Felder (Spalten der Tabelle) ver&auml;ndern. Neben dem Feldnamen und dem Typ k&ouml;nnen die L&auml;nge bzw. die Dezimalstellen ("L&auml;nge, Dezimal") und ein Attribut wie z.B. "unsigned" vorgegeben werden. Der unter "Standard" eingetragene Wert wird beim Einf&uuml;gen (Insert-Befehl) in die Tabelle eingetragen, wenn nichts Anderes vorgegeben ist. "Nicht Null" bedeutet, die Wertebelegung des Feldes mit "NULL" (unbekannter Wert) ist nicht zul&auml;ssig. Die mit "Unique" oder "Primary Key" gekennzeichneten Felder bilden ein Tupel, welches bez&uuml;glich jeder in die Tabelle eingetragenen Zeile eindeutig ist bzw. zur eindeutigen Identifikation dieser verwendet werden kann, wobei "Primary Key" eine Kombination von "Nicht Null" und "Unique" darstellt. 
</para>
<para>
Nicht alle M&ouml;glichkeiten zur Erstellung einer Tabelle sind &uuml;ber die Liste abbildbar. Durch Klicken auf die Schaltfl&auml;che "Create-Befehl &auml;ndern" erscheint im Textfeld ein Create-Befehl, der aus der bisherigen Eingabe in die Liste resultiert. Er kann nun ge&auml;ndert und ausgef&uuml;hrt werden. Eine auf diese Art erzeugte Tabelle erscheint nicht sofort in der Navigationsleiste!    
</para>
<para>
Der Dialog f&uuml;r MySql-Datenbanken enth&auml;lt zus&auml;tzlich die Eingabem&ouml;glichkeiten: "Index", "Werte" sowie "Optionen". Die Geschwindigkeit des Select-Befehls erh&ouml;ht sich, wenn nach bestimmten Werten in einer mit "Index" gekennzeichneten Spalte "selektiert" wird. F&uuml;r die Datentypen "enum" und "set" werden in "Werte" die Menge der erlaubten Werte eingetragen, wobei diese durch ein Komma zu trennen sind (z.B. 'a', '2', 'c'). "Optionen" enth&auml;lt eine vom Datentyp abh&auml;ngige Auswahl von Optionen ("auto_increment" f&uuml;r den Typ "int").   
</para>
<mediaobject><imageobject><imagedata fileref="my_tab_dialog.png" format="PNG"/></imageobject></mediaobject>
<para>
Zus&auml;tzlich enth&auml;lt der PgSql-Dialog die Eingabem&ouml;glichkeiten "Erbt", "OIDS" und "Check".  
</para>
<mediaobject><imageobject><imagedata fileref="pg_tab_dialog_doc.png" format="PNG"/></imageobject></mediaobject>
</sect1>
<sect1 id="insert"><title>Daten in eine Tabelle eintragen</title>
<para>
&Uuml;ber den Men&uuml;punkt "einf&uuml;gen" des Tabellenmen&uuml;s bzw. &uuml;ber die entsprechende Schaltfl&auml;che ist der Dialog zum Eintragen von Werten in die Tabelle erreichbar.
</para>
<mediaobject><imageobject><imagedata fileref="einfuegen_menu.png" format="PNG"/></imageobject></mediaobject>
<para>
Das Dialogfenster enth&auml;lt eine Liste mit Namen und Typen der Felder sowie die Werteingabe. Sind Standardwerte f&uuml;r Felder der Tabelle vorgegeben worden, so erscheinen diese beim Aufruf des Dialoges unter "Wert". In Abh&auml;ngigkeit vom Feldtyp sind Anf&uuml;hrungszeichen zu setzen (z.B. 'abc' f&uuml;r ein "varchar(10)"-Feldtyp). Es k&ouml;nnen auch Funktionen wie "now()" in z.B. ein "timestamp"-Feld eingetragen werden, wobei dann keine Anf&uuml;hrungszeichen zu verwenden sind.  
</para>
<mediaobject><imageobject><imagedata fileref="eingabe_dialog.png" format="PNG"/></imageobject></mediaobject>
<para>
Ist die Eingabe fehlerhaft (z.B. durch Eintrag eines Buchstabens in ein nummerisches Feld) erscheint eine Fehleranzeige. Durch Klicken auf "neue Eingabe" gelangt man wieder zum Eingabedialog und kann eine Korrektur vornehmen. "Befehl &auml;ndern" erlaubt es den Insert-Befehl zu &auml;ndern und auszuf&uuml;hren. 
</para>
<mediaobject><imageobject><imagedata fileref="eingabe_fehler.png" format="PNG"/></imageobject></mediaobject>
</sect1>
<sect1 id="select"><title>Anzeigen des Inhalts einer Tabelle</title>
<para>
&Uuml;ber das Tabellenmen&uuml; bzw. die Schaltfl&auml;chen gibt es zwei M&ouml;glichkeiten zum Anzeigen von Tabelleninhalten. Unter "anzeigen (alles)" erh&auml;lt man alle Zeilen der Tabelle. Durch "anzeigen" wird ein Eingabedialog zum Ausw&auml;hlen bestimmter Zeilen gestartet.   
</para>
<mediaobject><imageobject><imagedata fileref="anzeigen_menu.png" format="PNG"/></imageobject></mediaobject>
<para>
Der Eingabedialog besteht aus einer Liste, wie der f&uuml;r das <link linkend="insert">"Eintragen von Werten"</link>, mit Feldnamen und Typen sowie der Werteingabe.
</para>
<para>
Nach Aufruf des Dialoges sind unter "Wert" keine Eintr&auml;ge vorhanden (man erh&auml;lt alle Zeilen der Tabelle). Werden f&uuml;r ein oder mehrere Felder Werte mit einem Vergleichsoperator vorgegeben, so schr&auml;nkt sich die Auswahl der Zeilen auf die ein, f&uuml;r die alle Vergleiche zutreffen. Wie beim Dialog f&uuml;r das <link linkend="insert">"Eintragen von Werten"</link> sind in Abh&auml;ngigkeit des Feldtyps Anf&uuml;hrungszeichen zu setzen und es k&ouml;nnen Funktionen verwendet werden.   
</para>
<mediaobject><imageobject><imagedata fileref="anzeigen_dialog.png" format="PNG"/></imageobject></mediaobject>
<para>												
Das Ausgabefenster besteht aus einem Textfeld, einer Eingabem&ouml;glichkeit f&uuml;r die folgenden Zeilen und der Tabellenansicht. Im Textfeld sind  Verbindung, Datenbank, Tabelle, Zeitpunkt der Abfrage (lokal), die Zeilennummern und der "Select"-Befehl zu sehen. Durch Verschieben der Linie unterhalb des Textfeldes kann es vollst&auml;ndig angezeigt werden. Zum &Auml;ndern der Eingabe klickt man auf "neue Eingabe". Es erscheint erneut der Eingabedialog mit den bisher eingetragenen Werten.  
</para>
<para>
Die Ausgabetabelle hat maximal so viele Zeilen, wie unter <link linkend="setup">"Einstellungen"</link> angegeben wurde. Durch klicken auf "folgende Zeilen anzeigen" erh&auml;lt man die n&auml;chsten.  
</para>
<para>
In der Tabellenansicht k&ouml;nnen direkt &Auml;nderungen vorgenommen werden. Dazu ist mit der linken Maustaste auf eine Zeilennummer zu klicken. Es erscheint ein Men&uuml; mit den Punkten "andern" (update), "einf&uuml;gen" (insert) und "l&ouml;schen" (delete). 
</para>
<mediaobject><imageobject><imagedata fileref="anzeigen_1.png" format="PNG"/></imageobject></mediaobject>
<para>
Nach Auswahl eines Men&uuml;punktes erscheint dieser anstelle der Zeilennummer. Bei "einf&uuml;gen" wird eine neue Zeile eingef&uuml;gt und, so vorhanden, Standardwerte eingetragen. Bis auf "oid" bei PgSql-Datenbanken  sind alle Felder editierbar. Mit Klick auf "neu laden" wird der entsprechende SQL-Befehl ausgef&uuml;hrt und der neue Tabelleninhalt angezeigt. Ist "neu laden" noch nicht geklickt worden, so kann durch "r&uuml;ckg&auml;ngig" der Ausgangszustand wieder hergestellt werden.  
</para>
<mediaobject><imageobject><imagedata fileref="anzeigen_2.png" format="PNG"/></imageobject></mediaobject>
<para>
F&uuml;r die Darstellung von Tabellen mit vielen Spalten und wenig Zeilen eignet sich "Ergebnis transponieren".
</para>
<mediaobject><imageobject><imagedata fileref="anzeigen_3.png" format="PNG"/></imageobject></mediaobject>
<para>
Bei PgSql-Datenbanken werden Objekt-ID's der Tabellen mit angezeigt. 
</para>
<mediaobject><imageobject><imagedata fileref="anzeigen_4.png" format="PNG"/></imageobject></mediaobject>
</sect1>
<sect1 id="sql"><title>Absetzen von SQL-Befehlen</title>
<para>
Das Eingeben von SQL-Befehlen erfolgt im Befehlsfenster (rechts unten) nach dem Prompt. Dieser zeigt die Verbindung sowie die Datenbank, an die die Befehle geschickt werden. Wechseln kann man die Verbindung bzw. Datenbank durch Klicken auf die entsprechenden Eintr&auml;ge in der Navigationsliste. Das Abschicken erfolgt durch Eingabe eines Semikolons (am Ende des Befehls) und dem Dr&uuml;cken der Eingabetaste. Sollen mehrere Befehle nacheinander ausgef&uuml;hrt werden, so sind diese durch Semikolas zu trennen.  
</para>
<mediaobject><imageobject><imagedata fileref="eingabe_doc.png" format="PNG"/></imageobject></mediaobject>
<para>
Bringen dabei ein oder mehrere Befehle Ergebnisse hervor, so werden diese jeweils in einem Ausgabefenster angezeigt. 
Durch Klicken auf "Befehl &auml;ndern und ausf&uuml;hren" oder "neu laden" im Ausgabefenster kann der eingegebene Befehl ge&auml;ndert und ausgef&uuml;hrt bzw. nochmal ausgef&uuml;hrt werden. Ist Letzteres der Fall, so wird das Ergebis im gleichen Fenster mit der aktuellen lokalen Zeit angezeigt.
</para>
<mediaobject><imageobject><imagedata fileref="ausgabe_befehl.png" format="PNG"/></imageobject></mediaobject>
<para>
Das Befehlseingabefenster (Shell) speichert die  ausgef&uuml;hrten Befehle in einer Liste (bis zu 1000). Mit den Tasten "Pfeil hoch" bzw. "Pfeil runter" k&ouml;nnen diese wieder angezeigt werden.
</para>
</sect1>
<sect1 id="save sql"><title>Speichern und Verwalten von SQL-Befehlen</title>
<sect2 id="save"><title>Speichern</title>
<para>
Klickt man nach Eingabe eines SQL-Befehls in das Befehlsfenster auf die Schaltfl&auml;che "Befehl speichern", so erscheint ein Dialog mit drei Textfeldern. Unter "Speichere Befehl als:" ist ein Name f&uuml;r den Befehl einzutragen. Der Befehl selber erscheint im Feld "Befehl:", wo er nochmals ge&auml;ndert werden kann und im Feld "Befehlsbeschreibung" kann man eine Beschreibung hinterlegen.  
</para>
<mediaobject><imageobject><imagedata fileref="befehl_sichern_1.png" format="PNG"/></imageobject></mediaobject>
<para>
Alle Befehle werden in einer XML-Datei, deren Pfand unter <link linkend="setup">"Einstellungen"</link> zu &auml;ndern ist, gespeichert.
</para>
<mediaobject><imageobject><imagedata fileref="befehl_sichern_2.png" format="PNG"/></imageobject></mediaobject>
</sect2>
<sect2 id="run"><title>Ausf&uuml;hren von gespeicherten SQL-Befehlen</title>
<para>
Der "Datenbankmen&uuml;punkt" (Rechtsklick auf einen Datenbankeintrag in der Navigationsleiste) "Befehl ausf&uuml;hren" zeigt alle Namen der zu dieser Datenbank gespeicherten Befehle an.
</para>
<mediaobject><imageobject><imagedata fileref="befehl_ausfuehren_1.png" format="PNG"/></imageobject></mediaobject>
<para>
W&auml;hlt man einen an, so erscheint ein Dialog mit der Befehlsbeschreibung und dem eigentlichen Befehl. Klick auf "OK" f&uuml;hrt diesen aus. 
</para>
<mediaobject><imageobject><imagedata fileref="befehl_ausfuehren_2.png" format="PNG"/></imageobject></mediaobject>
</sect2>
<sect2 id="query_input"><title>Eingabe von Werten f&uuml;r SQL-Befehle</title>
<para>
Oft ist es erforderlich SQL-Befehle mit ver&auml;nderlichen Werten auszuf&uuml;hren. Um dabei den Befehl nicht direkt &auml;ndern zu m&uuml;ssen, gibt es die M&ouml;glichkeit einen Eingabedialog &uuml;ber den SQL-Befehl anzusteuern. Man schreibt dazu genau an der Stelle des SQL-Befehls, an der ein Wert des Eingabedialoges im Befehl erscheinen soll:
<userinput ><replaceable>&lt;input "Name" ["Typ"]>[Standardwert]&lt;/input></replaceable></userinput>. Die in eckigen Klammern stehenden Angaben sind dabei optional. 
</para>
<para>
Z.B. durch die Eingabe von:
</para>
<userinput ><replaceable>select * from db where Db = &lt;input "Datenbank" "char(64) binary">&lt;/input> and Host = &lt;input "Rechner">'localhost'&lt;/input>;</replaceable></userinput>
<para>
im Befehlsfenster erh&auml;lt man den folgenden Dialog.
</para>
<para>
<mediaobject><imageobject><imagedata fileref="befehl_eingabe_dlg.png" format="PNG"/></imageobject></mediaobject>
</para>
<para>
Klickt man nun auf "OK", so wird das unter "Wert" Eingetragene an die entsprechenden Stellen in den SQL-Befehl eingesetzt und der Befehl wird ausgef&uuml;hrt. Besteht der Befehl aus mehreren (durch Semikolon getrennten) Einzelbefehlen, so erscheinen die durch "&lt;input ..." gekennzeichneten Werte aller Befehle im Dialog. Gleiche (d.h. im Namen und im Typ gleiche) Input's erscheinen dabei nur einmal.
</para>
</sect2>
<sect2 id="queryList"><title>Die Befehlsliste</title>
<para>
&Uuml;ber das Men&uuml; "Befehle", Men&uuml;punkt "Befehlsliste" erh&auml;lt man die Liste aller gespeicherten Befehle. Neben der eigentlichen Liste gibt es Textfelder f&uuml;r den Befehl und dessen Beschreibung. Befehl und Beschreibung erscheinen durch Klick auf einen Befehlsnamen in der Liste. Beides kann im jeweiligen Fenster ge&auml;ndert und durch "Befehl speichern" in die Befehlsdatei (siehe: <link linkend="setup">"Einstellungen"</link>) &uuml;bertragen werden. Die Liste kann um neue Verbindungen, Datenbanken und Befehle erweitert werden, wobei Verbindungen bzw. Datenbanken nicht in der <link linkend="navi">Navigationsleiste</link> enthalten sein m&uuml;ssen. 
</para>
<mediaobject><imageobject><imagedata fileref="befehlsliste.png" format="PNG"/></imageobject></mediaobject>
<mediaobject><imageobject><imagedata fileref="befehlsliste_1.png" format="PNG"/></imageobject></mediaobject>
<mediaobject><imageobject><imagedata fileref="befehlsliste_2.png" format="PNG"/></imageobject></mediaobject>
<para>
Das Ausf&uuml;hren von Befehlen erfolgt durch den entsprechenden Men&uuml;punkt. Duch "kopieren" bzw. "auschneiden" und "Befehl einf&uuml;gen" ist es m&ouml;glich Befehle auf andere Verbindungen bzw. Datenbanken zu &uuml;bertragen.
</para>
<mediaobject><imageobject><imagedata fileref="befehlsliste_3.png" format="PNG"/></imageobject></mediaobject>
</sect2>
</sect1>
</chapter>
<chapter id="setup"><title>Einrichten von KSqlShell</title>
<para>
Neben dem Zeitintervall zur Synchronisation der Navigationsleiste und der maximalen Zeilenzahl in den Ausgabefenstern wird hier  die Datei zum Speichern der SQL-Befehle angegeben. Das Zeitintervall sollte mit zunehmender Zahl von Verbindungen, Datenbanken und Tabellen in der Navigationsleiste vergr&ouml;&szlig;ert werden.
</para>
<mediaobject><imageobject><imagedata fileref="einstellungen.png" format="PNG"/></imageobject></mediaobject>
</chapter>

<chapter id="copyright"><title>Mitwirkende und Lizenz</title>
<para>KSqlShell</para>
<para>Programm Copyright 2003 Olaf Gawenda, o.gawenda@gmx.de</para>
<para>Entwickler</para>
<itemizedlist>
<listitem><para>Olaf Gawenda <email>o.gawenda@gmx.de</email></para></listitem>
</itemizedlist>
<para>
Dokumentation Copyright 2003 Olaf Gawenda, o.gawenda@gmx.de</para>
&underGPL;
&underFDL;
</chapter>

&documentation.index;
</book>
<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:
-->

