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
ASP.NET 1.0/1.1
Ancora sulle date.......
giovedì 29 giugno 2006 - 11.10
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
bluland
Profilo
| Guru
1.149
messaggi | Data Invio:
gio 29 giu 2006 - 11:10
salve ecco il quesito:
ho una tabella dove ci sono 2 campi data, (data1 e data2), vorrei che al momento dell'inserimento il campo data1 venisse automanticamente riempito con la data di sistema e per questo ho usato getdate() come default value, inoltre in questo primo inserimento data2 deve rimanere vuoto. In un secondo momento solo il campo data2 deve essere riempito sempre pero' con la data di sistema, il problema e' che se imposto anche data2 con getdate(), questo si riempira' gia' al primo inserimento mentre io vorrei che al secondo inserimento/modifica si riempia restando uguali il resto dei campi.
spero di essermi spiegato..
qualche idea?
saluti ENzo
micto27
Profilo
| Senior Member
385
messaggi | Data Invio:
gio 29 giu 2006 - 15:02
>ho una tabella dove ci sono 2 campi data, (data1 e data2), vorrei
>che al momento dell'inserimento il campo data1 venisse automanticamente
>riempito con la data di sistema e per questo ho usato getdate()
>come default value, inoltre in questo primo inserimento data2
>deve rimanere vuoto. In un secondo momento solo il campo data2
>deve essere riempito sempre pero' con la data di sistema, il
>problema e' che se imposto anche data2 con getdate(), questo
>si riempira' gia' al primo inserimento mentre io vorrei che al
>secondo inserimento/modifica si riempia restando uguali il resto
>dei campi.
>spero di essermi spiegato..
io ho una situazione molto simile a quella che hai descritto, una colonna DateTime che registra
l'inserimento in tabelle e una che registra l'ultima modifica.
Questa seconda colonna viene aggiornata da un TRIGGER definito sugli statements di UPDATE
CREATE trigger mioTrigger on dbo.TabellaX FOR UPDATE AS
...............
...............
Ciao, Michele
bluland
Profilo
| Guru
1.149
messaggi | Data Invio:
gio 29 giu 2006 - 20:12
ok ci sono, non va del tutto bene questa soluzione ti spiego il perche con un esempio:
ho i campi:
prodotto, matricola, data_entrata, data_uscita
faccio l'inserimento e riempio il campo: prodotto, matricola, data_entrata,
poi di questi campi in seguito può capitare anche di fare una modifica, anche se ciò avvenisse il campo data_uscita deve cmq restare vuoto.
il campo data_uscita verrà riempito con la data del sistema solo quando lo si deciderà di riempire, quindi se creo il trigger per update appena faccio una modifica (magari perche ho sbagliato l'inserimento) anche il campo data_uscita si riempira', in effetti questo campo deve solo indicare l'uscita del prodotto e quindi deve essere indipendente dal resto dei campi in un certo senso!!!!
che ne dici idee? spero di essermi spiegato......
, forse dovrei fare 2 tabelle separate?? tu che mi consigli?
saluti
Enzo
micto27
Profilo
| Senior Member
385
messaggi | Data Invio:
gio 29 giu 2006 - 21:59
>ok ci sono, non va del tutto bene questa soluzione ti spiego
>il perche con un esempio:
>
>ho i campi:
> prodotto, matricola, data_entrata, data_uscita
>
>faccio l'inserimento e riempio il campo: prodotto, matricola,
>data_entrata,
>
>poi di questi campi in seguito può capitare anche di fare una
>modifica, anche se ciò avvenisse il campo data_uscita deve cmq
>restare vuoto.
>
>il campo data_uscita verrà riempito con la data del sistema solo
>quando lo si deciderà di riempire, quindi se creo il trigger
>per update appena faccio una modifica (magari perche ho sbagliato
>l'inserimento) anche il campo data_uscita si riempira', in effetti
>questo campo deve solo indicare l'uscita del prodotto e quindi
>deve essere indipendente dal resto dei campi in un certo senso!!!!
>che ne dici idee? spero di essermi spiegato......
, forse
>dovrei fare 2 tabelle separate?? tu che mi consigli?
>
>saluti
>Enzo
>
Ok, però allora, se l'update deve esplicito vuol dire che, quando ti serve,
dovrai eseguire un apposito comando del tipo
"UPDATE tabella set Data = getdate() where ......."
Ciao, Michele
bluland
Profilo
| Guru
1.149
messaggi | Data Invio:
gio 29 giu 2006 - 22:50
in questo modo modificherei solo il campo data2 soltanto?? e se facessi un modifica degli altri campi il campo data2 rimarrebbe sempre invariato?
micto27
Profilo
| Senior Member
385
messaggi | Data Invio:
ven 30 giu 2006 - 08:50
>in questo modo modificherei solo il campo data2 soltanto?? e
>se facessi un modifica degli altri campi il campo data2 rimarrebbe
>sempre invariato?
Mi sfugge una cosa:
tu al limite puoi dover modificare anche solo Data2 oppure comunque la modifica di Data2
dipende dal fatto che si modifichino certi dati?
Potresti ad esempio configurare 2 diversi command, uno con e uno senza il "pezzetto" Data2=getdate() ed eseguire
uno o l'altro:
a) cmd1.CommandText = "UPDATE tabella set Col1 = @p1, Col2 = @p2, ...., Coln = @pn, Data2 = getdate() where ......."
b) cmd2.CommandText = "UPDATE tabella set Col1 = @p1, Col2 = @p2, ...., Coln = @pn where ......."
Se la modifica di Data2 fosse dipendente dalla modifica di altre colonne allora
potrebbe rientrare in gioco anche il TRIGGER da condizionare al fatto che siano oggetto di UPDATE
determinate colonne e non sia oggetto di UPDATE la colonna Data2 stessa.
Ad esempio condizionando Data2 alla modifica di Col2 o Col3 potresti pilotare il trigger in modo che:
UPDATE tabella SET Col1 = @p1 WHERE .... --> No aggiornamento Data2 (in quanto nessuna delle colonne stabilite è stata modificata)
UPDATE tabella SET Col1 = @p1, Col2= @p2, ..... WHERE .... --> Si aggiornamento Data2 (in conseguenza modifica Col1)
UPDATE tabella SET Col1 = @p1, Col2= @p2, Data2=@p3 WHERE .... --> No aggiornamento Data2 (in quanto aggiornata esplicitamente dal command)
Eventualmente, un vantaggio del trigger potrebbe essere quello che, l'aggiornamento del dato Data2 sarebbe "coerente"
anche se effettuato "zampettando" direttamente sui dati, al di fuori del controllo dato dall'applicazione.
Ciao, Michele
bluland
Profilo
| Guru
1.149
messaggi | Data Invio:
ven 30 giu 2006 - 09:41
no mi sa che devo fare l'update solo di Data2=getdate() cioe' il primo modo poiche questo data2 deve essere indipendente dagli altri penso che cosi dovrebbe funzionare
grazie
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 !