E invece vi aggiorno perchè la situazione è ancora più complessa di quanto pensavo.

Allora, qualsiasi sia il numero che restituisce la count viene interpretato come un Int32.

Anche nel caso sia inferiore al range massimo di un Int16...

Allora ho voluto fare delle prove, creare delle circostanze per cui il count restituisse un valore superiore al MaxValue di Int32 (lo so, non ho un ca**o da fare).

In access, prima di farlo da codice, ho testato una query effettuando una select count due volte sulla stessa tabella senza creare join (select count(*) from tabella as t1, tabella as t2).

In questo modo, in base alla logica di prodotto cartesiano, mi sarebbe uscito un valore altissimo...

E' morto access.

Devo dire che di tempo per elaborare glie ne ho dato, tipo 30-40 minuti e io ho un athlon xp 2800+ 64bit con 1gb di ram...

Forse access non ce la fa fisicamente a superare simili count(), ma non mi stupirei, vista la cattiva fama di access...

Ma siccome, ripeto, non avevo un C da fare ho tirato in ballo anche MySql.

Dopo bestemmie su bestemmie per creare una connessione con il db MySql ce l'ho fatta, e vi dico pure come ci si collega, dovesse essere utile a qualcuno.

Per prima cosa ho utilizzato il sistema ODBC, quindi oltre ad installare MySql occorre installare il pacchetto di driver ODBC dal sito del MySql (altrimenti non si può creare il DSN tramite gli Strumenti di Amministrazione).

Una volta che ho creato ed impostato un DSN utente, ad esempio MySql, basta che creo i tre oggetti cardine sulla mia classe

System.Data.Odbc.OdbcConnection conn;
System.Data.Odbc.OdbcCommand cmd;
System.Data.Odbc.OdbcDataReader read;

Mi basta poi inizializzare conn e settare la sua ConnectionString = "DSN=MySql" e il gioco è fatto.

La prima cosa che ho fatto è stato appurare che tipo di dato restituisce il count() con MySql e quì c'è stato il colpo di scena.

MySql gestisce il count come un Int64

Quindi, come dice Alka, si, è vero che restituisce sempre un campo dello stesso tipo, ma se si cambia DBMS non è garantito che il tipo sia sempre lo stesso...

Quindi diciamo che in fin dei conti C# da degli standard abbastanza facili da usare con qualsiasi DBMS, se poi vogliamo la vita facile basta che per ogni DBMS creiamo un DSN allora si potrebbe anche fare cambi tattici di DBMS senza rimettere mano al codice, ma nel caso di utilizzo di count o roba simile allora sarebbe un problema...

Che ne dite?