Oppure

Loading
18/04/14 9:46
criscap1985
Salve,
avrei bisogno di una mano per convertire questo benedetto datediff:



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ì :



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


aaa
20/04/14 16:25
sps84
Nella calusola where cosa dovresti verificare?
aaa
22/04/14 5:42
criscap1985
:hail: 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.
aaa
22/04/14 10:45
sps84
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.
aaa
22/04/14 12:39
criscap1985
Ciao sps84,
io ho provato a fare così :



                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!
aaa
22/04/14 12:45
sps84
scusami ma come fai a vedere se non va bene? Puoi provarlo il codice?
aaa
22/04/14 15:05
criscap1985
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 :grr:
aaa
22/04/14 18:22
sps84
se magari posti il codice qualcuno può aiutarti
aaa