FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Como resuelvo este problema??
buenas noches amigos del foro estoy realizando una insercion en una tabla de paradox de un archivo TXT, el codigo es el siguiente;
Code: _____________________________________________________ try Transferencia.Height:=172; Archivo.LoadFromFile('C:\NominaObre1.txt'); ProgressBar1.Max:= Archivo.Count; for I := 0 to Archivo.Count -1 do begin Campos.Clear; Campos.CommaText:= Archivo[i]; If Datamodule2.REMMAE.Locate('CODEMP',Campos[0],[]) then begin Datamodule2.REMMAE.Edit; Datamodule2.REMMAE.Fields[42].Value := Strtofloat(Campos[1]); Datamodule2.REMMAE.Fields[43].Value := Strtofloat(Campos[2]); Datamodule2.REMMAE.Fields[44].Value := Strtofloat(Campos[3]); Datamodule2.REMMAE.Fields[51].Value := Strtofloat(Campos[4]); Datamodule2.REMMAE.Fields[50].Value := Strtofloat(Campos[5]); Datamodule2.REMMAE.Fields[36].Value := Strtofloat(Campos[6]); Datamodule2.REMMAE.Fields[47].Value := Strtofloat(Campos[7]); Datamodule2.REMMAE.Post; end; showmessage( 'Ficha del trabajador ='+Campos[0]); Application.ProcessMessages; ProgressBar1.Position:=i +1; end; finally Archivo.Free; Campos.Free; end; _______________________________________________________________ El error que meda es el siguiente : Couldn't perform the edit because another user changed the record. Este error meda cuando a insertado mas de 10 lineas del txt. Que hago????
__________________
____________________________ Un saludo a todos... |
#2
|
|||
|
|||
amigos el error ya no meda pero se que da colgado el proceso? que puede ser
__________________
____________________________ Un saludo a todos... |
#3
|
||||
|
||||
Has comprobado que las líneas contienen valores validos, puede ser que en alguno de los campos del fichero de texto,por ejemplo hayas utilizado un . en vez de una coma o al reves.
09050000001ACM 22 18:00:00100600,0007637,0283SSS0212 0905103 ACM 12 19:00:00100660.0000384,1409NNN0212 Aquí te pongo un ejemplo de un leve fallo que hecharía abajo un proceso. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#4
|
|||
|
|||
Gracias por responder marcoszorrilla, rebice el texto que no es mu largo y esta perfecto, yo creo que pueda ser el procedimiento pe yo no veo el error.???
__________________
____________________________ Un saludo a todos... |
#5
|
||||
|
||||
ve con F8 y breakpoints, o metele trazas al programa (showMessage) para saber en qué registro va, que tiene Archivo[i], qué tiene Campos[0], Campos[1],que se asigna a cada campo, etc.
Si no lo resuelves, sería conveniente poner los datos que quieres importar para ver si puede dar problemas. Una detalle, que separador usas para el CommaText ???, porque si estas usando la coma, precisamente los números flotantes tienen una coma como separador decimal, y si lo interpretas como un separador de cadenas, Tienes un problema. Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#6
|
||||
|
||||
Por cierto, un detalle: Si dices que estas haciendo una inserción en la tabla deberías usar un Append o Insert en lugar de Edit
Que se te quede colgado puede ser por el método "locate" si la tabla no tiene ningún índice. Si tiene creas un índice en la tabla te recomiendo que uses FindKey en lugar de locate. Es mucho más rápido. Última edición por hermes_32 fecha: 26-04-2005 a las 13:18:47. |
#7
|
|||
|
|||
Gracias por responder, nu puedo colocar insert por que los registros ya existen lo que hago es buscarlo en la tabla y editaros para insertar los cambios en este proceso es que la tabla se cuelga. De verda no se que puede ser??
__________________
____________________________ Un saludo a todos... |
#8
|
||||
|
||||
Prueba a realizar el proceso entero dentro de una transaccion. Sería mas o menos:
Mas o menos. Lo he hecho sobre la marcha igual ni compila , pero la idea es esa. Pero insisto, si la tabla sobre la que estas haciendo un "locate" no tiene ningún índice...mal vamos...ya que por eso seguramente parezca que se te queda colgado aunque realmente estará buscando como un loco. Última edición por hermes_32 fecha: 26-04-2005 a las 22:38:37. |
|
|
|