...
Panel | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Dieses Feature ist in der nächsten primedocs Version verfügbar. |
Mit dem SqlDataProvider
können Sie auf beliebig konfigurierbare SQL-Datenbanken zugreifen.
Konfiguration
Neben der Mapping
- & SearchParameters
-Konfiguration, welche alle DataProvider
der Datenschnittstelle benötigen, kann der SqlDataProvider
über das Options
-Element konfiguriert werden:
Code Block |
---|
|
Via the SqlData provider arbitrarily configurable SQL databases can be accessed.
Configuration
In addition to the Mapping
and SearchParameters
configuration, which all DataProvider
s of the Data interface require, the SqlDataProvider
can be configured via the Option
element:
Code Block | ||
---|---|---|
| ||
<SqlDataProvider DisplayName="KundenadressenCustomer addresses"> <Options> <ConnectionString>{ConnectionString}</ConnectionString> <ConnectionProvider>System.Data.SqlClient</ConnectionProvider> <Query> SELECT * FROM Users WHERE FirstName Like '%' + @firstName + '%' </Query> </Options> ... </SqlDataProvider> |
Unter Options wird die Verbindung und die Datenbankabfrage definiertVia Options the connection and the database query is defined.
ConnectionString: ConnectionString. Kann verschlüsselt sein, can be encrypted.
ConnectionProvider: Definiert den Datenbankentyp - unterstützte Typen Defines the type of the database - supported types:
System.Data.Odbc
System.Data.SqlClient
MySql.Data.MySqlClient
Oracle.ManagedDataAccess.Client
Query: Definiert den Defines the 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.
...
query, here the
SearchParameters
are treated as SQL parameters.
The SQL query must be in the format for the respective target database. Since all search parameters are treated as SQL parameters by the SearchParameters
configuration, the respective SQL parameter syntax of the target database must be followed.
Examples
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
CAUTION |
Beispiel: Oracle
and PostgreSQL the order of the placeholders in the query must match the order of the "SearchParameters! |
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('%' || ? || '%') |
Note |
---|
ACHTUNG |
Folgende MS SQL Query kann nicht direkt zu Oracle oder Odbc übersetzt werden:
...
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
CAUTION |
The following MS SQL query cannot be translated directly to Oracle or Odbc:
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:
...
If a parameter needs to be compared on more than one column, then these columns can be combined in the SELECT using the respective function of the database system:
Odbc
Code Block | ||
---|---|---|
| ||
SELECT STRING(FirstName, ' ', MiddleName) AS CompleteName, LastName FROM Users WHERE CompleteName LIKE '%' + ? + '%' |
...
Example
Code Block | ||
---|---|---|
| ||
<SqlDataProvider DisplayName="Database"> <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> |