É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, XSROBJECTSNTiType
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"]);
}
}