Énumérations

Les énumérations publiques du namespace Aumerial.Data.Nti, avec leurs valeurs. Les valeurs numériques marquées « compat v4 » sont un contrat : elles ne changeront pas.

NamingConvention

Convention de nommage SQL, portée par la propriété NamingConvention de NTiConnection et le mot-clé naming (valeurs acceptées : sql, *sql, 0 ; sys, system, *sys, 1). Le volet EF Core exige SQL (erreur claire sinon). Valeurs compat v4.

Membre Valeur Sémantique
SQL 0 nommage *SQL : SCHEMA.TABLE
System 1 nommage *SYS : LIB/TABLE et résolution par liste de bibliothèques

CatalogName

Vues catalogues DB2 for i (sous QSYS2) interrogeables par GetSchema(CatalogName, restrictions) : le nom du membre EST le nom de la vue ; la valeur numérique suit l'ordre de déclaration et n'est pas un contrat. Les alias de collections ADO.NET (Tables, Columns, Schemas, Views, Keys, Fields, Constraints, Procedures, Functions...) s'y projettent via GetSchema(string) et MapCollection(string). La première restriction filtre par nom d'objet (nom de schéma pour SYSSCHEMAS). Sous IBM i 7.2, certaines vues n'existent pas encore et les collections correspondantes sont indisponibles (7.4 ou plus recommandé).

SYSCATALOGS, SYSCHKCST, SYSCOLAUTH, SYSCOLUMNS, SYSCOLUMNS2, SYSCOLUMNSTAT,
SYSCONTROLS, SYSCONTROLSDEP, SYSCST, SYSCSTCOL, SYSCSTDEP, SYSFIELDS, SYSFUNCS,
SYSINDEXES, SYSINDEXSTAT, SYSJARCONTENTS, SYSJAROBJECTS, SYSKEYCST, SYSKEYS,
SYSMQTSTAT, SYSPACKAGE, SYSPACKAGEAUTH, SYSPACKAGESTAT, SYSPACKAGESTMTSTAT,
SYSPARMS, SYSPARTITIONDISK, SYSPARTITIONINDEXDISK, SYSPARTITIONINDEXES,
SYSPARTITIONINDEXSTAT, SYSPARTITIONMQTS, SYSPARTITIONSTAT, SYSPROCS,
SYSPROGRAMSTAT, SYSPROGRAMSTMTSTAT, SYSREFCST, SYSROUTINEAUTH, SYSROUTINEDEP,
SYSROUTINES, SYSSCHEMAAUTH, SYSSCHEMAS, SYSSEQUENCEAUTH, SYSSEQUENCES,
SYSTABAUTH, SYSTABLEDEP, SYSTABLEINDEXSTAT, SYSTABLES, SYSTABLESTAT, SYSTRIGCOL,
SYSTRIGDEP, SYSTRIGGERS, SYSTRIGUPD, SYSTYPES, SYSUDTAUTH, SYSVARIABLEAUTH,
SYSVARIABLEDEP, SYSVARIABLES, SYSVIEWDEP, SYSVIEWS, SYSXSROBJECTAUTH,
XSRANNOTATIONINFO, XSROBJECTCOMPONENTS, XSROBJECTHIERARCHIES, XSROBJECTS

NTiType

Types de données DB2 for i, numéros SQLTYPE (valeurs compat v4). Exposé par NTiParameter.NTiType, dérivé par le serveur à la préparation de l'ordre (0 avant préparation ; la v4 levait une NullReferenceException dans ce cas). Decimal est le décimal packé, Numeric le décimal zoné ; Float, Real et Double partagent le SQLTYPE 480 (FLOAT).

Membre Valeur Membre Valeur
Date 384 Numeric 488
Time 388 BigInt 492
Timestamp 392 Integer 496
Datalink 396 SmallInt 500
Blob 404 RowID 904
Clob 408 Varbinary 908
DbClob 412 Binary 912
Varchar 448 Xml 988
Char 452 Decfloat 996
Vargraphic 464 Boolean 2436
Graphic 468 Float 480
Decimal 484 Real, Double 480

DecfloatRoundOption

Mode d'arrondi DECFLOAT, envoyé au serveur (valeurs compat v4). Propriété DecfloatRoundMode de la connexion ; le mot-clé roundoption prend la valeur NUMÉRIQUE.

Membre Valeur Arrondi
HalfEven 0 au plus proche, égalité vers le chiffre pair
HalfUp 1 au plus proche, égalité vers le haut
Down 2 vers zéro (troncature)
Ceiling 3 vers plus l'infini
Floor 4 vers moins l'infini
HalfDown 5 au plus proche, égalité vers le bas
Up 6 à l'opposé de zéro

NTiServiceProgramReturnFormat

Formats de valeur de retour de CallServiceProgram/CallServiceProgramAsync ; les valeurs sont celles de l'API système QZRUCLSP. La valeur 2 (retour pointeur) est volontairement absente : un pointeur d'espace n'a de sens que dans le job serveur ; une procédure qui rend du texte remplit un buffer fourni par l'appelant.

Membre Valeur Sémantique
None 0 pas de valeur de retour (la méthode rend null)
Integer 1 entier de 4 octets : lire rc.GetInt()
IntegerAndErrno 3 entier de 4 octets puis errno de 4 octets : lire rc.GetInt() et rc.GetInt(4)

NTiServiceProgramParameterFormat

Mode de passage d'un paramètre de procédure de programme de service, posé par la propriété ServiceProgramParameterFormat de NTiProgramParameter ; valeurs QZRUCLSP.

Membre Valeur Sémantique
ByValue 1 BINARY(4) passé par valeur ; la donnée doit faire exactement 4 octets
ByReference 2 le stockage est passé par référence : la procédure reçoit son adresse (défaut)

ParameterDirection (System.Data)

Énumération standard d'ADO.NET (référence Microsoft) ; usage NTi sur les paramètres de programme :

Membre Usage NTi
Input octets envoyés, rien en retour
Output longueur déclarée seule, buffer rendu dans OutputData
InputOutput défaut : envoyé ET rendu
ReturnValue traité comme Output par CallProgram

Exemple

using System;
using System.Data;
using System.Threading.Tasks;
using Aumerial.Data.Nti;

class EnumsDemo
{
    static async Task Main()
    {
        await using var connection = new NTiConnection(
            "server=MYIBMI;user=MYUSER;password=MYPASSWORD;naming=sql;roundoption=0");
        await connection.OpenAsync();                     // Open() reste disponible en synchrone

        // Équivalents typés des mots-clés
        Console.WriteLine(connection.NamingConvention);   // NamingConvention.SQL
        Console.WriteLine(connection.DecfloatRoundMode);  // DecfloatRoundOption.HalfEven

        // CatalogName : vue catalogue QSYS2 typée ; première restriction = nom d'objet
        DataTable columns = connection.GetSchema(CatalogName.SYSCOLUMNS, new[] { "ORDERS" });
        foreach (DataRow row in columns.Rows)
            Console.WriteLine(row["COLUMN_NAME"]);
    }
}

Reconnexion au serveur...

La connexion au serveur a été perdue. La page va se recharger.