.dsy:it. Pages (4): « 1 [2] 3 4 »
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Basi di dati ~ informatica triennale (http://www.dsy.it/forum/forumdisplay.php?forumid=211)
-- progetto da consegnare a settembre. (http://www.dsy.it/forum/showthread.php?threadid=38969)


Posted by carla86 on 08-09-2009 09:18:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'end'
at line 7

xo' forse ho trovato ke sia il delimiter ke mi sono dimenticata e poi cn end if.

ho anche un'altra domanda, scusa ke t sto subissando d domande ma è la prima volta ke metto mano su mysql:
in un campo posso aggiungere una percentuale? ossia x esempio:
set new.ab=old.ab+10%;
??
grazie ancora...


Posted by darkshadow on 08-09-2009 09:24:

direi di no.. penso ke la percentuale la devi calcolare. o al massimo se esiste usare una funzione ke te le calcola.

cmq io non sto usando mysql.

__________________
by Ð@rk§h@ÐØw


Posted by carla86 on 08-09-2009 09:31:

ma quindi tu x fare gli aumenti metti direttamente il numero?!?!
Io volevo usare la percentuale xke volevo aumentare i valori in base a quanti pi spostava...


Posted by darkshadow on 08-09-2009 09:40:

anchio uso le percentuali.. quello che volevo dire è che non si può fare...
colonna = colonna + 10%

quel 10% lo devi calcolare

non so per esempio dichiari una funzione che ti calcola la percentuale

e quindi fai : colonna = colonna + funzionePercentuale()

__________________
by Ð@rk§h@ÐØw


Posted by carla86 on 08-09-2009 10:25:

o sono diventata pazza o nn arrivo a determinate cose..

delimiter //
create function percentuale(integer val, integer percento) return integer as
begin
declare risultato integer;
risultato = (val*percento)/100;
return risultato;
end;
//

cosa c'è d sbagliato? x qaunto ho cercato su internet (in cui nn ci sono esempi concreti ma parla solo d sintassi..) dovrebbe essere giusto..


Posted by darkshadow on 08-09-2009 10:37:

Originally posted by carla86
o sono diventata pazza o nn arrivo a determinate cose..

delimiter //
create function percentuale(integer val, integer percento) return integer as
begin
declare risultato integer;
risultato = (val*percento)/100;
return risultato;
end;
//

cosa c'è d sbagliato? x qaunto ho cercato su internet (in cui nn ci sono esempi concreti ma parla solo d sintassi..) dovrebbe essere giusto..


delimiter //
create function percentuale(integer val, integer percento) returns integer as
begin
declare risultato integer;
SET risultato = (val*percento)/100;
return risultato;
end
//

__________________
by Ð@rk§h@ÐØw


Posted by carla86 on 08-09-2009 10:55:

mysql> create function percentuale(integer val,integer percento) returns integer
as
-> begin
-> declare risultato integer;
-> set risultato=(val*percento)/100;
-> return risultato;
-> end;
-> //
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'integ
er val,integer percento) returns integer as
begin
declare risultato integer' at line 1

questo è ciò ke faccio in mysql tralatro cn l'utente root quindi proprio nn capisco dov'è l'errore...
mi sa ke mi toccherà inviare una mail a montanelli e chiedergli un colloquio,altrimenti me lo sogno d consegnare il progetto..
spero tu sia messo meglio..
grazie dell'aiuto!


Posted by darkshadow on 08-09-2009 11:16:

 

delimiter //
create function percentuale(integer val, integer percento) returns integer as
begin
declare risultato integer        -> Il ; non ci va nella declare
SET risultato = (val*percento)/100;
return risultato;
end
//

__________________
by Ð@rk§h@ÐØw


Posted by carla86 on 08-09-2009 11:28:

niente da fare anche togliendo il punto e virgola nn funziona uguale... sempre stesso errore..


Posted by R1cky` on 08-09-2009 11:28:

Che editor usi?
Ti consiglio di scaricare http://www.webyog.com/en/downloads.php#sqlyog, è molto comodo.

Comunque se vai da montanelli non dirgli che hai fatto prima la parte web e poi la parte db altrimentti tin inforca :D


Posted by carla86 on 08-09-2009 11:34:

no beh
cmq prima d andare faccio anke gli altri trigger
cosi gli chiedo xke nessuno va..

cmq come editor uso scite..
l'errore ke mi da è sempre questo.. ma nn è ke ce da mettere qualche cosa tra apici??

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'integ
er val,integer percento) returns integer as
begin
declare risultato integer' at line 1


Posted by carla86 on 08-09-2009 11:48:

EVVAIIIII
C'E' L'HO FATTAAAAA
era un problema d parametri..
la pubblico in caso possa servire a qualcuno..

create function percentuale (val integer,percento integer) returns integer
begin
declare risultato integer;
set risultato=((val*percento)/100);
return risultato;
end;


Posted by Sacratix on 09-09-2009 18:07:

Originally posted by carla86
scusami ti scrivo un trigger che ho provato a inserire e ke mysql mi da errore d sintassi:
(ho una tabella citta e una tabella nazione)

create trigger prova
before update on citta
for each row
begin
declare diff integer
declare nome varchar(20)
if new.vi>old.vi then
diff=new.vi-old.vi
nome=nazione
update nazione set pi=pi-diff where nomenazione=nome
update citta set new.ab=old.ab+3 and new.ra=old.ra-3 and new.rn=old.rn-3
endif
end;

mi sai dire se è corretto? grazie


premetto che ho usato plpgsql
e che mysql non l'ho proprio preso in considerazione
(phpPgAdmin è molto meglio di phpMyAdmin >_> )

sei sicura che si possano usare conteporaneamente NEW e OLD?
perchè con postgres se il trigger è in UPDATE o INSERT, solo NEW viene riempito (solo OLD per la DELETE)

dai un'occhiata che è meglio

__________________
I wish for this night-time to last for a life-time


Posted by carla86 on 09-09-2009 18:23:

la new la puoi usare x la insert e x l'update.
la old la puoi usare x l'update e x la delete.


Posted by Sacratix on 09-09-2009 18:42:

ok, buono a sapersi che lì funziona

come non detto, funziona così anche qui, ora mi chiedo
"cosa diavolo avrò fatto per farmi credere che non fosse così?" >_<

__________________
I wish for this night-time to last for a life-time


All times are GMT. The time now is 04:15. Pages (4): « 1 [2] 3 4 »
Show all 56 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.