FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Es simple! pero estoy complicado!!!
Estoy complicado con algo simple....
necesito saber como puedo hacer para: tengo una base de datos que contiene la tabla cliente clientes tiene cod_cli nombre direccion telefono existe el siguiente dato cargado en un registro cod_cli=1 (para esto uso un generator, asi que se carga solo...) nombre=juan perez direccion=calle x 123 telefono=555123456 quiero ingresar un nuevo registro basando en los datos del anterior: cod_cli=2 esto no tengo problemas uso el generator nombre=juan perez direccion=calle x 123 telefono=555123456 (o sea,, quiero utilizar los mismos datos exatos, quiero copiarlos del registro anterior...) como hago para que cuando hago el insert,,, en mis values le diga "que escriba lo del registro anterior?? me podria alguien dar un ejemplo de esto?? Muchas GRacias!!!! |
#2
|
||||
|
||||
A ver si te sirve este truco de Trucomania:
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
||||
|
||||
me he expresado mal disculpa, si he visto este excelente truco,,, el tema es que tengo que hacerlo en sql,, porque todo esto debe ir en un stored prodecure... debe ser simple imagino, pero mi inexperiencia en sql es muy grande
Gracias! |
#5
|
||||
|
||||
Estoy observando que esto obtiene el maximo codigo de cliente, eso no seria util al caso porque el anterior no quiere decir que sea el maximo nro ... yo solamente quiero crear un nuevo registro, poner un nuevo cod de cliente, y reaprovechar, o sea, copiar, los datos del registro anterior.
Muchas Gracias! |
#6
|
||||
|
||||
A que te refieres con el anterior...
Generalmente cuando insertas un registro nuevo, lo haces con el máximo código de la tabla... entonces el anterior al nuevo será MAX(Cod_Cli) ya que el nuevo es MAX(Cod_Cli) + 1 (aunque uses un generador supongo).
Cita:
Si sabes cual es el código del registro anterior ...
Especifica a que te refieres con el anterior... y podremos ayudarte mejor. Última edición por hector.roma fecha: 25-07-2005 a las 14:47:46. Razón: Correción |
#7
|
||||
|
||||
me refiero a eso, con el ultimo, exactamente, has intepretado bien,, pero te comento que este programa ya estaba hecho, y si se elimina un cliente reaprovecha el cod de cliente!! cosa muy mala! entonces por eso no puedo usar un max... porque el nro de cliente mas alto no quiere decir el ultimo!
imaginate que la base de datos es de mas de 2 gb de info.. |
#8
|
|||
|
|||
El SQL para inserción que puse, si te fijas bien, no asigna el código de cliente puesto que en tu primer mensaje especificaste que no había problema en eso...
Cita:
Cita:
Saludos... |
#9
|
||||
|
||||
Algo se me escapa...
Tienes los datos del cliente anterior en un registro...
|
#10
|
||||
|
||||
Ya entendí la idea, les agradesco muchisimo tanto a Marcos como a Hector por la paciencia en la explicacion del tema es cuestion.
ya esta todo funcionando.. Muchas gracias!! |
#11
|
|||
|
|||
Invalid Variant Type
Siento pediros ayuda sobre este trucazo que editó Marcos Zorrilla. Estoy compilando en D6 con el BDE y al asignar el primer valor de tipo text en el campo 0 del registro Table1.Fields[n].AsVariant se colapsa el for por "Invalid Type Variant"
Cita:
¿Tenéis alguien esta unidad corregida? ¿No habría otra solución? Si podéis tener alguna sugerencia... GRACIAS A TODOS ...quizás sería preferible abrir un nuevo hilo... |
#12
|
||||
|
||||
Hombre, está sacado de trucomania, que esperabas .
Así queda mejor, nos quitamos punteros y reserva de memoria.
[saludos] y más [/saludos] |
#13
|
|||
|
|||
¡Que es fista!
Jod..., Lepe, q es fiesta. Te me has adelantada porque es exactamente como lo he solucionado. Pero las gracias te las mereces igualmente o más. Yo lo había escrito así:
El nil era por si acaso, pero ya me queda claro con tu comentario q es redundante. También he quitado la asignación Type, y me funciona estupendo. Ya lo estoy implementando en mi componente del DBX.pas, de modo q al crear un nuevo registro (a través del evento del DBNavigator BeforeAction, ya q el TTable está en mi DataModule y no puedo sobrescribir su BeforeInsert (q ya está escito desde el DM), asigno los valores actuales a este array de variants), para poder insertar los valores de cada campo iguales al anterior por medio de F4 (en mi caso: antiguo usuario Magic). Aún me falta cuando el DBeditor es un DBLookUpComboBox. Pero como también soy usuario de mis programas, me lo voy a agradecer mucho. Pero no entiendo porque en el código del que extrajimos este procedimiento, se cuelga en la Variant.pas, y no en la asignación de los punteros. Desde luego así es mucho más legible y comprensible, pero veo código por ahí q con los punteros consiguen todo. No te molestes en contestar aquí lo de los punteros, porque realmente no pertenecia a este hilo SQL, ya mi pregunta anterior. Cuando pueda ya buscaré por aquí a ver q entiendo, y si me lanzo a usarlos algo más. Gracias por tus ayudas, ... piensate lo de la fotillo, aunque la CCC también vale! |
|
|
|