Nell'ottica che dobbiamo supportare database differenti (SQLANYWHERE, IBM DB2 su AS/400, Microsoft SQLServer) e che questi non sempre utilizzano la stessa sintassi o le stesse funzioni,
nel caso in cui andiamo ad utilizziamo la SELECT_SQL con WHERE parametrica o costruire una query da utilizzare con UD_EXECSQL o con il nuovo parametri USING delle SELECT_SQL della versione 14 di LANSA, dobbiamo fare attenzione all'ambiente database utilizzato.
==============
Nelle WAM utilizziamo:
==============
CASE (£DMWAMHND.up_CurrentDBType)
WHEN (= 'SQLANYWHERE')
WHEN (= 'MSSQLS')
WHEN (= 'DB2ISERIES')
ENDCASE
==============
Negli altri programmi:
==============
USE BUILTIN(GET_SESSION_VALUE) WITH_ARGS('DBUT') TO_GET(£R_DBTYPE £RETCODA)
CASE (£R_DBTYPE)
WHEN (= 'SQLANYWHERE')
WHEN (= 'MSSQLS')
WHEN (= 'DB2ISERIES')
ENDCASE
Naturalmente l'ottimale è di utilizzare il case solo per la parte differente del comando e non per tutto (ovvero mettere le parti in comune fuori dal case)