| |||
Registrar Varios Registros A La Vez En Una Tabla Holas muchachos,necesito registrar varios registros a la vez en una tabla determinada de una base de datos.Nose si me podrian ayudar con esto'¡¡¡¡.De antemano muchisimas gracias.¡¡¡¡¡¡ |
| |||
Re: Registrar Varios Registros A La Vez En Una Tabla Hola, a q te refieres con registrar varios registros? podrias detallar mas tu problema? Saludos ![]()
__________________ "Cada hombre es el hijo de su propio trabajo" Miguel de Cervantes Saavedra "La experiencia es algo que no consigues hasta justo depués de necesitarla" Laurence Olivier |
| |||
Re: Registrar Varios Registros A La Vez En Una Tabla Por ejemplo:Yo quiero registrar el registro de una determinada factura.Como sabrás tiene una cabecera y un detalle.En el detalle es mi problema,xq para esto tengo que editar todos los productos con sus respectivas cantidades y precios que se han comprado.es por esto que necesito editar varios registros y luego registrarlos en una base de datos utiloizando PHP.Muchas gracias por ponerme atencion¡¡¡¡. |
| ||||
Re: Registrar Varios Registros A La Vez En Una Tabla /*12 de mayo de 2007*/ /* Programa _prgNumeracionRemitos Autor: Marcelo Di Deo - [email protected] Fecha de Creacion: Sabado 12 de Mayo de 2007 Tiempo estimado de aprendizaje teorico: 12 horas Tiempo para implementacion: 2 horas Me he basado en el ejemplo que dio Daniel donde explica como moverse en un cursor, y he agregado un recurso que ayudara a quienes deban trabajar con tablas CABECERA DETALLE reemplazando el viejo metodo COBOL, Pascal o clipper de Corte de Control. Si alguien cree que es un ejemplo muy burdo, por favor sepan disculpar. Creanme, es mi primer programa estructurado de SQL. Solo sabia hacer las operaciones basicas de SP para ABM , o traer un select y pasarlo via XML Proposito: Generar la cabecera a partir de un conjunto de registros detalle Si se quiere llamar Tablas Padre-HIJO/HIJA, CABECERA-DETALLE. Estos registros detalle estan el la tabla PrestacionesGrabadas La Cabecera esta en la tabla Remitos. Para preparar los datos del registro CABECERA se genera un cursor que pretende realizar un calculo que en DOS lo doy con cortes de control previamente a preparar los datos con un indice al efecto. En lo que respecta exclusivamente al proposito particular, para el caso de facturacion por cuenta y orden en un circulo medico, se logra Numerar Remitos en un rango conocido de prestaciones grabadas. Comentarios: A diferencia de otros CONCLUSION: Si no lo valoro, otro se estara aprovechandose de mi esfuerzo. VALORO MI ESFUERZO Esto es lo que el foro tiene en consecuencia de un conjunto de buenas acciones Ojala podamos continuar aportando Doy garantia que funciona eficientemente. Las pruebas las estoy haciendo sobre una tabla de mas de 4.000.000 de registros y procesa en menos de 5 segundos. Leer por favor el PROPOSITO para entender todos los pasos siguientes */ Begin Transaction DECLARE @nidEstado Int, @nIdObraSocial Int, @nAno Int, @nMes Int, @nTotalHonorarios Dec(9,3), @nTotalGastos Dec(9,3), @i Int, @nTope Int, @nNuevoId Int, @cDescripcion VarChar(80) Declare CurRemitos CURSOR FOR SELECT idObraSocial idObraSocial, Year(FechaPrestacion) Ano, Month(FechaPrestacion) MES, Sum (ImporteHonorarios) TotalHonorarios, Sum (ImporteGastos) TotalGastos from Nexus7.dbo.PrestacionesGrabadas Group By idObraSocial, Month(FechaPrestacion), Year(FechaPrestacion) /* "USA" el cursor, y coloca el puntero al tope (No en el primer registro sino en el "TOP" */ OPEN curRemitos /* Lee siguiente registro (SKIP), asignando cada campo a variables previamente declaradas*/ FETCH NEXT FROM curRemitos INTO @nidObraSocial, @nAno, @nMes, @nTotalHonorarios, @nTotalGastos /* La funcion @@FETCH_SATUS es comparable a FIN DE ARCHIVO "EOF" Para CLIPPEROS-FOXEROS como yo viene a ser "EOF()" Proposito: Mientras recorro el Cursor, con los datos calculados del mismo voy haciendo un Insert en otra tabla de la base de datos donde trabajo o bien en otra, de acuerdo al prefijo que corresponda en "DBO" */ WHILE @@FETCH_STATUS = 0 BEGIN print 'hola'+str(@nidObraSocial) /*Hago el Insert del proposito declarado arriba en una tabla cualquiera Leyendo los calculos que ya hizo el cursor*/ Insert into nexus7.dbo.Remitos ( idObraSocial, ImporteHonorarios, ImporteGastos, PeriodoProceso ) Values ( @nIdObraSocial, @nTotalHonorarios, @nTotalGastos, @nAno+@nMes ) /* Tomo el id que me dio este insert, ya que ese ID lo debo grabar en la tabla hija Entonces se muestra otro ejemplo con tablas Cabecera-Detalle o bien Padres-Hijas*/ set @nNuevoId = @@identity /* Con dicho ID reemplazo en la tabla hija de */ update nexus7.dbo.PrestacionesGrabadas set idRemito = @nNuevoID where idObraSocial = @nNuevoId and year(FechaPrestacion) = @nAno and Month(FechaPrestacion) = @nMes /* Leo proximo registro del cursor */ FETCH NEXT FROM curRemitos INTO @nidObraSocial, @nAno, @nMes, @nTotalHonorarios, @nTotalGastos End /*Cierro y limpio cursor*/ CLOSE curRemitos DEALLOCATE curRemitos /* Consilido la Transaccion*/ commit transaction |