Generic SQL


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] &amp; ' ' &amp; [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).

PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland