Generic SQL
Adressen werden per SQL Select-Abfrage an der Datenquelle abgeholt und einem Adressobjekt in OneOffixx zugewiesen. Jede Datenbank-Spalte wird mit dem Schlüsselwort "as" in ein OneOffixx Feld abgefüllt. Die WHERE-Klausel enthält die Filterparameter. Diese werden im Element SearchParameter definiert. Der Wert eines Parameters kann in der Query mit {Parametername} aufgerufen werden.
<AddressProvider id="8C51B042-81EA-46E3-A429-821641E19A6A" order="1" active="false">
<Debug>false</Debug>
<Title>Generic SQL Provider</Title>
<Icon>{Base64 Image}</Icon>
<SafeQuery>false</SafeQuery>
<ConnectionString>{ConnectionString}</ConnectionString>
<ConnectionProvider>System.Data.OleDb</ConnectionProvider>
<Query>
<!-- Example in T-SQL -->
SELECT
[SPALTENNAME] AS {Feldname OneOffixx}
FROM [TABLE]
WHERE
UCase([Vorname]) Like UCase('%{firstName}%') AND
UCase([Name]) Like UCase('%{lastName}%') AND
UCase([Strasse] & ' ' & [Hausnummer]) Like UCase('%{street}%') AND
[Postleitzahl] Like '%{plz}%' AND
UCase([Ort]) Like UCase('%{city}%')
</Query>
<SearchParameters>
<SearchParameter Name="company" Label="Firma" Type="String" Length="100" Sort="1" />
<SearchParameter Name="firstName" Label="Vorname/Name" Type="String" Length="100" Sort="2" />
<SearchParameter Name="lastName" Label="" Type="String" Length="100" Sort="2" Width="90" />
<SearchParameter Name="street" Label="Strasse" Type="String" Length="100" Sort="3" />
<SearchParameter Name="plz" Label="PLZ/Ort" Type="String" Length="6" Sort="4" />
<SearchParameter Name="city" Label="" Type="String" Length="100" Width="130" Sort="4" />
<SearchParameter Name="country" Label="Land" Type="String" Length="100" Sort="5" />
</SearchParameters>
<ContactMapping>
<ContactItemXPath>Contact</ContactItemXPath>
<ContactElement id="Person_LastName">Column_LastName</ContactElement>
<ContactElement id="Person_FirstName">Column_FirstName</ContactElement>
</ContactMapping>
</AddressProvider>
Aufbau
- Debug
true
falls zusätzliche Informationen geloggt werden sollen. - Title Titel des Address Provider (wird so in Tab angezeigt)
- Icon Bild für Icon (als Base64-String; empfohlen: PNG, 32x32 Pixel)
- SafeQuery Fügt vor jeden Parameter im Query ein '@' ein (true nur möglich für System.Data.SqlClient), sollte stets auf
true
gestellt sein um SQL Injection Attacken zu verhindern, allerdings gilt dies nicht für alle Datenbanksysteme. - ConnectionString Datenbank ConnectionString .
- ConnectionProvider
- System.Data.Odbc
- System.Data.OleDb
- System.Data.OracleClient
- System.Data.SqlClient
- ContactMapping Siehe XML-Kontakt-Mapping.
Query
Die Abfrage in der korrekten Syntax und Sprache für den gewählten Provider: es gilt zu beachten, dass es erhebliche Unterschiede zwischen den SQL-Dialekten gibt.
Beispiel für Transact-SQL:
SELECT
[Column1] AS OneOffixxFieldname1,
[Column2] AS OneOffixxFieldname2,
FROM [TABLENAME]
WHERE
UCase([Column1]) Like UCase('%{searchParam1}%') AND
UCase([Column2]) Like UCase('%{searchParam2}%')
Beispiel für Oracle SQL:
SELECT
Column1 AS "OneOffixxFieldname1",
Column2 AS "OneOffixxFieldname2"
FROM TABLENAME
WHERE
UPPER(Column1) Like UPPER('%{searchParam1}%') AND
UPPER(Column2) Like UPPER('%{searchParam2}%')
Suchparameter
Die Liste der Suchparameter ist für die Eingabemaske nötig. Falls keine SearchParameterliste angegeben ist, werden Suchparameter automatisch erzeugt. Es können maximal zwei Controls auf einer Zeile plaziert werden.
<SearchParameter Name="company" Label="Firma" Type="String" Length="100" Sort="1" />
- Name Eindeutiger Feldname. Kann in der Query verwendet werden im Format {XXX}.
- Label Anzeigetext im Dialog vor Control
- Type Type des Controls (Mögliche Werte sind String, Long, Boolean, Date).