Translateurs SQL (tech)
m (a renommé Translateur SQL (tech) en Translateurs SQL (tech)) |
(→Méthodes) |
||
Ligne 15 : | Ligne 15 : | ||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
− | |DBOUTVARIANT | + | |[[dbOutVariant (Translator)|DBOUTVARIANT]] |
|<source lang='delphi'>function DbOutVariant(const iValue: Variant):string;</source> | |<source lang='delphi'>function DbOutVariant(const iValue: Variant):string;</source> | ||
|Traduit une valeur iValue en fonction de son type. | |Traduit une valeur iValue en fonction de son type. | ||
|- | |- | ||
− | |DBOUTROWCOUNT | + | |[[dbOutRowCount (Translator)|DBOUTROWCOUNT]] |
|<source lang='delphi'>function DbOutRowCount(iCount:Integer):string;</source> | |<source lang='delphi'>function DbOutRowCount(iCount:Integer):string;</source> | ||
|Traduit l'instruction SQL qui force le moteur de données à arrêter l'exécution de la requête après avoir renvoyé le nombre de lignes spécifié. | |Traduit l'instruction SQL qui force le moteur de données à arrêter l'exécution de la requête après avoir renvoyé le nombre de lignes spécifié. | ||
|- | |- | ||
− | |DBOUTSTR | + | |[[dbOutStr (Translator)|DBOUTSTR]] |
|<source lang='delphi'>function DbOutStr(const iString: string):string;</source> | |<source lang='delphi'>function DbOutStr(const iString: string):string;</source> | ||
|Traduit une valeur de type string. | |Traduit une valeur de type string. | ||
|- | |- | ||
− | |DBOUTOID | + | |[[dboutOID (Translator)|DBOUTOID]] |
|<source lang='delphi'>function DbOutOid(const iOID: string):string;</source> | |<source lang='delphi'>function DbOutOid(const iOID: string):string;</source> | ||
|Traduit un oid. | |Traduit un oid. | ||
|- | |- | ||
− | |DBOUTDATEPART | + | |[[dbOutDatePart (Translator)|DBOUTDATEPART]] |
|<source lang='delphi'>function DbOutDatePart( | |<source lang='delphi'>function DbOutDatePart( | ||
iPart: TPartOfDate; | iPart: TPartOfDate; | ||
Ligne 51 : | Ligne 51 : | ||
iColumn est une expression correspondant à une valeur de type date. | iColumn est une expression correspondant à une valeur de type date. | ||
|- | |- | ||
− | |DBOUTSUBSTR | + | |[[dbOutSubStr (Translator)|DBOUTSUBSTR]] |
|<source lang='delphi'>function DbOutStr( | |<source lang='delphi'>function DbOutStr( | ||
const iColumn: string; | const iColumn: string; | ||
Ligne 59 : | Ligne 59 : | ||
iLen : Entier précisant la longueur de la sous-chaîne (le nombre de caractères ou d'octets à renvoyer). | iLen : Entier précisant la longueur de la sous-chaîne (le nombre de caractères ou d'octets à renvoyer). | ||
|- | |- | ||
− | |DBOUTDAYSBETWEEN | + | |[[dbOutDaysBetween (Translator)|DBOUTDAYSBETWEEN]] |
|<source lang='delphi'>function DbOutDaysBetween(iBeginDate,iEndDate:Variant) :string;</source> | |<source lang='delphi'>function DbOutDaysBetween(iBeginDate,iEndDate:Variant) :string;</source> | ||
|Traduit la fonction DATEDIFF qui renvoie le nombre de jours traversées entre deux dates données. | |Traduit la fonction DATEDIFF qui renvoie le nombre de jours traversées entre deux dates données. | ||
|- | |- | ||
− | |DBOUTISNULL | + | |[[dbOutIsNull (Translator)|DBOUTISNULL]] |
|<source lang='delphi'>function DbOutIsNull(iExpr,iResultat : string) : string;</source> | |<source lang='delphi'>function DbOutIsNull(iExpr,iResultat : string) : string;</source> | ||
|Traduit la fonction ISNULL qui remplace NULL par la valeur de remplacement spécifiée. | |Traduit la fonction ISNULL qui remplace NULL par la valeur de remplacement spécifiée. | ||
|- | |- | ||
− | |DBOUTWHERESTRING | + | |[[dbOutWhereString (Translator)|DBOUTWHERESTRING]] |
|<source lang='delphi'>function DbOutWhereString( | |<source lang='delphi'>function DbOutWhereString( | ||
const iFieldName: string; | const iFieldName: string; | ||
Ligne 76 : | Ligne 76 : | ||
{{tip|N'utilisez pas les comparaisons avec la chaîne vide dans les requêtes SQL. Le framework n'enregistre pas de chaînes vides dans la basse de données mais la valeur NULL.}} | {{tip|N'utilisez pas les comparaisons avec la chaîne vide dans les requêtes SQL. Le framework n'enregistre pas de chaînes vides dans la basse de données mais la valeur NULL.}} | ||
|- | |- | ||
− | |DBOUTJOIN | + | |[[dbOutJoin (Translator)|DBOUTJOIN]] |
|<source lang='delphi'>function DbOutJoin( | |<source lang='delphi'>function DbOutJoin( | ||
const iTableJoint: string; | const iTableJoint: string; | ||
Ligne 99 : | Ligne 99 : | ||
iWhereForJoin - renvoie une condition SQL à mettre dans la clause WHERE. | iWhereForJoin - renvoie une condition SQL à mettre dans la clause WHERE. | ||
|- | |- | ||
− | |DBOUTLEFTOUTERJOIN | + | |[[dbOutLeftOuterJoin (Translator)|DBOUTLEFTOUTERJOIN]] |
|<source lang='delphi'>function DbOutLeftOuterJoin( | |<source lang='delphi'>function DbOutLeftOuterJoin( | ||
const iTableJoint: string; | const iTableJoint: string; | ||
Ligne 110 : | Ligne 110 : | ||
|Traduit la syntaxe d'une jointure externe. Les paramètres sont identiques à ceux de la fonction DBOUTJOIN. | |Traduit la syntaxe d'une jointure externe. Les paramètres sont identiques à ceux de la fonction DBOUTJOIN. | ||
|- | |- | ||
− | |DBOUTTABLENAME | + | |[[dbOutTableName (Translator)|DBOUTTABLENAME]] |
|<source lang='delphi'>function DbOutTableName( | |<source lang='delphi'>function DbOutTableName( | ||
const iTableName: string; | const iTableName: string; | ||
Ligne 119 : | Ligne 119 : | ||
iAliasName - Nom du alias. | iAliasName - Nom du alias. | ||
iOptJoint - Options de verrouillage. Voir l'options de verrouillage du DBOUTJOIN. | iOptJoint - Options de verrouillage. Voir l'options de verrouillage du DBOUTJOIN. | ||
+ | |- | ||
+ | |[[dbOutWhereNull (Translator)|dbOutWhereNull]] | ||
+ | | | ||
+ | |Terme null | ||
+ | |- | ||
+ | |[[dbOutWhereNotNull (Translator)|dbOutWhereNotNull]] | ||
+ | | | ||
+ | |Terme not null | ||
|} | |} | ||
Version du 1 mars 2019 à 17:12
Sommaire |
Introduction
Le traducteur de code est un objet technique permetant d’écrire du code SQL indépendant du type de serveur de base de données utilisé.
Vous pouvez accéder aux fonctions du traducteur par l'attribut "Translator" d'un curseur ou d'une requête.
Propriétés
DBOUTOPCONCATSTRINGS | Renvoie l'opérateur de concaténation de chaîne. |
Méthodes
DBOUTVARIANT | function DbOutVariant(const iValue: Variant):string; |
Traduit une valeur iValue en fonction de son type. |
DBOUTROWCOUNT | function DbOutRowCount(iCount:Integer):string; |
Traduit l'instruction SQL qui force le moteur de données à arrêter l'exécution de la requête après avoir renvoyé le nombre de lignes spécifié. |
DBOUTSTR | function DbOutStr(const iString: string):string; |
Traduit une valeur de type string. |
DBOUTOID | function DbOutOid(const iOID: string):string; |
Traduit un oid. |
DBOUTDATEPART | function DbOutDatePart( iPart: TPartOfDate; const iColumn: string):string; |
Traduit la fonction DATEPART qui renvoie un entier représentant l'élément de date précisé dans la date spécifiée.
iPart peut avoir les valeurs suivantes :
iColumn est une expression correspondant à une valeur de type date. |
DBOUTSUBSTR | function DbOutStr( const iColumn: string; iOfs,iLen : Integer):string; |
Traduit l'instruction SUBSTRING qui renvoie une partie d'une expression de type caractère, binaire, texte ou image.
iOfs : Entier précisant où la sous-chaîne commence. iLen : Entier précisant la longueur de la sous-chaîne (le nombre de caractères ou d'octets à renvoyer). |
DBOUTDAYSBETWEEN | function DbOutDaysBetween(iBeginDate,iEndDate:Variant) :string; |
Traduit la fonction DATEDIFF qui renvoie le nombre de jours traversées entre deux dates données. |
DBOUTISNULL | function DbOutIsNull(iExpr,iResultat : string) : string; |
Traduit la fonction ISNULL qui remplace NULL par la valeur de remplacement spécifiée. |
DBOUTWHERESTRING | function DbOutWhereString( const iFieldName: string; const iOperator: string; const iFieldValue: string):string; |
Traduit une expression en tenant compte de la gestion des NULL du moteur de basse de données.
A utiliser avec les opérateurs de comparaison ">","<",">=","<=" ,"=". |
DBOUTJOIN | function DbOutJoin( const iTableJoint: string; const iAliasJoint: string; iOptsJoint: TdbTableOption; const iColumnLeft: string; const iAliasRight: string; const iColumnRight: string; var iWhereForJoin:string):string; |
Traduit une syntaxe pour une jointure simple.
iTableJoint - nom de la table jointe. iALiasJoint - nom d'alias de la table jointe. iOptJoint - Options de verrouillage de la table jointe pour MSSQL. Vous disposez des options de verrouillage suivantes :
iColumnLeft - colonne de la table gauche de la jointure. iAliasRight - alias de la table du colonne right. iColumnRight - colonne de la table droite de la jointure. Le critère sur lesquels est basée la jointure est (iCumnLeft = iColumnRight). iWhereForJoin - renvoie une condition SQL à mettre dans la clause WHERE. |
DBOUTLEFTOUTERJOIN | function DbOutLeftOuterJoin( const iTableJoint: string; const iAliasJoint: string; iOptsJoint: TdbTableOption; const iColumnLeft: string; const iAliasRight: string; const iColumnRight: string; var WhereForJoin : string) : string; |
Traduit la syntaxe d'une jointure externe. Les paramètres sont identiques à ceux de la fonction DBOUTJOIN. |
DBOUTTABLENAME | function DbOutTableName( const iTableName: string; const iAliasName: string; iOpts: TdbTableOption):string; |
Traduit un nom de table avec options de verrouillage.
iTableName - Nom de la table. iAliasName - Nom du alias. iOptJoint - Options de verrouillage. Voir l'options de verrouillage du DBOUTJOIN. |
dbOutWhereNull | Terme null | |
dbOutWhereNotNull | Terme not null |
Exemples
Utilisation de dbOutVariant
cursor.SQL.Add(Format('WHERE (dateEcriture = %s)', [cursor.Translator.dbOutVariant(vdateEcriture)]));
Utilisation de dbOutTableName
cursor.SQL.Add('SELECT * FROM ' + cursor.Translator.dbOutTableName('TPIECE','Piece', dbtoNOLock)); // Sur MSSQL la fonction retourne SELECT * FROM TPIECE Piece (NOLOCK)
Utilisation de dbOutJoin
cursor.SQL.Add('SELECT * FROM ' + cursor.Translator.dbOutTableName('TPIECE','Piece', dbtoNOLock)); cursor.SQL.Add(cursor.Translator.dbOutJoin('TJOURNAL','Journal', dbtoNOLock, 'oid','Piece',oidJournal,vWhereJoin)); cursor.SQL.Add('WHERE Journal.code = "AC"'); if (vWhereJoin <> '') then cursor.SQL.ADD(' and '+ vWhereJoin); // // Sur MSSQL la fonction retourne : // // SELECT * FROM TPIECE (NOLOCK) // LEFT OUTER JOIN TJOURNAL Journal (NOLOCK) // ON(Journal.oid = Piece.oidJournal) // WHERE (Journal.Code = "AC") // // et sur ORACLE // // SELECT * FROM TPIECE Piece, TJOURNAL Journal // WHERE (Journal.Code = "AC") // and (Journal.oid = Piece.oidJournal)
Utilisation de dbOutDatePart
cursor.SQL.Add(cursor.Translator.dbOutDatePart(dpYear,'dateEcriture')); // Sur MSSQL la fonction retourne : DATEPART(year,dateEcriture) // et sur ORACLE : to_NUMBER(to_CHAR(dateEcriture, ''YYYY''))
Utilisation de dbOutSubStr
cursor.SQL.Add(cursor.Translator.dbOutSubstr(Caption,1,5)); // Sur SQL Server la fonction retourne : SUBSTRING(Caption,1,5) // et sur ORACLE : SUBSTR(Caption,1,5)
Utilisation de dbOutDaysBetween
cursor.SQL.Add(cursor.Translator.dbOutDaysBetween('beginDate','endDate')); // Sur MSSQL la fonction retourne : DATEDIFF(day, beginDate, endDate) // et sur ORACLE : ROUND(to_DATE('beginDate','DD/MM/YYYY HH24 :MI :SS')) // ROUND(to_DATE('endDate','DD/MM/YYYY HH24 :MI :SS'))
Utilisation de dbOutisNull
cursor.SQL.Add(cursor.Translator.dbOutIsNull('sum(montant)',0)); // Sur MSSQL la fonction retourne : ISNULL(sum(montant),0) // et sur ORACLE : NVL(sum(montant),0)
Utilisation de dbOutWhereString
cursor.SQL.Add(cursor.Translator.dbOutWhereString('Caption','=',valeur)); // Sur ORACLE si le valeur est vide la fonction retourne Caption is null
— Code métier — Développement DSM —