Problemas al ingresar datos en mi bd

Saludos,
Mi problema es el siguiente.
Con este código puedo ingresar datos en un campo determinado de mi BD
her_hermanos.Insert;
her_hermanos.FieldbyName ('her_Nombre').Asstring := 'MrRidk'; her_hermanos.FieldbyName('HER_LU_ID').AsString := 'web';
her_hermanos.Post;
El problema es que siempre guarda el dato en el ultimo registro, como puedo hacer para guardarlo en cualquier lugar de mi tabla.
Gracia.
1

1 respuesta

Respuesta
1
Muy fácil, hay dos maneras que se me ocurren ahora mismo:
1.- Suponiendo que usas tabla o query con la propiedad Requestlive a true (los cambios se hacen directamente sobre la bbdd):
Una vez situado encima del registro en concreto (con la grid visualmente o por código vía Locate - lo explico más abajo) entramos en modo edición del dataset haciendo:
dataset.edit;
dataset.fieldbyname('nombre').AsString := 'Antonio';
dataset.post;
2. Vía SQL.
En un componente tquery insertas en la propiedad SQL: UPDATE nombre_tabla SET nombre=:pnombreactual WHERE nombre=:pnombreanterior
Por código:
Procedure CambiarNombre(NAnterior, NActual : String);
begin
query1.close;
query1.parambyname('pnombreanterior').AsString := NAnterior;
query1.parambyname('pnombreaactual').AsString := NActual;
query1.execsql;
end;
--
Anexo:
Locate te permite seleccionar un registro dando el nombre/s del/los campo/s y su/s valor/es.
Ej.
1. Busco en el campo LastName el valor Johnson.
table1.Locate('LastName','Johnson', []);
2. Si busco por más de un campo, es algo diferente. En el ejemplo busco que el campo LastName tenga el valor Johnson y que el campo FirstName tenga el valor Scott:
table1.Locate('LastName;Firstname',vararrayof(['Johnson','Scott']), []);
Gracias por contestar Antipauli,
Tratare de explicarme un poco más.
Tengo un formulario por el cual ingreso datos a mi base de datos(Paradox). Mi base de datos solo tiene una sola tabla, y los datos que lleno con el formulario son:
Nombre:
Dirección:
Teléfono:
Ahora si tengo 5 registros ingresados a mi base de datos y quiero cambiar la dirección del 3 registro, lo que hago es con el navegador (DBNavigator) me desplazo hasta el registro 3, cambio la dirección y guardo el registro nuevamente, y listo, con esto he cambiado un dato en mi base de datos en un lugar especifico.
Mi gran inconveniente es - como hago para hacer esto mismo pero por código, sin necesidada de utilizar un formulario.?
Gracias, espero me halla podido hacer entender.
Saludos...
ajum
Lo que ocurre es normal. Cuando haces un insert el dato se añade al final de la bbdd (normalmente) pero esa posición es muy relativa, ya que los datos en la bbdd no están ordenados tal y como se entran, aunque pueda parecerlo. La bbdd guarda internamente esa información en posiciones determinadas por los posibles mecanismos de optimización que pueda tener activados, en posiciones que ocupaban filas borradas, etc.
Supongo que tu pregunta tiene que ver con la visualización ordenada de esos datos una vez se ha añadido la información. Es en las consultas donde crearemos la composición de registros que deseamos ver de acuerdo al número de columnas deseadas, la ordenación por una o más filas, filtros, etc.
Por lo tanto, debes obtener la manera de seleccionar los registros ordenados de acuerdo a ciertos criterios que te interesen, supongo que descendiente por fecha de creación (podrías crear n autoincremental o un campo tipo fecha, etc.).
Esta respuesta es muy general porque tampoco has concretado mucho.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas