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; kryna |
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. |
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 |
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. |
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 |
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. |
Solución a sentencia Insert.
:cool: 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.. |
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 |
La franja horaria es GMT +2. Ahora son las 22:10:10. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi