Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Insertar datos donde quieras

Estas en el tema de Insertar datos donde quieras en el foro de Mysql en Foros del Web. Buenas: Tengo una tabla creada que es esta: Código: CREATE TABLE IF NOT EXISTS `dispositivos` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `nombre` varchar(6) COLLATE latin1_spanish_ci ...
  #1 (permalink)  
Antiguo 15/07/2009, 02:06
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 6 meses
Puntos: 8
Insertar datos donde quieras

Buenas:

Tengo una tabla creada que es esta:
Código:
CREATE TABLE IF NOT EXISTS `dispositivos` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `nombre` varchar(6) COLLATE latin1_spanish_ci NOT NULL,
  `estado` tinyint(2) NOT NULL,
  `descripcion` varchar(20) COLLATE latin1_spanish_ci NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=5 ;
He insertado estos datos:
Código:
INSERT INTO `dispositivos` (`ID`, `nombre`, `estado`, `descripcion`) VALUES
(1, 'RELÉ 1', 0, ''),
(2, 'RELÉ 2', 0, ''),
(3, 'RELÉ 3', 0, ''),
(4, 'RELÉ 4', 0, '');
Ahora en el campo descripcion. ¿Cómo puedo ingresar datos solamente ahí? Los demás datos que se queden como están sin modificar.

Saludo.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #2 (permalink)  
Antiguo 15/07/2009, 06:54
Avatar de xempro  
Fecha de Ingreso: marzo-2007
Ubicación: Chile
Mensajes: 222
Antigüedad: 17 años, 8 meses
Puntos: 6
Respuesta: Insertar datos donde quieras

UPDATE `dispositivos` SET descripcion='descripcion1' WHERE id='1'
UPDATE `dispositivos` SET descripcion='descripcion2' WHERE id='2'
UPDATE `dispositivos` SET descripcion='descripcion3' WHERE id='3'
UPDATE `dispositivos` SET descripcion='descripcion4' WHERE id='4'
  #3 (permalink)  
Antiguo 15/07/2009, 09:10
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 6 meses
Puntos: 8
Respuesta: Insertar datos donde quieras

gracias. Me da error al actualizarlo como...

#1064 - 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 ' UPDATE `dispositivos` SET descripcion='descripcion2' WHERE id='2', UPDATE `di' at line 1

También lo he probado así y nada.
Código:
UPDATE `dispositivos` SET descripcion='descripcion1' WHERE id='1',
UPDATE `dispositivos` SET descripcion='descripcion2' WHERE id='2',
UPDATE `dispositivos` SET descripcion='descripcion3' WHERE id='3',
UPDATE `dispositivos` SET descripcion='descripcion4' WHERE id='4' ;
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #4 (permalink)  
Antiguo 15/07/2009, 09:20
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Insertar datos donde quieras

No los debes separar con ,
Separalos con ;
Son sentencias separadas.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 15/07/2009, 09:24
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 6 meses
Puntos: 8
Respuesta: Insertar datos donde quieras

Ok.

Ahora me sale este error siempre.

consulta SQL:

UPDATE `dispositivos` SET descripcion = 'descripcion1' WHERE id = '1';

MySQL ha dicho: Documentación
#1146 - Table 'pic_remoto.INTOlog' doesn't exist


Saludo.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #6 (permalink)  
Antiguo 15/07/2009, 09:27
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Insertar datos donde quieras

Como estas haciendo el update?
El error que te sale, nada tiene que ver con la sentencia que pones.
El error dice que no existe la tabla INTOlog en la base de datos pic_remoto.

Se me hace, que estas ejecutnado otras sentencias aparte de los update sobre la tabla dispositivos.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 15/07/2009, 09:29
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 6 meses
Puntos: 8
Respuesta: Insertar datos donde quieras

Mejor te envío el código completo por si acaso.

Código:
-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 15-07-2009 a las 16:29:32
-- Versión del servidor: 5.1.36
-- Versión de PHP: 5.2.10

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de datos: `pic_remoto`
--
CREATE DATABASE `pic_remoto` DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci;
USE `pic_remoto`;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `dispositivos`
--

CREATE TABLE IF NOT EXISTS `dispositivos` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `nombre` varchar(6) COLLATE latin1_spanish_ci NOT NULL,
  `estado` tinyint(2) NOT NULL,
  `descripcion` varchar(20) COLLATE latin1_spanish_ci NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=5 ;

--
-- (Evento) desencadenante `dispositivos`
--
DROP TRIGGER IF EXISTS `pic_remoto`.`logestado`;
DELIMITER //
CREATE TRIGGER `pic_remoto`.`logestado` AFTER UPDATE ON `pic_remoto`.`dispositivos`
 FOR EACH ROW BEGIN

                                   DECLARE Rele1 INT;
                                   DECLARE Rele2 INT;
                                   DECLARE Rele3 INT;
                                   DECLARE Rele4 INT;

                                   SET Rele1 = (SELECT estado
                                   FROM dispositivos
                                   WHERE nombre LIKE 'RELE 1');

                                   SET Rele2 = (SELECT estado
                                   FROM dispositivos
                                   WHERE nombre LIKE 'RELE 2');

                                   SET Rele3 = (SELECT estado
                                   FROM dispositivos
                                   WHERE nombre LIKE 'RELE 3');

                                   SET Rele4 = (SELECT estado
                                   FROM dispositivos
                                   WHERE nombre LIKE 'RELE 4');

                                   INSERT INTOlog(RELE_1, RELE_2, RELE_3, RELE_4, USUARIO, FECHA_HORA)
                                   VALUES (Rele1, Rele2, Rele3, Rele4, USER(), NOW());
                             END
//
DELIMITER ;

--
-- Volcar la base de datos para la tabla `dispositivos`
--

INSERT INTO `dispositivos` (`ID`, `nombre`, `estado`, `descripcion`) VALUES
(1, 'RELÉ 1', 0, ' '),
(2, 'RELÉ 2', 0, ' '),
(3, 'RELÉ 3', 0, ' '),
(4, 'RELÉ 4', 0, ' ');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `log`
--

CREATE TABLE IF NOT EXISTS `log` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `RELE_1` tinyint(1) NOT NULL,
  `RELE_2` tinyint(1) NOT NULL,
  `RELE_3` tinyint(1) NOT NULL,
  `RELE_4` tinyint(1) NOT NULL,
  `USUARIO` varchar(40) COLLATE latin1_spanish_ci NOT NULL,
  `FECHA_HORA` datetime NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=1 ;

--
-- Volcar la base de datos para la tabla `log`
--
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #8 (permalink)  
Antiguo 15/07/2009, 09:42
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Insertar datos donde quieras

Cita:
INSERT INTOlog(RELE_1, RELE_2, RELE_3, RELE_4, USUARIO, FECHA_HORA)
VALUES (Rele1, Rele2, Rele3, Rele4, USER(), NOW());
END
Te falta un espacio entre la palabra INTO y la tabla log.
Por esta razón te decía que no exisita una tabla con el nomnre intolog.

Un saludo
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #9 (permalink)  
Antiguo 15/07/2009, 10:39
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 6 meses
Puntos: 8
Respuesta: Insertar datos donde quieras

Pues es verdad, tienes buena vista.

En la propia MySQL me actuliza bien el:

Código:
UPDATE `dispositivos` SET descripcion='descripcion1' WHERE id='1';
UPDATE `dispositivos` SET descripcion='descripcion2' WHERE id='2';
UPDATE `dispositivos` SET descripcion='descripcion3' WHERE id='3';
UPDATE `dispositivos` SET descripcion='descripcion4' WHERE id='4';
Bajo C# no lo hace.
Código:
 private void button_actualizar_Click(object sender, EventArgs e)
        {
            string insertar_disp = @"UPDATE `dispositivos` SET descripcion='descripcion1' WHERE id='1';
                                     UPDATE `dispositivos` SET descripcion='descripcion2' WHERE id='2';
                                     UPDATE `dispositivos` SET descripcion='descripcion3' WHERE id='3';
                                     UPDATE `dispositivos` SET descripcion='descripcion4' WHERE id='4';";
                                            

            connection = new MySqlConnection(MyConString);
            MySqlCommand con7 = new MySqlCommand(insertar_disp, connection);
            connection.Open();
            con7.ExecuteNonQuery();
            connection.Close();
        }
Me da error de este tipo.
Cita:
No se controló System.ArgumentNullException
Message="La clave no puede ser nula.\r\nNombre del parámetro: key"
Source="mscorlib"
ParamName="key"
StackTrace:
en System.Collections.Hashtable.get_Item(Object key)
en MySql.Data.MySqlClient.MySqlPoolManager.GetPool(My SqlConnectionStringBuilder settings)
en MySql.Data.MySqlClient.MySqlConnection.Open()
en MySQL12.Form1.button_actualizar_Click(Object sender, EventArgs e) en C:\Documents and Settings\Hunter\Mis documentos\Visual Studio 2008\Projects\MySQL12\MySQL12\Form1.cs:línea 157
en System.Windows.Forms.Control.OnClick(EventArgs e)
en System.Windows.Forms.Button.OnClick(EventArgs e)
en System.Windows.Forms.Button.OnMouseUp(MouseEventAr gs mevent)
en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
en System.Windows.Forms.Control.WndProc(Message& m)
en System.Windows.Forms.ButtonBase.WndProc(Message& m)
en System.Windows.Forms.Button.WndProc(Message& m)
en System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
en System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
en System.Windows.Forms.NativeWindow.DebuggableCallba ck(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
en System.Windows.Forms.UnsafeNativeMethods.DispatchM essageW(MSG& msg)
en System.Windows.Forms.Application.ComponentManager. System.Windows.Forms.UnsafeNativeMethods.IMsoCompo nentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
en System.Windows.Forms.Application.ThreadContext.Run MessageLoopInner(Int32 reason, ApplicationContext context)
en System.Windows.Forms.Application.ThreadContext.Run MessageLoop(Int32 reason, ApplicationContext context)
en System.Windows.Forms.Application.Run(Form mainForm)
en MySQL12.Program.Main() en C:\Documents and Settings\Hunter\Mis documentos\Visual Studio 2008\Projects\MySQL12\MySQL12\Program.cs:línea 18
en System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
en System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
en Microsoft.VisualStudio.HostingProcess.HostProc.Run UsersAssembly()
en System.Threading.ThreadHelper.ThreadStart_Context( Object state)
en System.Threading.ExecutionContext.Run(ExecutionCon text executionContext, ContextCallback callback, Object state)
en System.Threading.ThreadHelper.ThreadStart()
InnerException:
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #10 (permalink)  
Antiguo 15/07/2009, 10:58
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Insertar datos donde quieras

Tu problema ya lo puedes postear en el foro de .net.
allí recibirás una mejor asistencia ante tu problema.

un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:13.