Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Panel
panelIconId1f51c
panelIcon:soon:
panelIconText🔜
bgColor#EAE6FF

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

SqlDataProvider will be available in the next primedocs version.

Via the SqlData provider arbitrarily configurable SQL databases can be accessed.

Configuration

In addition to the Mapping and SearchParameters configuration, which all DataProviders of the Data interface require, the SqlDataProvider can be configured via the Option element:

Code Block
languagexml
<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
languagesql
SELECT FirstName, LastName FROM Users
WHERE FirstName LIKE '%' + @firstName + '%' AND LastName LIKE '%' + @lastName + '%'

...

 

...

MySQL

Code Block
languagesql
SELECT FirstName, LastName FROM Users
WHERE FirstName LIKE Concat('%', @firstName, '%') AND LastName LIKE Concat('%', @lastName, '%')

 

...

Panel
panelIconIdatlassian-warning
panelIcon:warning:
bgColor#FFEBE6

CAUTION
For Oracle, Odbc und PostgreSQL muss die Reihenfolge der Platzhalter in der Query mit der Reihenfolge der "SearchParameters" übereinstimmen!

Beispiel: Oracle

code

and PostgreSQL the order of the placeholders in the query must match the order of the "SearchParameters!

Oracle

Code Block
languagesql
SELECT FirstName, LastName from Users
WHERE UPPER(NVL(FirstName, ' ')) Like UPPER('%' || :firstName || '%') AND UPPER(NVL(LastName, ' ')) Like UPPER('%' || :lastName || '%')

...

Odbc

Code Block
languagesql
SELECT FirstName, LastName FROM Users
WHERE FirstName LIKE '%' + ? + '%' AND LastName LIKE '%' + ? + '%'

...

PostgreSQL

Code Block
languagesql
SELECT FirstName, LastName FROM Users
WHERE UPPER(FirstName) LIKE UPPER('%' || ? || '%') AND UPPER(LastName) LIKE UPPER('%' || ? || '%')

 

Note

ACHTUNG
Die Einschränkung der Reihenfolge hat zur Folge, dass ein Parameter in der Query genau einmal verwendet werden kann.

 

Folgende MS SQL Query kann nicht direkt zu Oracle oder Odbc übersetzt werden:

...

Panel
panelIconIdatlassian-warning
panelIcon:warning:
bgColor#FFEBE6

CAUTION
The restriction of the order has the consequence that a parameter can be used in the query exactly once.

The following MS SQL query cannot be translated directly to Oracle or Odbc:

Code Block
languagesql
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
languagesql
SELECT STRING(FirstName, ' ', MiddleName) AS CompleteName, LastName FROM Users
WHERE CompleteName LIKE '%' + ? + '%'

...

Example

Code Block
languagexml
<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>