% -*- 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}] \end{lstlisting} \begin{lstlisting}[title={Et mere kompliceret eksempel som viser sammensatte strenge}] \end{lstlisting}