Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 28-02-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
el sql de update debe tener un where:
Código SQL [-]
update ventas
set corte = 1
where (corte= 0) and ( cancelada=0)

ahora haces un Query1.ExecSql y listo.

Hay un problema:
- Haces el select, ves tus datos en el dbgrid y te vas a tomar café.
- Otros usuarios añaden nuevos registros con corte =0 y cancelada = 0
- Después del cafetito ejecutas la sentencia.

obviamente la consulta de actualización también va a afectar a los registros de tus otros usuarios.

Para que solo afecte a los que ves en el grid, tendrías que recorrer el grid e ir apuntando la clave primaria de cada uno de los registros, de forma que el sql quedará así:
Código SQL [-]
update ventas
set corte = 1
where ClavePrimaria in ( 2, 3, 4, 56, 5, 55 , 67)
Suponiendo que la clave primaria sea un número entero, claro.
No es nada difícil construir el sql:
Código Delphi [-]
var strWhere :string;
begin 
query1.first; // consulta del grid;
while not query1.eof do
  strWhere := strWhere + query1.Fieldbyname('claveprimaria').AsString + ', '
if strWhere <> ',' then
begin
  delete(strWhere, length(strWhere), 1); // borrar la última coma
  strWhere := 'where claveprimaria in (' + strWhere + ')';
end;
Tampoco es eficiente y si son muchos registros, busca otra forma de hacerlo, o la actualización puede tardar mucho tiempo en llevarse a cabo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
 



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
Modificar valor campos dbgrid waremovil C++ Builder 4 02-09-2007 01:27:52
Como sustituir un valor durante una consulta para mostrarlo en un dbgrid chetos7 SQL 7 16-01-2007 16:36:03
como le hago para no imprimir todos los registros Gangster Impresión 11 03-11-2006 22:59:22
Ayuda para modificar valores de un dbgrid fmonte Varios 5 28-08-2004 03:21:44
Page Size ideal para la base de datos Carlitos Firebird e Interbase 2 10-06-2004 22:18:09


La franja horaria es GMT +2. Ahora son las 01:14:03.


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