elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 [2] 3
11  Programación / Bases de Datos / insertar valor1 en tabla1 si valor1 existe en tabla2 [SOLUCIONADO] en: 17 Octubre 2010, 19:50 pm
bueeenas, mi duda es, como hacer lo siguiente en mysql

tengo dos tablas.... tabla1 y tabla2
y un valor1

quiero insertar valor1 en tabla1 solo si el valor existe en tabla2

el codigo que hice es este....pero no funciona...

Código
  1. CREATE DEFINER=`root`@`localhost` PROCEDURE `insertaSupervisor`(in idempleado integer)
  2.        if exists
  3.                (select empleados.idEmpleado
  4.                from empleados
  5.                where (empleados.idEmpleado=idempleado)
  6.                )
  7.        insert into supervisores values (0,idempleado);
  8.  

Me da el MySql Error Number 1064, pidiendo que revise el manual de sintaxis.
12  Foros Generales / Dudas Generales / Re: Virtualbox en: 16 Octubre 2010, 03:15 am
hey que bueno que ya arreglaste la situación, entre para ver como te había ido y me di cuenta de la noticia jeje te felicito por haberlo logrado *winks
13  Foros Generales / Dudas Generales / Re: Virtualbox en: 15 Octubre 2010, 04:23 am
Ummm, no soy experta en máquinas virtuales, pero podría decirte que aunque yo utilizo VirtualBox, VMWare definitivamente es superior. Aunque, para lo que necesitas la maquina virtual, ps supongo que VirtualBox es suficiente n_n

En cuanto al error que te da al iniciar la instalación de ubuntu, en qué parte de la instalación te da el error? Osea, estas en VirtualBox, le das Run o Start a la vm, se abre la pantalla de la vm y te sale error, o inicia bien? o ya salen las opciones para escoger lenguaje de ubuntu? en donde te quedas?

Y como ya preguntaron antes, estas haciendo uso de un cd con Ubuntu o un iso del sistema operativo?
14  Programación / Bases de Datos / Re: consulta sqlserver con order by dinamico en: 15 Octubre 2010, 03:39 am
mm...tengo una solucion que parece ser muy ineficiente, pero creo que sera la solución temporal mientras encuentro manera de hacer lo que quería.

Código
  1. CREATE PROCEDURE [dbo].[consultaCorp4] (
  2. @ordenadoPor INT,
  3. @direccion INT
  4. )
  5. AS
  6. BEGIN
  7. SET NOCOUNT ON;
  8. IF @direccion=0
  9. SELECT e.idPlanta,COUNT(e.idEmpleado) AS CantidadEmpleados,SUM(dp.MontoBruto) AS SalariosBrutos,avg(dp.MontoBruto) AS SalarioBrutoPromedio
  10. FROM dbo.empleados e INNER JOIN dbo.detalle_planillas dp
  11. ON (e.idEmpleado=dp.idEmpleado)
  12. GROUP BY e.idPlanta
  13. ORDER BY CASE @ordenadoPor
  14. WHEN 0 THEN e.idPlanta
  15. WHEN 1 THEN 2--CantidadEmpleados
  16. END
  17. ASC
  18. -- otra opcion
  19. IF @direccion=1
  20. SELECT e.idPlanta,COUNT(e.idEmpleado) AS CantidadEmpleados,SUM(dp.MontoBruto) AS SalariosBrutos,avg(dp.MontoBruto) AS SalarioBrutoPromedio
  21. FROM dbo.empleados e INNER JOIN dbo.detalle_planillas dp
  22. ON (e.idEmpleado=dp.idEmpleado)
  23. GROUP BY e.idPlanta
  24. ORDER BY CASE @ordenadoPor
  25. WHEN 0 THEN e.idPlanta
  26. WHEN 1 THEN 2--CantidadEmpleados
  27. END
  28. DESC
  29. END
  30.  
  31. GO
  32.  

Sip, como dijo Shell Root, en el case solo se toma el primer argumento... para realizar lo que quería entonces tengo que hacer esto... en caso de que alguien logre hallar la solución, pueden responder en este tema pq la verdad sí me interesaría saber como hacerlo de una mejor manera XD estoy segura que debe haber una mejor manera que esta.
15  Programación / Programación General / Re: ¿Que tipo de lenguaje me recomendais? en: 13 Octubre 2010, 01:44 am
Estoy de acuerdo con linux1, me parece que es más importante aprender a programar (aprender sobre algoritmos, estructuras de datos, etc) primero, y luego aprender a programar en x lenguaje. Así, luego de haber aprendido a programar en sí, se hará más fácil aprender a programar en el lenguaje de programación que se te ocurra.

Si todavía te queda la duda, o quieres otra buena opción para ir implementando rápidamente lo que aprendes de algoritmos y estructuras de datos, pues Python me parece una buena idea. La sintáxis es muy fácil, y puedes aprender lo básico en una noche.


Pura Vida XD
16  Foros Generales / Foro Libre / Re: Sus escritorios en: 12 Octubre 2010, 21:17 pm
Aca pongo mi escritorio XD es un screen de Archlord jeje

17  Programación / Bases de Datos / consulta sqlserver con order by dinamico en: 12 Octubre 2010, 20:43 pm
Buenaaaas

Este es mi problema: estoy intentando hacer un procedimiento almacenado en SQL que realice una consulta a la bd. El sp es llamado desde una app en c# al darle click a un botón.

El sp recibe el string @ordenamiento que puede ser 'e.idEmpleado asc', 'e.idEmpleado desc', 'CantidadEmpleados asc' o 'CantidadEmpleados desc'.

Encontré la manera de realizar el ORDER BY dinámico, pero no funciona y creo que es porque esta recibiendo dos expresiones (ej.: e.idEmpleado y asc)

Código
  1. CREATE PROCEDURE consultaCorp4 (
  2. @ordenamiento VARCHAR
  3. )
  4. AS
  5. BEGIN
  6. SET NOCOUNT ON;
  7. SELECT e.idPlanta,COUNT(e.idEmpleado) AS CantidadEmpleados,SUM(dp.MontoBruto) AS SalariosBrutos,avg(dp.MontoBruto) AS SalarioBrutoPromedio
  8. FROM dbo.empleados e INNER JOIN dbo.detalle_planillas dp
  9. ON (e.idEmpleado=dp.idEmpleado)
  10. GROUP BY e.idPlanta
  11. ORDER BY
  12. CASE @ordenamiento
  13. WHEN 'e.idPlanta asc' THEN e.idPlanta ASC
  14. WHEN 'e.idPlanta desc' THEN e.idPlanta DESC
  15. WHEN 'CantidadEmpleados asc' THEN CantidadEmpleados ASC
  16. WHEN 'CantidadEmpleados desc' THEN CantidadEmpleados DESC
  17. END
  18. END
  19. GO
  20.  

De qué manera podría hacer la consulta para que funcione el ORDER BY dinámico?
18  Programación / Bases de Datos / Re: error al crear procedimiento almacenado en MySQL en: 12 Octubre 2010, 20:32 pm
Ya pude resolver el problema. tuve que crear un método en la clase ConexionMySQL que habia creado (en la cual seteaba el tipo de comando a StoredProcedure)
la clase de conexion que uso es esta

Código
  1. class ConexionMySQL
  2.    {
  3.        public MySqlConnection conexion = new MySqlConnection();
  4.        public String cadenaConexion = "server=localhost; user id=root; password=manager; database=bd_planta1";
  5.        public MySqlCommand comando = new MySqlCommand();
  6.        public DataTable dTable = new DataTable();
  7.        public MySqlDataAdapter da;
  8.  
  9.        public ConexionMySQL()
  10.          {
  11.           conexion.ConnectionString = cadenaConexion;
  12.           comando.CommandType = CommandType.StoredProcedure;
  13.           comando.Connection = conexion;
  14.          }
  15.        public void LlenarDataTable(Dictionary<string,string> Parametros)
  16.        {
  17.            da = new MySqlDataAdapter(comando.CommandText,cadenaConexion);
  18.            da.SelectCommand.CommandType = CommandType.StoredProcedure;
  19.            InicializarParametros(Parametros);
  20.            da.Fill(dTable);
  21.        }
  22.  
  23.        private void InicializarParametros(Dictionary<String, String> listaParametros)
  24.        {
  25.            try
  26.            {
  27.                foreach (KeyValuePair<string, string> par in listaParametros)
  28.                {
  29.                    da.SelectCommand.Parameters.Add(new MySqlParameter(par.Key, par.Value));
  30.                }
  31.            }
  32.            catch (Exception ex)
  33.            {
  34.                MessageBox.Show(ex.Message + " - Error al inicializar parámetros");
  35.            }
  36.        }
  37.    }
  38.  

con esto asi, ya en el form que utiliza el datagridview para llenarlo con los datos que devuelve el sp funciona. acá pongo el código del botón que realiza la consulta a la bd para que vean como.

Código
  1. private void bConsultarPlanta_Click(object sender, EventArgs e)
  2.        {
  3.            ConexionMySQL cn = new ConexionMySQL();
  4.            Dictionary<string, string> Parametros = new Dictionary<string,string>();
  5.            cn.conexion.Open();
  6.            cn.comando.CommandText = "consultaPlanta4";
  7.            Parametros.Add("empleado",tbIdentificacion.Text);
  8.            cn.LlenarDataTable(Parametros);
  9.            dataGridView1.DataSource = cn.dTable;
  10.            cn.conexion.Close();
  11.            cn = null;
  12.            this.Refresh();
  13.        }
  14.  

El problema sí tenía que ver con lo que mencionó Shell Root, ya que al no conectarme directamente a cn, tenia que volver a establecer el tipo del comando. Al final decidí resolverlo de esta manera porque el boton en realidad debe realizar muchas mas consultas y no quería escribir tanto el mismo código.

 Igual, gracias por la ayuda Shell Root XD
19  Programación / Bases de Datos / Re: error al crear procedimiento almacenado en MySQL en: 12 Octubre 2010, 02:56 am
Umm... es que yo cree la conexion entre MySql y C# usando una clase aparte, entonces alli establecí que comando siempre seria tipo StoredProcedure.

En ese caso, qué podría ser el problema?
20  Programación / Bases de Datos / Re: error al crear procedimiento almacenado en MySQL en: 12 Octubre 2010, 02:35 am
Tengo una nueva pregunta sobre el proyecto que estoy haciendo...creo que me esta dando el mismo error, pero ahora desde la aplicación que hice en c# conectada a la misma base de datos que tiene el sp anterior.

Código:
CREATE DEFINER=`root`@`localhost` PROCEDURE `consultaPlanta4`(IN empleado INTEGER)
BEGIN                                       
        select *
        from empleados
        where (idEmpleado = empleado);
END

Estoy segura de que la conexion funciona correctamente, porque ya la he probado con otros sps. Estoy usando MySqlClient para poder establecerla.

Al darle click a button1, realiza una consulta a la bd, enviandole al sp llamado consultaPlanta4 un parametro empleado, lo cual deberia retornar el resultado de la consulta dentro de un datagridview en la ventana:
Código:
ConexionMySQL cn = new ConexionMySQL();
cn.conexion.Open();
cn.comando.CommandText = "consultaPlanta4";
cn.comando.Parameters.Add(new MySqlParameter("empleado", tbIdentificacion.Text));
MySqlDataAdapter da = new MySqlDataAdapter(cn.comando.CommandText, cn.cadenaConexion);
DataTable dt = new DataTable("tabla");
da.Fill(dt);
dataGridView1.Enabled = true;
dataGridView1.DataSource = dt;
cn.comando.ExecuteNonQuery();
cn.conexion.Close();
this.Refresh();

Sin embargo, cuando presiono button1 me devuelve este error:

Código:
An unhandled exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll

Additional information: 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 'consultaPlanta4' at line 1

Me parece que es el mismo error que retornaba al crear el sp en MySQL... que podré hacer para que se ejecute correctamente?
Páginas: 1 [2] 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines