MarcoMySql ver 1.0.0.1
PadovaBoy non è online. Ultima attività: 18/04/2008 12.22.47PadovaBoy
Inserito il: 14 marzo 2006 09.21
www.padovaboy.it / 542 messaggi dal 23 giu 2003
Grandissimo ;)
Mo me lo scarico e ci do subito un'occhio! :D
Grazie ancora Marco sei mitico!

www.padovaboy.it dal 2001 con furore :D
Re: MarcoMySql ver 1.0.0.1
nostromo non è online. Ultima attività: 16/05/2008 23.54.09nostromo
Inserito il: 14 marzo 2006 10.14
Microsoft Most Valuable Professional
contributi / Top Poster / Community manager / www.soluzioni4d.it / Blog / 11197 messaggi dal 18 feb 2004
:) non esageriamo, fammi sapere se condividi la modifica fatta al DataReader, in pratica invece di generare un eccezion in caso la data recuperata non sia valida per il tipo DateTime invece di generare un eccezione ritorno un valore Dbnull

ciao marco

Where we're going, we don't need roads!
http://nostromo.spaces.live.com/default.aspx
Re: MarcoMySql ver 1.0.0.1
PadovaBoy non è online. Ultima attività: 18/04/2008 12.22.47PadovaBoy
Inserito il: 14 marzo 2006 10.59
www.padovaboy.it / 542 messaggi dal 23 giu 2003
Per data non valida presumo che tu intenda principalmente le fastidiose date con 0!
Io ho affrontato il problema direttamente sul tipo di dato, seguendo il post:
http://forum.valhallalegends.com/phpbbs/index.php?PHPSESSID=759b972fa86b6cc3368fe515ed72b4dc&topic=10482.new
In cui riporta questo codice per MySqlDateTime.cs, specificando che questo permette di non avere problemi in assegnazione in quanto un DateTime non permette il valore dbnull:


internal MySqlDateTime(DateTime val, MySqlDbType type) : this(type)
{
if (val == DateTime.MinValue) // this entire conditional and branch were added
{
year = 0;
month = 0;
day = 0;
hour = 0;
minute = 0;
second = 0;
}
else
{ // everything inside this branch constituted the original code.
year = val.Year;
month = val.Month;
day = val.Day;
hour = val.Hour;
minute = val.Minute;
second = val.Second;
}
}


/// <summary>Returns this value as a DateTime</summary>
/// <remarks>
/// <para>For invalid dates, this value represents a DateTime that would be equivalent to <b>DateTime.MinValue</b>.</para>
/// </remarks>
public DateTime GetDateTime()
{
if (!IsValidDateTime)
// exception thrown is commented out. instead, return DateTime.MinValue.
//throw new MySqlConversionException("Unable to convert MySQL date/time value to System.DateTime");
return DateTime.MinValue;

return new DateTime( year, month, day, hour, minute, second );
}


Venendo al tuo codice:


//non capisco lo scopo della condizione originale >> !dt.IsValidDateTime && connection.Settings.ConvertZeroDateTime
if (!dt.IsValidDateTime)
return DBNull.Value;//DateTime.MinValue;
else if (connection.Settings.AllowZeroDateTime)
return val;
else
return dt.GetDateTime();
}

return val.ValueAsObject;
}

Effettivamente la condizione originale pare errata (più che altro insensata).
Qua fai in modo di sputare un dbnull nel caso in cui via sia un errore, al posto del minvalue...qua bisogna fare qualche prova...non è che si incrocchia il tutto se creo una funzione che richiede un datetime in entrata...e gli passo un dbnull?
Forse con DateTime? (nullable) lo accetta ma se no, fa crocchio!

Perdona se ho detto cazzate ma sono ancora indietro con C# e .NET ;)

Intanto grazie ancora del codicione!
Più tardi se ho tempo ci do una sbirciata più a fondo ;)

www.padovaboy.it dal 2001 con furore :D
Re: MarcoMySql ver 1.0.0.1
nostromo non è online. Ultima attività: 16/05/2008 23.54.09nostromo
Inserito il: 14 marzo 2006 11.08
Microsoft Most Valuable Professional
contributi / Top Poster / Community manager / www.soluzioni4d.it / Blog / 11197 messaggi dal 18 feb 2004
la modifica apporta al DataReader non dovrebbe mai creare problemi, visto che il DataReader è sempre ReadOnly.

comunque nei test che ho fatto anche se semplici non ha mai dato problemi, ma devo mettere su un UnitTest fatto bene.

ho preferito non modifiare il tipo MySqlDbType e onestamente capisco poco il controllo che veniva eseguito, specialmente visto che a me piace fare, inserire null invece che DateTime.MinValue et simila.

ma è un gusto personale :)

non so in che tempi ma conto di introdurre anche il supporto per l'ide del VS 2005

ciao marco e grazie come al solito.

Modificato da nostromo il 14 marzo 2006 11.09 -

Where we're going, we don't need roads!
http://nostromo.spaces.live.com/default.aspx
Re: MarcoMySql ver 1.0.0.1
ninoval non è online. Ultima attività: 09/02/2008 12.13.26ninoval
Inserito il: 15 maggio 2006 12.24
1 messaggio dal 16 mag 2004
Salve a tutti. Qualcuno potrebbe fornirmi la dll già compilata, per favore? Il mio indirizzo email è ilballo@yahoo.it. Grazie.

Vai a:

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.


COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums