Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-12-2017
viverosjosem viverosjosem is offline
Baneado
 
Registrado: dic 2017
Posts: 64
Poder: 0
viverosjosem Va por buen camino
Unhappy

Hola Whilenoteof. agradezco tu ayuda.
Hice lo que me sugeriste.

Cambié la asignación del parametro cantidad a: Set Cantidad = Cantidad + iCantidad

Código Delphi [-]
 SQLDataSet1.Close;
  SQLDataSet1.CommandText :=  'UPDATE ' + ' Comanda ' +
                                     'SET ' +
                                         'Cantidad   = Cantidad + :iCantidad  ' +
                                      'WHERE ' +
                                          'Salon  = ' + QuotedStr(sSalon)  + ' AND ' +
                                          'Mesa   = ' + QuotedStr(sNumero) + ' AND ' +
                                          'Codigo = ' + QuotedStr(sCodigo) + ';';

         SQLDataSet1.ParamByName('Cantidad' ).AsFloat := iCantidad;
         SQLDataSet1.ExecSQL(False);

pero me da un error: SQLDataSet1 Field 'cantidad' not found;


tambien lo probe quitando la linea:
SQLDataSet1.ParamByName('Cantidad' ).AsFloat := iCantidad;.. y nada.
..y luego quite esta: SQLDataSet1.ExecSQL(False);.. y nada.

hice todas las conbinaciones que se me ocurrieron y no produce nada, o en el peor de los casos me da error.

Alguna nueva idea?

Gracias por la ayuda. muy agradecido
Responder Con Cita
  #2  
Antiguo 23-12-2017
WHILENOTEOF WHILENOTEOF is offline
Miembro
 
Registrado: mar 2008
Posts: 229
Poder: 17
WHILENOTEOF Va camino a la fama
Cita:
Empezado por viverosjosem Ver Mensaje
Hola Whilenoteof. agradezco tu ayuda.
Hice lo que me sugeriste.

Cambié la asignación del parametro cantidad a: Set Cantidad = Cantidad + iCantidad

Código Delphi [-]
 SQLDataSet1.Close;
  SQLDataSet1.CommandText :=  'UPDATE ' + ' Comanda ' +
                                     'SET ' +
                                         'Cantidad   = Cantidad + :iCantidad  ' +
                                      'WHERE ' +
                                          'Salon  = ' + QuotedStr(sSalon)  + ' AND ' +
                                          'Mesa   = ' + QuotedStr(sNumero) + ' AND ' +
                                          'Codigo = ' + QuotedStr(sCodigo) + ';';

         SQLDataSet1.ParamByName('Cantidad' ).AsFloat := iCantidad;
         SQLDataSet1.ExecSQL(False);

pero me da un error: SQLDataSet1 Field 'cantidad' not found;


tambien lo probe quitando la linea:
SQLDataSet1.ParamByName('Cantidad' ).AsFloat := iCantidad;.. y nada.
..y luego quite esta: SQLDataSet1.ExecSQL(False);.. y nada.

hice todas las conbinaciones que se me ocurrieron y no produce nada, o en el peor de los casos me da error.

Alguna nueva idea?

Gracias por la ayuda. muy agradecido
Fíjate en los nombres que les das a los campos y a los parámetros, yo le he puesto al parámetro iCantidad, para que no coincida con el mismo nombre que tiene el campo, no sé si sería motivo de error, pero no me gusta hacer coincidir los nombres de campos y parámetros. La sentencia
Código Delphi [-]
SQLDataSet1.ParamByName('Cantidad' ).AsFloat
da error, porque no hay ningún parámetro que se llame Cantidad, tal como yo te lo he puesto sería iCantidad, es decir:
Código Delphi [-]
SQLDataSet1.ParamByName('iCantidad' ).AsFloat
, asegúrate también que la query tiene definido ese parámetro (dependiendo de los componentes que utilices, se creará automáticamente a partir de la notación :iCantidad).
Responder Con Cita
  #3  
Antiguo 23-12-2017
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Hola

Si el parametro se llama icantidad debes usar ese nombre y no 'cantidad'.

Código Delphi [-]
SQLDataSet1.Close;   SQLDataSet1.CommandText :=  'UPDATE ' + ' Comanda ' +       'SET ' +          'Cantidad   = Cantidad + :iCantidad  ' +          'WHERE ' +          'Salon  = ' + QuotedStr(sSalon)  + ' AND ' +          'Mesa   = ' + QuotedStr(sNumero) + ' AND ' +          'Codigo = ' + QuotedStr(sCodigo) + ';';           SQLDataSet1.ParamByName('iCantidad' ).AsFloat := iCantidad;          SQLDataSet1.ExecSQL(False);

Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #4  
Antiguo 23-12-2017
viverosjosem viverosjosem is offline
Baneado
 
Registrado: dic 2017
Posts: 64
Poder: 0
viverosjosem Va por buen camino
Thumbs up

Gracias WhileNoteof.
Tenias razon. Cambie el campo Cantidad, por el parametro iCantidad y funciono perfectamente.

Código Delphi [-]
SQLDataSet1.ParamByName('iCantidad' ).AsFloat  := iCantidad;

Muy agradecido.
Tambien mis agradecimientos a Caminante.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como incrementar valor en ibdatapump SmartZooft Firebird e Interbase 11 04-10-2017 19:57:30
tratando de hacer un sum de un count julyus SQL 5 03-04-2009 02:04:01
Incrementar campo según el valor de otro subzero Firebird e Interbase 3 06-08-2008 21:41:52
tratando de interceptar excepcion Cañones OOP 4 16-05-2007 01:52:39
UPDATE de un campo dependiendo del valor de un campo de otra tabla Javi2 SQL 5 18-04-2005 16:35:05


La franja horaria es GMT +2. Ahora son las 07:18:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi