criscap1985 (Normal User)
Newbie
Messaggi: 11
Iscritto: 15/04/2014
|
Salve,
avrei bisogno di una mano per convertire questo benedetto datediff:
Codice sorgente - presumibilmente VB.NET |
CommandText := 'SET dateFORMAT dmy SELECT DISTINCT PIN,SIA FROM MODULI WHERE ' + 'datediff(day, convert(datetime, cast('01/01/1990' as datetime), 103), convert(datetime, DATA_RICHIESTA, 103)) >= 0 AND ' + 'datediff(day, convert(datetime, cast(' + Data('DATA_RICHIESTA_A') + ' as datetime), 103), convert(datetime, DATA_RICHIESTA, 103)) <= 0 AND ' + 'datediff(day, convert(datetime, cast(' + Data('DATA_VERSAMENTO_DA') + ' as datetime), 103), convert(datetime, DATA_VERSAMENTO, 103)) >= 0 AND ' + 'datediff(day, convert(datetime, cast(' + Data('DATA_VERSAMENTO_A') + ' as datetime), 103), convert(datetime, DATA_VERSAMENTO, 103)) <= 0 ' //non considero tuttele deleghe annullate con STATO = A della giornata + ' AND STATO = ' + QuotedStr('R') + ' ORDER BY PIN,SIA';
|
DATA_RICHIESTA ,DATA_VERSAMENTO => campi letti dal db in sql server
DATA_RICHIESTA_DA, DATA_RICHIESTA_A, DATA_VERSAMENTO_DA, DATA_VERSAMENTO_A => campi letti dall'app.config
Ho provato a fare così :
Codice sorgente - presumibilmente C# / VB.NET |
var moduli = from db in contestoDB.MODULI
where ...... && STATO = "R"
orderby db.PIN, db.SIA
select new {
db.PIN,
db.SIA
};
moduli = moduli.Distinct();
|
Ma non so dove sbattere la testa!
Grazie
|
|
sps84 (Normal User)
Expert
Messaggi: 202
Iscritto: 11/02/2009
|
Nella calusola where cosa dovresti verificare?
|
|
criscap1985 (Normal User)
Newbie
Messaggi: 11
Iscritto: 15/04/2014
|
qualcuno risponde... se no mi sembrava un cimitero. Allora in pratica funziona così :
Dato un file ini contenente :
DATA_RICHIESTA_DA (in questo caso ci ho messo direttamente il valore della data ossia 01/01/1990 per provarlo)
DATA_RICHIESTA_A = datamax 31/12/2999
DATA_VERSAMENTO_DA
DATA_VERSAMENTO_A
le leggo tramite la funzione Data('*data*').
E nel mio db ho un elenco di moduli in cui compare sia la data di richiesta e versamento da a .... quindi mi sembra di aver capito che sta confrontando che la differenza tra le date richieste sia >=, <= 0. Per cui come posso trasformare tale istruzione sql in linq tenendo conto che la variabile importante è Data('DATA_RICHIESTA_* etc..') perchè ogni volta che faccio l'istruzione linq leggo dal file direttamente.
|
|
sps84 (Normal User)
Expert
Messaggi: 202
Iscritto: 11/02/2009
|
Rispondo non conoscendo la struttura esatta della tabella:
DateTime DATA_RICHIESTA_DA = Data("DATA_RICHIESTA_DA");
DateTime DATA_RICHIESTA_A = Data("DATA_RICHIESTA_A");
var query = from db in contestoDB.MODULI
where
db.DATA_RICHIESTA.Day >= 0
&& db.DATA_RICHIESTA.Day <= 0
&& db.DATA_VERSAMENTO.Day >= 0
&& db.DATA_VERSAMENTO.Day <= 0
&& STATO = "R"
orderby db.PIN, db.SIA
select new {
db.PIN,
db.SIA
};
Al limite dato che quasi sicuramente non funzionerà prova qualche tool online per convertire query sql in linq cerca con google.
|
|
criscap1985 (Normal User)
Newbie
Messaggi: 11
Iscritto: 15/04/2014
|
Ciao sps84,
io ho provato a fare così :
Codice sorgente - presumibilmente C# / VB.NET |
var datiModuli = from db in contestoDB.MODULI
where (((db.DATA_RICHIESTA - Convert.ToDateTime(GetDataByTipo("DRDA"))).TotalDays >= 0) &&
((db.DATA_RICHIESTA - Convert.ToDateTime(GetDataByTipo("DRA"))).TotalDays <= 0) &&
((db.DATA_VERSAMENTO - Convert.ToDateTime(GetDataByTipo("DVDA"))).TotalDays >= 0) &&
((db.DATA_VERSAMENTO - Convert.ToDateTime(GetDataByTipo("DVA"))).TotalDays <= 0) &&
db.STATO == 'R')
orderby db.PIN, db.SIA
select new
{
db.PIN,
db.SIA
};
datiModuli = datiModuli.Distinct();
|
Non so se va bene. Cmq il Delhpi è da killare!
|
|
sps84 (Normal User)
Expert
Messaggi: 202
Iscritto: 11/02/2009
|
scusami ma come fai a vedere se non va bene? Puoi provarlo il codice?
|
|
criscap1985 (Normal User)
Newbie
Messaggi: 11
Iscritto: 15/04/2014
|
Vorrei provare prima il codice in delphi per vedere che risultato dà facendo il debugging ma non conoscendo un compilatore per quel maledetto linguaggio delphi che sia.....non posso capire se il risultato è quello corretto no? Il problema è che sto convertendo un progetto di ben 13 anni fa... in c#.
Conosco il c# come le mie tasche ma il Delphi è proprio
|
|
sps84 (Normal User)
Expert
Messaggi: 202
Iscritto: 11/02/2009
|
se magari posti il codice qualcuno può aiutarti
|
|
criscap1985 (Normal User)
Newbie
Messaggi: 11
Iscritto: 15/04/2014
|
|
|