Translateurs SQL (tech)

De Wiki1000
(Différences entre les versions)
(Méthodes)
(Exemples)
Ligne 58 : Ligne 58 :
 
|}
 
|}
  
===Exemples===
 
'''Utilisation de dbOutVariant'''
 
<source lang='delphi'>
 
cursor.SQL.Add(Format('WHERE (dateEcriture = %s)', [cursor.Translator.dbOutVariant(vdateEcriture)]));
 
</source>
 
 
'''Utilisation de dbOutTableName'''
 
<source lang='delphi'>
 
cursor.SQL.Add('SELECT * FROM ' + cursor.Translator.dbOutTableName('TPIECE','Piece', dbtoNOLock));
 
// Sur MSSQL la fonction retourne SELECT * FROM TPIECE Piece (NOLOCK)
 
</source>
 
 
'''Utilisation de dbOutJoin'''
 
<source lang='delphi'>
 
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)
 
</source>
 
 
'''Utilisation de dbOutDatePart'''
 
<source lang='delphi'>
 
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''))
 
</source>
 
 
'''Utilisation de dbOutSubStr'''
 
<source lang='delphi'>
 
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)
 
</source>
 
 
'''Utilisation de dbOutDaysBetween'''
 
<source lang='delphi'>
 
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'))
 
</source>
 
 
'''Utilisation de dbOutisNull'''
 
<source lang='delphi'>
 
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)
 
</source>
 
 
'''Utilisation de dbOutWhereString'''
 
<source lang='delphi'>
 
cursor.SQL.Add(cursor.Translator.dbOutWhereString('Caption','=',valeur));
 
// Sur ORACLE si le valeur est vide la fonction retourne Caption is null
 
</source>
 
  
 
{{Footer|Code métier}}
 
{{Footer|Code métier}}
 
[[category:Objets techniques]]
 
[[category:Objets techniques]]

Version du 1 mars 2019 à 17:35

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 Traduit une valeur iValue en fonction de son type.
DBOUTROWCOUNT 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 Traduit une valeur de type string.
DBOUTOID Traduit un oid.
DBOUTDATEPART Traduit la fonction DATEPART qui renvoie un entier représentant l'élément de date précisé dans la date spécifiée.
DBOUTSUBSTR Traduit l'instruction SUBSTRING qui renvoie une partie d'une expression de type caractère, binaire, texte ou image.
DBOUTDAYSBETWEEN Traduit la fonction DATEDIFF qui renvoie le nombre de jours traversées entre deux dates données.
DBOUTISNULL Traduit la fonction ISNULL qui remplace NULL par la valeur de remplacement spécifiée.
DBOUTWHERESTRING Traduit une expression en tenant compte de la gestion des NULL du moteur de basse de données.
DBOUTJOIN Traduit une syntaxe pour une jointure simple.
DBOUTLEFTOUTERJOIN Traduit la syntaxe d'une jointure externe. Les paramètres sont identiques à ceux de la fonction DBOUTJOIN.
DBOUTTABLENAME Traduit un nom de table avec options de verrouillage.
dbOutWhereNull Terme null
dbOutWhereNotNull Terme not null


Code métierDéveloppement DSM

Outils personnels