Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 13-10-2008, 17.19.13   #16
Poseidon
Gold Member
 
Registrato: 21-09-2002
Messaggi: 2.281
Poseidon promette bene
okappa, potresti quindi scrivermi il codice cos come lo useresti tu? cos lo testo e ti dico se va
___________________________________

Notebook Lenovo Ideapad Z500: Intel Corei7 3632QM, 8GB DDR3 PC12800, HDD1 1TB 5400RPM, HDD2 (*) Verbatim SSD 128GB, Nvidia Geforce 635m 2GB
Poseidon non  collegato   Rispondi citando
Vecchio 13-10-2008, 17.21.10   #17
micmen
Junior Member
 
Registrato: 11-09-2008
Messaggi: 53
micmen promette bene
Il codice di cosa ?
micmen non  collegato   Rispondi citando
Vecchio 14-10-2008, 09.30.40   #18
Poseidon
Gold Member
 
Registrato: 21-09-2002
Messaggi: 2.281
Poseidon promette bene
di tutto il trigger, la tua versione insomma, come lo faresti tu
___________________________________

Notebook Lenovo Ideapad Z500: Intel Corei7 3632QM, 8GB DDR3 PC12800, HDD1 1TB 5400RPM, HDD2 (*) Verbatim SSD 128GB, Nvidia Geforce 635m 2GB
Poseidon non  collegato   Rispondi citando
Vecchio 14-10-2008, 09.51.44   #19
micmen
Junior Member
 
Registrato: 11-09-2008
Messaggi: 53
micmen promette bene
Come ti ho detto toglierei solo la condizione sul tipo nella clausola "on update" del secondo trigger.
micmen non  collegato   Rispondi citando
Vecchio 15-10-2008, 09.44.15   #20
Poseidon
Gold Member
 
Registrato: 21-09-2002
Messaggi: 2.281
Poseidon promette bene
ho risolto! ecco il codice finale e funzionante:

create trigger videoteca.decrementa_quantita
after insert on noleggio
for each row
UPDATE dvd
SET quantita=quantita-1 where id_dvd = new.dvd_noleggiato;


create trigger videoteca.incrementa_quantita
after update on noleggio
for each row
UPDATE dvd
SET quantita=quantita+1 where new.tipo = 1 and id_dvd = new.dvd_noleggiato;



ora per ho 1 altro problema, devo fare in modo che l'inserimento nella tabella noleggio sia lecito solo quando il cliente che ha restituito il precedente noleggio non in ritardo

create trigger consenti_noleggio
before insert on noleggio
for each row
IF socio=0 and DataRestEff > DataRestPrev or DataRestPrev < now()
THEN abort while DataRestEff <= (DataRestEff, interval 30 day);


sottolineo che non ho la minima idea se l'ultima riga abbia un senso in SQL. Il succo che se un non socio mi consegna in ritardo, gli blocco la possibilit di noleggiare per 30 giorni.
___________________________________

Notebook Lenovo Ideapad Z500: Intel Corei7 3632QM, 8GB DDR3 PC12800, HDD1 1TB 5400RPM, HDD2 (*) Verbatim SSD 128GB, Nvidia Geforce 635m 2GB

Ultima modifica di Poseidon : 15-10-2008 alle ore 09.48.17
Poseidon non  collegato   Rispondi citando
Vecchio 15-10-2008, 10.03.34   #21
micmen
Junior Member
 
Registrato: 11-09-2008
Messaggi: 53
micmen promette bene
Scusa, ma vedo degli attributi non presenti nelle tabelle di cui parlavi all'inizio (socio, DataRestPrev). Anche io penso che l'ultima riga non vada bene. Cosa indicherebbe (DataRestEff, interval...) ?
micmen non  collegato   Rispondi citando
Vecchio 15-10-2008, 10.24.34   #22
Poseidon
Gold Member
 
Registrato: 21-09-2002
Messaggi: 2.281
Poseidon promette bene
ops.. si scusa, allora

- " socio " un attributo di una tabella chiamata CLIENTE.

- "DataRestPrev un attributo di una tabella chiamata GIORNO ( che indica il giorno di noleggio, con la data iniziale del noleggio e quella di restituzione prevista )

lo scopo del trigger quello di impedire un nuovo noleggio ( x 30 giorni a partire dalla restituzione ) a un cliente che non sia socio ( socio = 0 ) che abbia riconsegnato il precedente noleggio in ritardo rispetto alla data di restituzione prevista ( che cade una settimana dopo la data di inizio noleggio )

eh, l'ultima riga indicherebbe appunto il fatto che mi blocca l'inserimento in noleggio per 30 giorni a partire dalla data di riconsegna effettiva se questa in ritardo. So che sbagliata, ma non riesco a trovar online alcuno spunto per capire come scriverla correttamente.

edit: a meno che, pensavo.. non si possa introdurre una clausola check nella definizione della tabella noleggio, x richeiderebb eun join suppongo o pi d'uno, possibile mettere dei join all'interno di una check nella definizione di una tabella?
___________________________________

Notebook Lenovo Ideapad Z500: Intel Corei7 3632QM, 8GB DDR3 PC12800, HDD1 1TB 5400RPM, HDD2 (*) Verbatim SSD 128GB, Nvidia Geforce 635m 2GB

Ultima modifica di Poseidon : 15-10-2008 alle ore 10.31.50
Poseidon non  collegato   Rispondi citando
Vecchio 15-10-2008, 10.37.51   #23
micmen
Junior Member
 
Registrato: 11-09-2008
Messaggi: 53
micmen promette bene
Domanda: ma se un cliente non socio come fai ad identificarlo quando ritenta un noleggio ? Cmq. a pelle mi viene in mente una tabella (magari chiamata BlackList) contenente gli attributi Cliente, DataFineBlocco. Quando viene riconsegnato in ritardo un dvd, automaticamente un trigger inserisce una riga in tale tabella. Quindi, quando un cliente tenta il noleggio, prima si controlla se presente in BlackList. Poi ci potrebbe essere una procedura giornaliera che giornalmente ripulisce la BlackList.
micmen non  collegato   Rispondi citando
Vecchio 15-10-2008, 10.56.58   #24
Poseidon
Gold Member
 
Registrato: 21-09-2002
Messaggi: 2.281
Poseidon promette bene
allora ogni cliente identificato da un id_cliente univoco ( chiave primaria ) e c' 1 attributo "socio" che se impostato a 0 indica che il cliente non un socio, e se impostato a 1 indica che il cliente socio.

Comunque cambiando argomento, ma rimanendo in tema possibile creare un trigger che abbia effetto sulla tabella target dalla quale invocato?

del tipo

create trigger
after update on TABELLA TARGET
for each row
update TABELLA TARGET ecc ecc.. ?
___________________________________

Notebook Lenovo Ideapad Z500: Intel Corei7 3632QM, 8GB DDR3 PC12800, HDD1 1TB 5400RPM, HDD2 (*) Verbatim SSD 128GB, Nvidia Geforce 635m 2GB

Ultima modifica di Poseidon : 16-10-2008 alle ore 13.10.10
Poseidon non  collegato   Rispondi citando
Vecchio 17-10-2008, 16.03.31   #25
Poseidon
Gold Member
 
Registrato: 21-09-2002
Messaggi: 2.281
Poseidon promette bene
inoltre..

Date due tabelle di partenza:

1) NOLEGGIO

2) DVD, che ha diversi attributi tra qui l'attributo quantita

ha senso il seguente trigger?

create trigger noleggi_consentiti
before insert on noleggio
check dvd.quantita >0 and dvd.quantita<=5;

Il fatto la quantit di dvd disponibili deve essere compresa tra 0 e 5, ho provato a implementare la tabella dvd inserendovi interno una clausola check, ma MYSQL la ignora.
___________________________________

Notebook Lenovo Ideapad Z500: Intel Corei7 3632QM, 8GB DDR3 PC12800, HDD1 1TB 5400RPM, HDD2 (*) Verbatim SSD 128GB, Nvidia Geforce 635m 2GB
Poseidon non  collegato   Rispondi citando
Vecchio 17-10-2008, 17.03.11   #26
micmen
Junior Member
 
Registrato: 11-09-2008
Messaggi: 53
micmen promette bene
Nel senso che non ti crea il controllo o che hai provato e non te lo considera ?
micmen non  collegato   Rispondi citando
Vecchio 17-10-2008, 19.06.16   #27
Poseidon
Gold Member
 
Registrato: 21-09-2002
Messaggi: 2.281
Poseidon promette bene
nel senso che se implemento una tabella cos:

create table noleggio (

ecc ecc

quantita tinyint(1) default 5 not null,

ecc ecc

check(quantita >=0 and quantita<=5)
);

MySQL non mi rileva alcune errore, x la check non viene proprio considerata. Ho controllato online e MySQL proprio non digerisce le check nelle tabelle. Non trovo 1 modo per implementar il controllo avevo pensato mediante trigger, ma non riesco..
___________________________________

Notebook Lenovo Ideapad Z500: Intel Corei7 3632QM, 8GB DDR3 PC12800, HDD1 1TB 5400RPM, HDD2 (*) Verbatim SSD 128GB, Nvidia Geforce 635m 2GB
Poseidon non  collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
Il codice HTML OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
[MYSQL] perk questo codice non funziona? Poseidon Programmazione 6 03-11-2008 03.44.12
[MYSQL] On delete cascade Alhazred Programmazione 2 01-10-2008 14.49.20
[MySQL] SQLException: Before start of result set Alhazred Programmazione 5 20-07-2008 19.57.21
[MySQL] query complessa Thor Programmazione 5 29-08-2005 05.34.15
[mysql] nana_d Programmazione 2 20-04-2005 11.38.17

Orario GMT +2. Ora sono le: 08.26.40.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright Jelsoft Enterprises Limited.