Ajouter une requête SQL avec un connecteur ODBC sans sous-requête

Lorsque les sous-requêtes sur votre connexion source pour ODBC sont désactivées, DataSync n'analyse plus votre code avec les paramètres et exécute uniquement le code brut saisi dans la fenêtre de requête SQL. Des ERPs tels que Sage 100 North America Standard utilise un pilote ODBC plus ancien qui ne supporte pas les sous-requêtes, ce qui peut limiter ses capacités.

Note

Pour plus d'information sur Sage 100 North America Standard, visitez la documentation officielle.

Lors de l'ajout d'une requête SQL (reportez-vous à la rubrique Configurer les champs de table), il faut tenir compte de plusieurs directives :

  1. Si les délimiteurs sont absolument nécessaires avec votre pilote ODBC, vous devez les définir.
  2. Pour faire un Join, vos tables doivent être placées à l'intérieur de {oj […]}.

    Exemple

    SELECT Customer.*
    FROM {oj Customer INNER JOIN SalesReps ON Customer.SALESREP = SalesReps.SALESREP}
    

  3. Vous ne pouvez pas utiliser l'astérisque * sans un Alias dans votre déclaration SELECT si celle-ci joint plus d'une table. Bien que cela ne donne pas forcément lieu à une erreur, il y a un risque d'introduire des erreurs lorsque vous avez plusieurs colonnes avec le même nom dans les différentes tables.

    Voici un exemple de déclaration qui provoquerait des erreurs :

    SELECT *
    FROM {oj Customer INNER JOIN SalesReps ON Customer.SALESREP = SalesReps.SALESREP}
    
     

  4. Vous ne pouvez pas utiliser plusieurs astérisques * avec un Alias dans votre déclaration SELECT. Ce problème s'applique également à plusieurs colonnes portant le même nom, bien que cela se traduise par un échec lors de l'exécution de la tâche Traiter les enregistrements supprimés, car elle ne sera pas en mesure de trouver de quelle table provient le champ.

    Voici un exemple de déclaration qui provoquerait des erreurs :

    SELECT Customer.*, SalesReps.*
    FROM {oj Customer INNER JOIN SalesReps ON Customer.SALESREP = SalesReps.SALESREP}

  5. Évitez de créer des champs calculés dans la déclaration SELECT. Utilisez plutôt les options de menu de la section Field (voir la rubrique Configurer les champs de table). Dans la plupart des cas, cela ne posera pas de problème. Cependant, si vous définissez ce champ comme une clé primaire ou une clé de suivi, vous risquez d'introduire une erreur lors des tâches de chargement incrémentiel ou de traitement des enregistrements supprimés.

Important

If you wish to use Functions, ODBC does not support T-SQL or PL/SQL functions. You need to use ODBC functions available to the driver. Please visit Microsoft’s documentation for more details regarding these Functions.

Ajouter une table non incluse dans le fichier compressé de l'extraction

  • Reportez-vous à la rubrique Configurer les champs de table pour utiliser le Champ calculé comme Clé de suivi pour la tâche de chargement incrémentiel si vous souhaitez ajouter une table.
Important

La table (ou l'une des tables si vous avez fait un Join pour les obtenir d'une autre table) doit contenir les champs DateUpdated et TimeUpdated.

{fn TIMESTAMPADD(SQL_TSI_SECOND,
{fn CONVERT( {fn FLOOR(  {fn CONVERT(TimeUpdated,SQL_FLOAT)} * 3600 ) } - {fn CONVERT( {fn FLOOR(  {fn CONVERT(TimeUpdated,SQL_FLOAT)} ) }, SQL_INTEGER) } *3600, SQL_INTEGER) },
{fn TIMESTAMPADD(SQL_TSI_HOUR, {fn CONVERT( {fn FLOOR(  {fn CONVERT(TimeUpdated,SQL_FLOAT)} ) }, SQL_INTEGER) } ,{fn CONVERT(DateUpdated,SQL_TIMESTAMP)} )}  )}