Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Passaggio da access a SQLServer 2005 express
lunedì 19 aprile 2010 - 21.56
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Mau67
Profilo
| Expert
917
messaggi | Data Invio:
lun 19 apr 2010 - 21:56
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
8.814
messaggi | Data Invio:
mar 20 apr 2010 - 11:13
>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
Torna su
Stanze Forum
Elenco Threads
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 !