SQL Server 2008 desktop background - dark version - full screen_thumb Storie di vita vissuta. Anzi: di tempo perso a cercare di capire perché qualcosa non sta funzionando come dovrebbe, e lo sta facendo in modo assai strano.

Quando si usa un database SQL Server, uno dei modi più rapidi per visualizzare o modificare i record durante lo sviluppo (ma anche dopo, eh ;-) è creare al volo una connessione ODBC al database e creare in un database di Access una serie di collegamenti alle tabelle del server.

Ogni tanto però alcune di queste tabelle (solo alcune!) presentano nei loro campi, al posto dei valori reali, una serie infinita di label #Eliminato. La label #Eliminato viene usata di solito per indicare che il record non c’è più, ma nella visualizzazione di Access ancora non è stata rimossa la riga: ma in questo caso basta il classico F5 (Refresh) e la visualizzazione torna ad essere corretta.

Se questa serie di #Eliminato proprio non vuole sparire, nemmeno cancellando il collegamento alla tabella e ricreandolo da zero, molto probabilmente è perché le tabelle su SQL Server contengono dei tipi di dati che il motore Jet non riesce a gestire. Ad esempio bigint, un tipo di dati numerico per numeri *molto* grandi (2^63, con segno), che in Access non è previsto (ci si deve “accontentare” del corrispondente degli int, ovvero 2^31, con segno). Per risolvere il problema è purtroppo necessario (sempre che sia possibile) modificare la struttura della tabella, sostituendo i tipi di dati non supportati coi loro corrispettivi Jet-friendly.

Link utili: