...
Konfiguration
Neben der Mapping
- & und SearchParameters
-Konfiguration, welche alle DataProvider
der Datenschnittstelle benötigen, kann der SqlDataProvider
über das Options
-Element konfiguriert werden:
Code Block |
---|
<SqlDataProvider DisplayName="Kundenadressen"> <Options> <ConnectionString>{ConnectionString}</ConnectionString> <ConnectionProvider>System.Data.SqlClient</ConnectionProvider> <Query> SELECT * FROM Users WHERE FirstName Like '%' + @firstName + '%' </Query> </Options> ... </SqlDataProvider> |
...
ConnectionString: ConnectionString. Kann , kann verschlüsselt sein.
ConnectionProvider: Definiert den Datenbankentyp Typ der Datenbank - unterstützte Typen:
System.Data.Odbc
System.Data.SqlClient
MySql.Data.MySqlClient
Oracle.ManagedDataAccess.Client
Query: Definiert den SQL Query, hierbei werden die
SearchParameters
als SQL Parameter behandelt.
Der SQL Query muss in dem Format für die jeweilige Zieldatenbank sein. Da alle Suchparameter von der SearchParameters
-Konfiguration als SQL Parameter behandelt werden, muss der jeweilige SQL Parameter Syntax der Zieldatenbank eingehalten werden.
Beispiele
...
MS SQL
Code Block | ||
---|---|---|
| ||
SELECT FirstName, LastName FROM Users WHERE FirstName LIKE '%' + @firstName + '%' AND LastName LIKE '%' + @lastName + '%' |
...
...
MySQL
Code Block | ||
---|---|---|
| ||
SELECT FirstName, LastName FROM Users WHERE FirstName LIKE Concat('%', @firstName, '%') AND LastName LIKE Concat('%', @lastName, '%') |
...
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
ACHTUNG |
...
Oracle
Code Block | ||
---|---|---|
| ||
SELECT FirstName, LastName from Users WHERE UPPER(NVL(FirstName, ' ')) Like UPPER('%' || :firstName || '%') AND UPPER(NVL(LastName, ' ')) Like UPPER('%' || :lastName || '%') |
...
Odbc
Code Block | ||
---|---|---|
| ||
SELECT FirstName, LastName FROM Users WHERE FirstName LIKE '%' + ? + '%' AND LastName LIKE '%' + ? + '%' |
...
PostgreSQL
Code Block | ||
---|---|---|
| ||
SELECT FirstName, LastName FROM Users WHERE UPPER(FirstName) LIKE UPPER('%' || ? || '%') AND UPPER(LastName) LIKE UPPER('%' || ? || '%') |
...
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
ACHTUNG |
Folgende Folgende MS SQL Query kann nicht direkt zu Oracle oder Odbc übersetzt werden:
Code Block | ||
---|---|---|
| ||
SELECT FirstName, MiddleName, LastName FROM Users WHERE FirstName LIKE '%' + firstName + '%' OR MiddleName LIKE '%' + firstName + '%' |
Wenn ein Parameter auf mehr als eine Spalte verglichen werden muss, dann können diese Spalten im SELECT mittels der jeweiligen Funktion des Datenbanksystems kombiniert werden:
...
Odbc
Code Block | ||
---|---|---|
| ||
SELECT STRING(FirstName, ' ', MiddleName) AS CompleteName, LastName FROM Users WHERE CompleteName LIKE '%' + ? + '%' |
Beispiel
Code Block | ||
---|---|---|
| ||
<SqlDataProvider DisplayName="DatabaseDatenbank"> <SearchParameters> <Text Id="Name" Label="Name" /> </SearchParameters> <Options> <ConnectionString>Data Source=localhost;Initial Catalog=Customers;User Id={user};Password={pwd};</ConnectionString> <ConnectionProvider>System.Data.SqlClient</ConnectionProvider> <Query> SELECT * FROM Customers WHERE Name Like '%' + @Name + '%' </Query> </Option> <Mapping> <Map Source="Name" Target="CompanyName" /> <Map Source="Street" Target="Street" /> <Map Source="Zip" Target="PostalCode" /> <Map Source="City" Target="City" /> <Map SourceValue="CH" Target="Country" /> </Mapping> </SqlDataProvider> |