FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
insert que no funciona
hola!!!
mi problema consiste en que esoy insertando registros en tablas paradox(son 3) y en la tabla no me lo esta insertando como deberia me esta sbreescribiendo el registro anterior.. me explico cuando inserto el registro 1 me lo copia en la fila cuyo indice numero1 cuando inserto el registro 2 me lo copia en la fila cuyo indice es numero 2 pero tambien el la fila anterior (osea la fila 1).. cuando inserto el registro 3 me lo copia en la fila cuyo indice es numero 3 pero tambien el la fila anterior (osea la fila 2)... osea me lo copia en la fila ql corresponde y tambien el la fila anterior.. Código:
if not Tbconcepto.active then Tbconcepto.open; Tbconcepto.Insert; Tbconcepto.FieldByName('cod_concepto').AsString := clave5; Tbconcepto.FieldByName('cod_especialidad').AsString := clave; Tbconcepto.FieldByName('descripcion_concepto').AsString := clave3; try Tbconcepto.Post; except Showmessage('Error insertando registro'); end; Tbconcepto.FlushBuffers; Tbconcepto.Close; if not Tbcostos.active then Tbcostos.open; Tbcostos.Insert; Tbcostos.FieldByName('cod_concepto').AsString := clave5; Tbcostos.FieldByName('costo').AsString := clavem; Tbcostos.FieldByName('fecha').AsString := clavef; try Tbcostos.Post; except Showmessage('Error insertando registro'); end; Tbcostos.FlushBuffers; Tbcostos.Close; if not Tbespecialidad.active then Tbespecialidad.open; Tbespecialidad.Insert; Tbespecialidad.FieldByName('cod_especialidad').AsString := clave; Tbespecialidad.FieldByName('descripcion_especialidad').AsString := clave4; Tbespecialidad.FieldByName('orden').AsString := claveo; Tbespecialidad.FieldByName('nota').AsString := claven; try Tbespecialidad.Post; except Showmessage('Error insertando registro'); end; Tbespecialidad.FlushBuffers; Tbespecialidad.Close; kryna |
#2
|
|||
|
|||
No se que consulta en tu query y esos valores que le pasas a los campos no se si los tendra claro pero esto que sigue debe funcionar.
if not Tbconcepto.active then Begin Tbconcepto.open; Tbconcepto.Insert; Tbconcepto.FieldByName('cod_concepto').AsString := "A5"; Tbconcepto.FieldByName('cod_especialidad').AsString := "Esp. A5"; Tbconcepto.FieldByName('descripcion_concepto').AsString := "Esta es la Especialidad"; Tbconcepto.Post; End; Debes usar Begin ... End; para una mejor logica de tus codigos. Suerte. Nelson Polanco Rep. Dom. |
#3
|
|||
|
|||
hola nelson
ya probe como me sugeristes y tampoco me funciona... matiene el mismo error.. no se que debo hacer tengo ya algunos dias con este problema |
#4
|
||||
|
||||
Por qué no creas la tabla de nuevo, el código de Nelson es perfecto y el tuyo también debiera de funcionar.
Sino te da ningún error tendría que añadir un registro sin más problema. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
|||
|
|||
La tabla necesita estar pocisionada en el ultimo registro
Antes de poner el insert utiliza la funcion last de la tabla par que antes de insertar en ella se pocisione en el ultimo registro y asi inserte en ese.
O tambien puedes utilizar la funcion append |
#6
|
||||
|
||||
No es necesario utilizar, Last, precisamente en algunas tablas esta instrucción es distinta a Append, porque lo que hace es eso insertar entre la fila quen os encontramos y la siguiente.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#7
|
|||
|
|||
Solución a sentencia Insert.
Hola Amigo delphiniano, te cuento que no debes utilizar la sentencia Insert sino la sentencia Append ya que el Insert debe averiguar primero la posicion a insertar la nueva tupla entre otras cosas y eso es tiempo...te recomiendo lo siguiente:
ntabla.open; //cuando abro la tabla se posiciona el 1er. registro ntabla.append; //habilito nuevo al final ntabla.fieldbyName('xfield1').asString := xValor1; //dato nro1. ntabla.fieldbyName('xfield2').asString := xValor2; ntabla.fieldbyName('xfield3').asString := xValor3; ntabla.post; //luego de que grabo la tabla vuelve al estado dsBrowse A estas sentencias la puede llamar desde un bucle o hacer un proc y pasarle parametros, etc..
__________________
Diego |
#8
|
|||
|
|||
Hola!!
Ya cree de nuevo las tablas... Le coloce tb.last a cada una de las tablas.. y si me graba el registro en la ultima fila.. pero alguno valores (mejor dicho todos menos los campos comunes en las tabla) se graban tambien en la primera fila de las tablas.. porfa yo se que no debiera estar haciendo eso pero si lo hace estoy desesperada |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|