Passaggio da access a SQLServer 2005 express

lunedì 19 aprile 2010 - 21.56

Mau67 Profilo | Expert

Ciao al Forum, devo passare dalla mia applicazione in visual studio 2008 che si appoggia a tabelle access, a migrare su tabelle SQLServer 2005 express.

PRIMO PROBLEMA

Il problema è il seguente filtrare dati contenuti nelle tabelle tramite istruzioni SQL:

Con le Tabelle Access le date le filtro così:

Servizi.Dal <= #" & CDate(Id.SubItems(1).Text).Month & "/" & CDate(Id.SubItems(1).Text).Day & "/" & CDate(Id.SubItems(1).Text).Year & "#

Con SQLServer2005 express non le filtra che accorgimento devo usare rispetto ad Access?


SECONDO PROBLEMA


Con access la funzione FIX per calcolare i totali in anni mesi e giorni

Con SQLServer2005 express la funzione fix non è contemplata anche qui che accorgimento devo usare nella seguente istruzione?

strSQL = "SELECT AttoOperativa.ID, ((Sum(Servizi.Aca)) + (Fix(((Sum(Servizi.Mca)) + Fix(((Sum(Servizi.Gca)) / 30))) / 12))) AS Aca," & _
"(((((Sum(Servizi.Mca)) + (Fix(((Sum(Servizi.Gca)) / 30))))) / 12 - (Fix(((Sum(Servizi.Mca)) + (Fix((Sum(Servizi.Gca)) / 30))) / 12))) * 12) AS Mca," & _
"((((Sum(Servizi.Gca)) / 30) - Fix(((Sum(Servizi.Gca)) / 30))) * 30) AS Gca," & _
"((Sum(Servizi.Asu)) + (Fix(((Sum(Servizi.Msu)) + Fix(((Sum(Servizi.Gsu)) / 30))) / 12))) AS Asu," & _
"(((((Sum(Servizi.Msu)) + (Fix(((Sum(Servizi.Gsu)) / 30))))) / 12 - (Fix(((Sum(Servizi.Msu)) + (Fix((Sum(Servizi.Gsu)) / 30))) / 12))) * 12) AS Msu," & _
"((((Sum(Servizi.Gsu)) / 30) - Fix(((Sum(Servizi.Gsu)) / 30))) * 30) AS Gsu," & _
"((Sum(Servizi.Ata)) + (Fix(((Sum(Servizi.Mta)) + Fix(((Sum(Servizi.Gta)) / 30))) / 12))) AS Ata," & _
"(((((Sum(Servizi.Mta)) + (Fix(((Sum(Servizi.Gta)) / 30))))) / 12 - (Fix(((Sum(Servizi.Mta)) + (Fix((Sum(Servizi.Gta)) / 30))) / 12))) * 12) AS Mta," & _
"((((Sum(Servizi.Gta)) / 30) - Fix(((Sum(Servizi.Gta)) / 30))) * 30) AS Gta," & _
"((Sum(Servizi.Apa)) + (Fix(((Sum(Servizi.Mpa)) + Fix(((Sum(Servizi.Gpa)) / 30))) / 12))) AS Apa," & _
"(((((Sum(Servizi.Mpa)) + (Fix(((Sum(Servizi.Gpa)) / 30))))) / 12 - (Fix(((Sum(Servizi.Mpa)) + (Fix((Sum(Servizi.Gpa)) / 30))) / 12))) * 12) AS Mpa," & _
"((((Sum(Servizi.Gpa)) / 30) - Fix(((Sum(Servizi.Gpa)) / 30))) * 30) AS Gpa," & _
"((Sum(Servizi.Afa)) + (Fix(((Sum(Servizi.Mfa)) + Fix(((Sum(Servizi.Gfa)) / 30))) / 12))) AS Afa," & _
"(((((Sum(Servizi.Mfa)) + (Fix(((Sum(Servizi.Gfa)) / 30))))) / 12 - (Fix(((Sum(Servizi.Mfa)) + (Fix((Sum(Servizi.Gfa)) / 30))) / 12))) * 12) AS Mfa," & _
"((((Sum(Servizi.Gfa)) / 30) - Fix(((Sum(Servizi.Gfa)) / 30))) * 30) AS Gfa" & _
" FROM AttoOperativa INNER JOIN Servizi ON AttoOperativa.IDAnagrafica = Servizi.IDAnagrafica where AttoOperativa.IDAnagrafica = '" & ComboBox1.SelectedValue & "' AND AttoOperativa.ID ='" & Id.Text & "'And Servizi.Dal <= #" & CDate(Id.SubItems(1).Text).Month & "/" & CDate(Id.SubItems(1).Text).Day & "/" & CDate(Id.SubItems(1).Text).Year & "# GROUP BY AttoOperativa.ID"

daT1 = New OleDbDataAdapter(strSQL, Connection)
daT1.Fill(dtsAtto, "Totali")

Grazie in anticipo
Mau67

alx_81 Profilo | Guru

>Ciao al Forum, devo passare dalla mia applicazione in visual
>studio 2008 che si appoggia a tabelle access, a migrare su tabelle
>SQLServer 2005 express.
Ciao

>PRIMO PROBLEMA
>Il problema è il seguente filtrare dati contenuti nelle tabelle
>tramite istruzioni SQL:
>Con le Tabelle Access le date le filtro così:
>Servizi.Dal <= #" & CDate(Id.SubItems(1).Text).Month & "/"
>& CDate(Id.SubItems(1).Text).Day & "/" & CDate(Id.SubItems(1).Text).Year
>& "#
>Con SQLServer2005 express non le filtra che accorgimento devo
>usare rispetto ad Access?
La cosa migliore è creare una stored procedure e scrivervi la query che hai indicato sopra. Dovresti usare un parametro (@DataDa, ad esempio, di tipo datetime) da passare al filtro: Servizi.Dal <= @DataDa.
Come passi la data, è poi un problema dell'applicativo che interroga la base dati. E' sufficiente passare la data tipizzata per effettuare la richiesta correttamente, senza andare a creare la data come fai tu.


>SECONDO PROBLEMA
>Con access la funzione FIX per calcolare i totali in anni mesi e giorni
>Con SQLServer2005 express la funzione fix non è contemplata anche
>qui che accorgimento devo usare nella seguente istruzione?
leggi qui:
http://support.microsoft.com/kb/196652

>Grazie in anticipo
di nulla!

--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5