Generic SQL
- 1 Aufbau
- 2 Query
- 3 Suchparameter
Adressen werden per SQL Select-Abfrage an der Datenquelle abgeholt und einem Adressobjekt in primedocs zugewiesen. Jede Datenbank-Spalte wird mit dem Schlüsselwort "as" in ein primedocs 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 primedocs}
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.
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).
PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland