FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Comandos SQL para añadir o modificar
Buenas!,,
Lo cierto es que la primera vez que vuelco , se realizará sobre todos los registros son añadidos, pero la segunda vez que use este, pueden existir esos registros por lo que debera solo actualizar los campos. Por ejemplo tengo un tabla _Almacen que contiene campos IdProducto,IdNombre,IdFechaCaducidad, y por ejemplo se trata de mover hacia otra tabla _Historica los que cumplan una determinada fecha de caducidad. - Es decir, no se si me estoy liando un poco. - Buscar IdProducto, comprobar que existe, sino añadirlo y si existe actualizarlo, ... todo sobre la tabla _Historica. Uso Interbase, atraves de una sentencia sql. TIBSQL *sql_almacen = ib.DefineSQL(); sql_almacen->SQL->Add("Select * from _Almacen"); sql_almacen->SQL->Add("where IdFechaCaducidad<:fecha"); sql_almacen->Params->ByName("fecha")->AsDateTime = tMiFecha; sql_almacen->ExecQuery(); ya se que esto no es asi, pero es lo que tengo de momento para que os hagais una idea de como lo tengo ... Alguien me puede dar alguna idea ? |
#2
|
||||
|
||||
Esto quedaría de perlas en un Sp
Esto actualizará los existentes
Esto Insertará los nuevos (Mi favorita por cuestiones de rendimiento)
Esta otra aplica, pero es más costosa en cuestión de rendimiento
Suerte
__________________
Conoce mi blog http://www.edgartec.com |
#3
|
|||
|
|||
Seguimos con la Sencia SQL
Gracias poliburro por tu apreciación pero encuentro un pequeño detalle
que todavia no tengo claro. La secuencia SQL ( q puede estar en un SP, como bien dices ) El Seudo-codigo, debe ser algo asi como .... mientras no sea Fin Fichero si reg existe entonces Actualizar sino Añadir fin-si fin-mientras Como me lo das en dos partes no sabemos q registros deben actualizarse y cuales deben añadirse, no ? , acaso puede estar en dos bloques distintos o es necesario formar uno solo tal y como te pongo en el seudo-codigo Saludos, y como bien dices, siempre hay una piedra en el zapato y se llama Rajoy y amigos!! |
#4
|
||||
|
||||
La filosofía de poliburro es diferente:
El SQL de Update: Actualiza los productos que ya existen en el Histórico con los nuevos datos de Almacen Y después: Su SQL favorita (inserción de nuevos productos en histórico): Busca los productos de almacen que no existen en el histórico. Inserta en histórico dichos productos Las dos consultas anteriores son excluyentes, es decir, ningún registro puede entrar en ambas consultas. Es exactamente lo que pides, pero hecho de forma "eficiente" y por lotes. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 29-03-2007 a las 13:42:07. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Script de comandos para firebird | djemix | Firebird e Interbase | 1 | 01-02-2007 14:31:57 |
manual para aprender delphi(comandos) | jermy | Varios | 3 | 01-12-2006 22:56:11 |
shell para comandos del dos | sarga | API de Windows | 1 | 16-04-2004 03:55:33 |
Comandos para Epson TM-U220B | MAGRANA | Impresión | 3 | 12-01-2004 09:56:45 |
Añadir/modificar Regs. En Tabla Con Filtro | txuseibar | Conexión con bases de datos | 5 | 10-10-2003 17:05:21 |
|