Newsgroup: it.comp.www.asp
Titolo: access 2 sql server

ho progettato una applicazione in .asp ( con il vostro contributo...) e
come database utilizzavo Access per fare delle prove
ho fatto un porting verso Sql Server e mi trovo una differenza...
le tabelle che prima chiamavo Enti in Access ora mi trovo dbo.Enti in Sql
Server per cui la procedura mi da errore
esiste un modo perche io non debba riprendere in mano tutto il codice e mi
interpreti quel dbo.Enti in Enti??
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 interpreti quel dbo.Enti in Enti??
Con access2000 (aprendo il db sql) puoi rinominare le cartelle, se non
ricordo male (oppure puoi farlo con sql server manager)
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 ricordo male (oppure puoi farlo con sql server manager)
ho trovato un altro problema al passaggio da Access a Sql Server
data_call = Now()
la riga sql è : SQL = "UPDATE Nominativi Set data_call = '" & data_call &
"',....
ma ho questo errore...
Tipo di errore:
Microsoft OLE DB Provider for SQL Server (0x80040E07)
La conversione del tipo di dati da char a smalldatetime ha generato un
valore smalldatetime non compreso nell'intervallo di valori validi.


 valore smalldatetime non compreso nell'intervallo di valori validi.
Ciao Galassya,
devi formattare la data nel formato ISO stringa 'YYYYMMDD'.
Per maggiori info leggi il seguente tip:
http://italy.mvps.org/MVPs/lbenaglia/LorenzoBenaglia-Tip-FormatoDate.htm
Ad ogni modo ti suggerisco di incapsulare gli accessi in stored procedure
parametriche.
In questi due post puoi leggere alcuni vantaggi nell'utilizzo delle stored
procedure rispetto a "schiantare" nel codice una query SQL:
http://tinyurl.com/s662
http://tinyurl.com/s664
Per un esempio pratico con le date prova a leggere questo post:
http://tinyurl.com/4a7vo
Ciao!
-- 
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://mvp.support.microsoft.com
http://italy.mvps.org

 Ciao!
Molto esauriente la documentazione
per cui se non ho capito male io con il comando now() registro la data
29/09/2004
mentre Sql Server vuole 20040929
ma un altro problema è il dato gia importato
io ho importato i dati cosi: 29/09/2004 11.18.00
che comando devo utilizzare allora?
come registro la data di oggi sul campo datetime corretta??


 come registro la data di oggi sul campo datetime corretta??
Mmmm... hai letto gli articoli che ti ho segnalato?!
SQL Server offre due data types per la memorizzazione delle date: datetime e
smalldatetime.
datetime
--------
Range di validità: 1 gennaio 1753 - 31 dicembre 9999 con una precisione pari
a 0.00333 secondi.
Bytes occupati: 8 (2 coppie di interi di 4 bytes)
- i primi 4 per la memorizzazione dei giorni prima o dopo l'1 gennaio 1900
- gli altri 4 per la memorizzazione dei millisecondi dopo la mezzanotte
smalldatetime
-------------
Range di validità: 1 gennaio 1900 - 6 giugno 2079 con una precisione al
minuto.
Bytes occupati: 4 (2 coppie di interi di 2 bytes)
- i primi 2 per la memorizzazione dei giorni dopo l'1 gennaio 1900
- gli altri 2 per la memorizzazione dei minuti dopo la mezzanotte
Quindi le date sono internamente gestite come coppie di interi.
La stringa 'YYYYMMDD' verrà implicitamente castata in datetime (o
smalldatetime).
per un esempio concreto ti timando al tip che ti ho segnalato prima, ovvero:
http://italy.mvps.org/MVPs/lbenaglia/LorenzoBenaglia-Tip-FormatoDate.htm


 Ciao!
scusami ma faccio un sacco di confusione... non riesco a capire...
questa è la mia riga di codice:
.....
data_mod = Now
.....	
SQL = "UPDATE Nominativi Set data_mod = '"& data_mod & "', utente_mod =
'"& Session("ID_utente") &"' WHERE ID_Nominativo ='" & QSID & "'"
come devo correggere queste righe in modo che mi inserisca il dato
corretto?  o cosa devo fare prima perche interpreti il codice
correttamente?


 correttamente?
Prova cosě:
data_mod = Year(Now) & Right("0" & Month(Now), 2) & Right("0" & Day(Now), 2)
.....
SQL = "UPDATE Nominativi SET data_mod = '" & data_mod & "', utente_mod
= '" & Session("ID_utente") & "' WHERE ID_Nominativo ='" & QSID & "'"
O meglio ancora, utilizza la funzione T-SQL GETDATE() in modo da aggiornare
la colonna data_mod con la data e l'ora di sistema:
SQL = "UPDATE Nominativi SET data_mod = GETDATE(), utente_mod
= '" & Session("ID_utente") & "' WHERE ID_Nominativo ='" & QSID & "'"
Ad ogni modo ti suggerisco *caldamente* di fare ricorso alle stored
procedure parametriche...


 Ciao!
fatto cosi...
'------------------------------------------------
	' Restituisce la data di oggi in formato aaaammgg
	'------------------------------------------------
	Function today()
		dim dtOggi
		dtOggi = date()
		today = get_str(dtOggi)
	end function
 
	Function rightNow()
		ora = hour(now)
		minuto =minute(now)
		secondo = second(now)
		strOra = ""
		strMinuto = ""
		strSecondo = ""
		strOra = ora
		strMinuto = minuto
		strSecondo = secondo
		if ora < 10 then strOra = "0" & ora
		if minuto < 10 then strMinuto = "0" & minuto
		if secondo < 10 then strSecondo = "0" & secondo
		rightNow =strOra & strMinuto & strSecondo 
	end function
 
	'------------------------------------------------
	' Restituisce la data passata in formato stringa
	'------------------------------------------------
	Function get_str(dtRif)
		dim strFill
		anno = year(dtRif)
		mese = month(dtRif)
		giorno = day(dtRif)
		strFill = "0"
		get_str = "" & anno
		if mese<10 then
			get_str = get_str & strFill
		end if
		get_str = get_str & mese
		if giorno<10 then
			get_str = get_str & strFill
		end if
		get_str = get_str & giorno		
	end function
data_mod = today
e cosi mi funzia
solo che non ho piu la ora minuto secondo
ufffff


 ufffff
Anche cosě ti funzia, credimi:


 ufffff
Anche cosě ti funzia, credimi:
SQL = "UPDATE Nominativi SET data_mod = GETDATE(), utente_mod
= '" & Session("ID_utente") & "' WHERE ID_Nominativo ='" & QSID & "'"
Ciao!
