FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Insertar registro entre 2 existentes
Hola a todos-> necesito ideas
Se puede insertar un registro en la posicion de la tabla que me de la gana???? comooo??? Me explico tengo dos tablas por ejemplo DOC y LINEAS_DOC unidas en maestro detalle. Imaginemos que tengo 4 lineas introducidas y quiero añadir una mas pero la quiero "insertar" entre la 2 y la 3 de las que ya existen porque necesito que aparezcan en cierto orden y se me ha colado una (por ejemplo) esto como se puede hacer??? Necesitaria crear algun campo NUM_LINEA para organizarlo por este o algo asi ? Gracias de antemano. |
#2
|
|||
|
|||
Lo ideal es que tengas un indice por el campo en que los quieras ordenar, pero si no lo tienes, el Insert te añade un registro en la posicion donde se encuentra el cursor en eso momento
Aunque, si puedes, te repito que pongas un indice por el/los campos que quieras ordenar |
#3
|
||||
|
||||
Gracias por contestar Cadetill pero la idea no es como creo que piensas....la idea es poder mover las lineas a mi antojo...me explico.
Son 2 tablas DOCUMENTOS , la cual tiene datos generales y LINEAS_DEL_DOCUMENTO la cual solo tiene campos de texto y numericos. Un ejemplo: Nuevo documento -> nº 3 Nombre: Listado de productos Fecha 1/1/2003 etc...... LINEAS por ejemplo CANTIDAD CONCEPTO PRECIO IMPORTE Lineas-> Añadimos una linea : 4 Puertas de madera 100 400 Otro linea: 3 Ladrillos rojos 5 15 Otra linea: 4 Puertas nogal 200 800 Otra linea: 5 Ladrillos 1/2 pie 10 50 Etc....y ahora quisiera "insertar" una entre las puertas de madera y los ladrillos rojos """"ó"""" añadir una y MOVERLA entre las puertas de madera y los ladrillos rojos. O quiero agrupar por un lado las puertas dejar una linea en blanco y luego los ladrillos. Y alguien dirá: "este tipo es tonto, escribelo en el orden que quieres y ya está" pero la respuesta es: "esq puede ser que se añadan lineas hoy o mañana o dentro de unos dias jeje . Se podria hacer mediante Drag&Drog sería ideal y si se puede con grupos de lineas sería la leche..jeje. Bueno creo q ahora se entiende un poco mas mi idea. El uso de indices no me sirve porq no quiero organizar por ningún campo sino por un concepto de agrupación personal. Unas veces será así otras será por precio otras porque le da la gana al usuario que las puertas vayan antes q los ladrillos etc... ¿OK? Pues espero respuestas. (Mientras seguiré probando cosas). Salu2. Rox77. |
#4
|
||||
|
||||
Primero tendrías que modificar los datos anteriores, aumentando en una posición el valor de línea, los registros anteriores y luego insertar el registro.
Código:
UPDATE LINEAS SET LINEA = LINEA + 1 WHERE LINEA >= 4; INSERT INTO LINEAS (LINEA, DESCRIPCION) VALUES (4, 'Puertas de madera')
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#5
|
|||
|
|||
El caso que te pone delphi.com.ar, seria para añadir un registro. Si lo quieres controlar tambien para los registros ya insertados puedes poner dos botones (uno para Up y otro para Down) y hacer (solo pongo la idea, el codigo te lo deja para ti ya que no es muy complicado)
// Suponiendo que la 1era linea sea SIEMPRE 1 Boton UP 1.- Recuperar valor del campo LINEA del registro en el que estamos en una variable (ej. LineaAnt) 2.- El registro actual, editarlo y cambiar el valor del campo LINEA a 0 3.- Posicionarte en el registro de valor LineaAnt - 1 4.- Modificar el registro poniendo en el campo LINEA el valor de LineaAnt 5.- Posicionarte en el registro de LINEA = 0 6.- Modificar el registro poniendo al campo LINEA el valor LineaAnt - 1 (o bien hacerlo con sentencias SQL de UPDATE que quizas quedaria mejor ) Boton Down ->Practicamente lo mismo Espero te sirva |
#6
|
||||
|
||||
Tu idea me gusta mas Cadetill (los siento Delphi.com.ar pero el SQL para este tipo de cosas no me llama la atención...lo uso para consultas, listados actualizaciones de otro tipo como precios etc.)
Eso de los botoncitos lo he visto en alguna aplicación y me parece bien (el propio delphi lo usa en las ventanas para controlar el orden de tabulación) lo probaré aunque me gustaria implementar soporte drag&drop. Y supongo que lo que hago para mover serviría para insertar: incremento el campo NLINEA a todas las lineas por debajo del lugar donde quiero insertar y le pongo ese numero de linea a la nueva. Gracias por las ideas... probaré. |
|
|
|