diff options
Diffstat (limited to 'design/widgets/dbwidget.tex')
-rw-r--r-- | design/widgets/dbwidget.tex | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/design/widgets/dbwidget.tex b/design/widgets/dbwidget.tex new file mode 100644 index 0000000..10c1e5b --- /dev/null +++ b/design/widgets/dbwidget.tex @@ -0,0 +1,45 @@ +% -*- coding: utf-8 -*- +\subsubsection{\texttt{dbwidget} elementet} +En dbwidget fungerer på overfladen som en combobox i search mode +(med type attributten sat til search), den har dog inden item tags +som beskriver hvilke valgmuligheder der er.\\ +Istedet benytter den sig af lacy-fetch kald til en posgresql database.\\ +En dbwidget har flg. attributter: +\begin{itemize} +\item \textit{driver} - Den database driver som skal benyttes. I øjeblikket + kun ``QPSQL'' som er postgresql driveren. +\item \textit{server} - Addressen på den server som driver databasen. +\item \textit{port} - Portnummeret hvorpå databasen kan kontaktes. +\item \textit{user} - Brugeren som databasen skal kontaktes med. +\item \textit{password} - Det tilhørende password. +\item \textit{database} - Databasen som skal kontaktes. +\item \textit{select} - Et udtryk som svarer til SELECT delen af en SQL statement. +\item \textit{from} - Navnet på den tabel som der skal selectes fra. +\item \textit{where} - Den del af resultatet fra select som skal sammenlignes med + indholdet fra tekstfeltet i dbwidgeten. Hvis f.eks tekstfeltet indeholder + teksten ``ab'' og from attributen indeholder ``foo'', vil den konstruerede WHERE + statement til serveren blive ``WHERE foo = 'abc' ''. For at gøre søgningen + case-insensitiv bliver strengen fra tekstfeltet og resultatet i WHERE statementen + konverteret til lowercase indne sammenligningen udføres. +\item \textit{format} - Formatstrengen som bruges til at formatere datafelterne + fra databaseopslagene inden de indsættes i dbwidgetens tekstfelt. Modsat ander + steder i systemet er de tilrådighedværende navne de samme som dem i select + attributen og ikke navnene på de widgets som findes makroen. Med den ene forskel + fungerer formatstrengen som dokumenteret i kapitel \ref{format}. +\end{itemize} + +\begin{lstlisting}[title={Et eksempel på et dbwidget tag, som laver søgning i en pilledatabase}] +<dbwidget name="pille" driver="QPSQL" server="medicindb.dk" + user="postgres" database="medicin" + select="drugname" from="pills" where="drugname" + format="${drugname}"/> +\end{lstlisting} + +\begin{lstlisting}[title={Et mere kompliceret eksempel som viser sammensatte strenge}] +<dbwidget name="pille" driver="QPSQL" server="medicindb.dk" + user="postgres" database="medicin" + select="drugname, dosage" from="pills" + where="drugname || ' (' || dosage || ')'" + format="${drugname} (${dosage})"/> +\end{lstlisting} + |