De Api van Mercator in MercatorTunnel.dll bevat de functie Zselect. Deze functie bevat een groot aantal oproepmogelijkheden en laat een aanzienlijke vereenvoudiging toe van de code die moet worden geschreven om een dataset te verkrijgen op basis van uit de SQL-databank van Mercator geëxporteerde gegevens.
De eerste voor deze functie in te voeren parameter moet de nodige informatie bevatten om verbinding te maken met de SQL-server, naar keuze:
- een string met de gegevensdirectory van Mercator (REP_DATA): Mercator zal de nodige parameters in deze directory lezen en de SQL-verbinding maken (de verbinding wordt automatisch afgesloten na de oproep van Zselect);
- een object van het type MercatorSqlConnection (de verbinding moet gemaakt zijn voor de oproep van Zselect en zal na de oproep niet afgesloten worden);
- een object van het type MercatorDbConnection (de verbinding moet gemaakt zijn voor de oproep van Zselect en zal na de oproep niet afgesloten worden);
- een object van het type OleDbConnection (de verbinding moet gemaakt zijn voor de oproep van Zselect en zal na de oproep niet afgesloten worden).
De tweede parameter moet het volgende bevatten:
- ofwel een tekenreeks met de SQL-opdracht,
- ofwel een object van het type SqlCommand,
- ofwel een object van het type OleDbCommand.
Bijvoorbeeld:
DataSet ds = Api.Zselect(RepData, "select * from users (NOLOCK) order by nom");
Indien de gegevensdirectory van Mercator de eerste parameter is, kan men tot 9 bijkomende parameters invoeren met de eventueel in de SQL-opdracht in te voeren parameters. Deze parameters moeten een object van het type MercatorSqlParam of MercatorDbParam zijn, naargelang van de gewenste modus (SqlClient of OleDb) (indien geen enkele parameter is ingevoerd, gebruikt Zselect standaard SqlClient, dat beter presteert bij een SQL-databank).
Gebruik van MercatorSqlParam (aanbevolen keuze)
Deze objectklasse beschikt over 2 verschillende constructeurs:
- Eerste constructeur:
- Naam van de parameter: start altijd met @
- Waarde van de parameter
- Type parameter (SqlDbType)
- Tweede constructeur:
- Naam van de parameter: start altijd met @
- Waarde van de parameter
- Type parameter (SqlDbType)
- Lengte voor het type (int)
Bijvoorbeeld:
string reqsql = "select * from cli where (c_nom=@NOM) and (c_codep=@CODEP) and (c_id<>@ID)";
DataSet ds = Api.Zselect(rep_data, reqsql, new MercatorSqlParam("@NOM", nom, SqlDbType.VarChar, 100), new MercatorSqlParam("@CODEP", codep, SqlDbType.VarChar, 20), new MercatorSqlParam("@ID", id, SqlDbType.VarChar, 10));
Methode Zselect<T>() ook zien.