In ambienti Windows i file vengono sempre indirizzati secondo il costrutto "COLLECTION"."TABELLA" dove la collection corrisponde all'utente che ha creato la tabella.
Quando ci si collega al DB, quindi, se non si specifica una collection, il db cerca le tabelle con il nome utente: nel nostro caso
LANSA crea tutte le tabelle con la collection "LIBEMME" (che per il db è un comune utente) che corrisponde alla "libreria" dati della
partizione configurata.
In ambiente AS/400 i file vengono indirizzati con "LIBRERIA"/"TABELLA", in quanto esiste il concetto di lista librerie, ovvero un elenco
di librerie in cui cercare un oggetto.
Però può lavorare anche con il naming standard di tipo SQL, in questo caso è possibile specificare il naming "LIBRERIA"."TABELLA",
ma ci preclude l'opportunità di sfruttare la liste delle librerie in quanto il comportamento è identico a quello windows: se metto la collection
prende quelle se non metto cerca con nome utente.
Quando è stata scritta la BIF UD_EXECSQL è stato forzato il naming a SQL per poter costruire i comandi in modo analogo in tutti gli ambienti.
Purtroppo ci si è accorti che in questo modo l'AS/400 non prende in considerazione la lista delle librerie e perciò ne vanifica l'utilizzo in caso di multiazienda (sempre e solo su AS/400)
Per tanto è stato dovuto rimettere la BIF ad utilizzare il SYS naming.
E' stata creata la variabile di sistema *EDSQLLIB che in base all'ambiente ritorna la libreria formattata correttamente.
Quindi nella formattazione dei comandi , invece di utlizzare la sintassi *PARTDTALIB + ".<TABELLA" occorre utilizzare *EDSQLLIB + "<TABELLA>"
DA NOTARE CHE NON SI SPECIFICA NESSUNA BARRA E NESSUN PUNTO.