Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Utilisation de Zselect

0000001530     -      02/10/2017

L'Api de Mercator présente dans MercatorTunnel.dll contient une fonction Zselect. Cette fonction contient un grand nombre de possibilités d'appels et permet de simplifier de façon importante le code à écrire pour obtenir un dataset à partir d'une extraction de données dans la base de données SQL de Mercator.

Le premier paramètre à passer à cette fonction doit reprendre une information permettant de se connecter au serveur SQL, au choix

  • une string contenant le répertoire des données de Mercator (REP_DATA) : Mercator y lira tous les paramètres nécessaires et effectuera la connexion SQL (la connexion sera automatiquement fermée après l'appel de Zselect)
  • un object de type MercatorSqlConnection (la connexion doit être établie avant l'appel de Zselect et ne sera pas fermée après l'appel)
  • un object de type MercatorDbConnection (la connexion doit être établie avant l'appel de Zselect et ne sera pas fermée après l'appel)
  • un objet de type OleDbConnection (la connexion doit être établie avant l'appel de Zselect et ne sera pas fermée après l'appel)

Le second paramètre doit contenir,

  • soit une chaîne de caractères contenant la requête SQL
  • soit un objet de type SqlCommand
  • soit un objet de type OleDbCommand

Exemple :

DataSet ds = Api.Zselect(RepData, "select * from users (NOLOCK) order by nom");

Dans le cas où le premier paramètre est le répertoire des données de Mercator, il est possible de passer jusque 9 paramètres supplémentaires contenant les paramètres éventuels à passer à la requête SQL. Ces paramètres doivent être un objet de type MercatorSqlParam ou MercatorDbParam en fonction du mode souhaité (SqlClient ou OleDb). (Si aucun paramètre n'est passé, Zselect utilise par défaut SqlClient qui est plus performant pour une database SQL)


Utilisation de MercatorSqlParam

Cette classe d'objet dispose de 2 constructeurs différents :

  • Premier constucteur :
    • Nom du paramètre : commençant toujours par @
    • Valeur du paramètre
    • Type du paramètre (SqlDbType)
  • Second constucteur :
    • Nom du paramètre : commençant toujours par @
    • Valeur du paramètre
    • Type du paramètre (SqlDbType)
    • Longueur pour le type (int)

Exemple:

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));


Voir aussi la méthode Zselect<T>().