Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Carloswaldo

#161
Tu problema es que primero estas declarando la función como void intercambio(int mitad, int vectorUno, int vectorDos), y luego quieres hacer void intercambio(int mitad, int vectorUno[mitad], int vectorDos[mitad]), que por cierto C no va a saber qué es "mitad" en ese punto del código, la función tiene que ser (int, int, int), igual con la otra función.
#162
Bases de Datos / Re: Varias dudas Postgresql
9 Abril 2013, 23:34 PM
Para el caso 1 ¿es necesario tener estos datos en un array? ¿por qué no en columnas separadas? En todo caso podrías resolverlo creando una función:

Código (sql) [Seleccionar]
create or replace function promedio_array(numeros int[])
returns numeric as $$
declare
promedio numeric;
suma int;
numero int;
begin
suma = 0;
foreach numero in array numeros
loop
suma = suma + numero;
end loop;
promedio = suma::numeric / array_length(numeros,1);
return promedio;
end;
$$ LANGUAGE plpgsql;


Y luego haciendo la consulta:

Código (sql) [Seleccionar]
select avg(promedio_array(numero)) from tabla;

Para el caso 2, no estoy seguro de a qué te refieres, pero creo que lo que quieres hacer es:

Código (sql) [Seleccionar]
UPDATE curso.tutor SET horas_lectivas=horas_lectivas+2;
#163
Creo que te conviene entender primero el modelo entidad-relación

http://es.wikipedia.org/wiki/Modelo_entidad-relaci%C3%B3n
http://www.cs.us.es/cursos/bd-2004/HTML/modeloER.htm

Por ejemplo, para tu caso, tendrías que crear una nueva tabla llamada "categorías" en la base de datos, incluir un campo "id_categoria" en la tabla de juegos y crear una relación entre estas dos tablas (esto asumiendo que un juego solo puede estar asociado a una categoría a la vez).
#164
Bases de Datos / Re: trigger
11 Marzo 2013, 22:32 PM
Ah, me he confundido un poco (en realidad mucho xD), pensé que en MySQL también había algo como FOR EACH STATEMENT, tampoco tenía MySQL instalado para probar. Debería ser así:

Código (sql) [Seleccionar]
DELIMITER $$
CREATE TRIGGER disp BEFORE UPDATE ON anuncio
FOR EACH ROW BEGIN
IF NEW.fav=1 THEN
UPDATE anuncio SET fav= 0;
END IF;
END $$
DELIMITER ;


PERO

#1442 - Can't update table 'anuncio' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

Pues

CitarB.5.9: Can triggers access tables?

A trigger can access both old and new data in its own table. A trigger can also affect other tables, but it is not permitted to modify a table that is already being used (for reading or writing) by the statement that invoked the function or trigger.

http://dev.mysql.com/doc/refman/5.5/en/faqs-triggers.html#qandaitem-B-5-1-9

Así que para este caso creo que no podrás usar un trigger, tal vez deberías usar un store procedure y en vez de hacer UPDATE directamente en la tabla llamarías al procedure, algo como update_anuncio(int id, int estado)
#165
Bases de Datos / Re: trigger
11 Marzo 2013, 19:41 PM
Hola

Sí, la condición que has agregado en el código está bien para lo que quieres hacer. Por otro lado, un trigger no es lo mismo que un procedure, te recomiendo que investigues sobre su diferencia, no es que uno sea más rápido que el otro sino que se usan para distintos propósitos.
#166
Bases de Datos / Re: trigger
11 Marzo 2013, 05:23 AM
OLD contiene el valor antiguo del registro (el que tiene antes del update) aunque en este caso creo que también se debería incluir en la función del trigger algo que valide que se está cambiando el valor a 1 (el ejemplo de cassiani está bien, pero también se ejecutaría cuando se haga un UPDATE mi_tabla SET valor=0, lo cual no sería un problema en una tabla pequeña, pero si es grande se consumiría recursos innecesariamente en el FOR EACH), agregando un IF NEW.valor = 1 sería suficiente.

Yo lo haría así:

Código (sql) [Seleccionar]
CREATE TRIGGER mi_tgr
BEFORE UPDATE ON mi_tabla
IF NEW.valor=1 THEN
UPDATE mi_tgr SET valor = 0;
END IF;


Tambíen se podría agregar AND OLD.valor=0 en el IF como validación adicional asumiendo que esta validación no se hace en la aplicación.

;D
#167
Hola, ¿versión del phpmyadmin?
#168
Bases de Datos / Re: mensaje de error
11 Marzo 2013, 00:58 AM
Si escribes un directorio en el cmd siempre te va a salir ese error, porque no le has dicho a cmd qué es lo que quieres hacer con ese directorio, puede que quieras hacer un "cd C:\Users\Elsa\pgsql\bin" para entrar al directorio, pero voy a asumir que lo que quisiste hacer es ejecutar la herramienta de línea de comandos para postgres, en ese caso debes escribir "C:\Users\Elsa\pgsql\bin\psql.exe".
#169
Puedes usar la herramienta de línea de comandos de MySQL para conectarte a un servidor remoto (en este caso usando los datos de configuration.php), pero ten en cuenta lo que ha dicho Shell Root de que no todos los servidores de base de datos admiten conexiones remotas.

http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html
#170
Más bien creo que toda esa información (para el caso de inventario) debe estar en una sola tabla ("items" por ejemplo) que contenga el número de serie como clave primaria, una descripción, el tipo (puede también ser una referencia a otra tabla "tipoItems") y ubicación (que también podría ser una referencia a otras tablas según el nivel de detalle que quieras en la ubicación).