Actualización de registros con tadoquery

Esta es mi primera vez aquí y deseo hacer dos preguntas espero puedas ayudarme. En una aplicación que estoy realizando tengo dos forms.
En uno de ellos completo un formulario con distintos datos, que se graban en una base de datos access llamada datos.mdb, esto lo hago mediante una conexión con un Adoconnection un adorable y un datasource. Hasta ahí espero que se entienda. Ahora, en el segundo form tengo un dbgrid que me muestra todos los registros de la base de datos, para conectar la base de datos utilice una nueva conexión, esta vez un adoconnection, un adoquery y un datasource. Bien, en el mismo formulario tengo varios radiobuttons los que utilizo para filtrar lo que me muestra el dbgrid mediante distintas consulta a la base de datos con el adoquery.
La primer pregunta es la siguiente:
Supongamos que filtro la búsqueda por numero de teléfono que es uno de los campos de mi base de datos, bien, en un dbedit coloco el numero y el dbgrid me muestra todos los registros que poseen ese numero de teléfono, ahora lo que necesito hacer es poder guardar todos esos registros en otra base de datos, pero no todos los campos solo tres de ellos, como puedo hacer para guardarlos.
La segunda pregunta es :
Como puedo hacer para que seleccionando un registro desde el dbgrid y al darle click por ejemplo a un botón que diga editar, ese registro se cargue en el mismo formulario que utilizo para agregar un nuevo registro y allí poder editarlo y actualizarlo en la base de datos.
Bueno, espero haber sido claro, ya que esta es mi primera vez haciendo preguntas.
Respuesta
1
Antes que nada espero ser claro con mis respuestas, para tu primera pregunta, debes recorrer todo el DataSource que tienes ligado al DBGrid más o menos de la siguiente manera:
while Datasource.eof do
  E insertarlo mediante una sentencia SQL de insert armada dinámicamente con los valores actuales del Datasource que tienes ligado al DBgrid y pasada a un componente ADOQuery por ejemplo
     ADOQuery.SQL.Close;
     ADOQuery.SQL.Clear;
     ADOQuery.SQL.Add('INSERT INTO tabla (campo1,campo2,...) '+
              'VALUES ´('+DataSource.FieldByName('NombreCampo1').AsInteger+','+
               DataSource.FieldByName('NombreCampo2').AsInteger+')';
     ADOQuery.ExecSql;
Datasource.Next;
Para tu segunda pregunta:
Puedes utilizar la propiedad filtered y filter de tu componente Adorable donde la pases el valor del registro seleccionado del grid utilizando el método OnCellClick del grid, es decir cuando el usuario haga click en el una celda del grid colocas el filtro en la tabla, muestras el form y cuando el usuario haga click en un botón modificar o actualizar realizas un open al Adorable y el registro de trabajo será el deseado, posteriormente utilizas el método Edit del mismo Adorable para modificar y finalmente el método Post para guardar los datos actualizados.
En caso de que no me entiendas o tengas problemas, dime donde contactarte vía messenger ya sea de Microsoft, Gmail, Skype o Yahoo (mi alias es roberboy68 para cualquiera) y te envío un archivo zip con una aplicación que haga lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas