![]() |
| |||||||
| Registrarse | Preguntas Frecuentes | Lista de Foreros | Calendario | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
| | LinkBack | Herramientas | Desplegado |
| |||
| Hola, tengo un problema que me trae de cabeza. La cuestion es que no acabo de entender muy bien como funcionan las actualizaciones por lotes con los componentes de ADO. Tengo un ADOQuery y si hago varias operaciones de edicion e inserción se supone que deberian almacenarse en la cache del componente hasta que ejecute UpdateBatch o CancelBatch para confirmar o rechazar los cambios. El problema es que si hago varias modificaciones y ejecuto UpdateBatch solamente se guarda la ultima modificacion que he hecho. Os pongo el codigo que utilizo por si alguien puede echarme una mano. Gracias de antemano. Un saludo. J procedure TfrmDescriptores.FormCreate(Sender: TObject); begin ADOQuery1.Open; end; procedure TfrmDescriptores.btnModificarClick(Sender: TObject); var Materia: String; begin Materia:=ADOQuery1.FieldByName('Materia').AsString ; ADOQuery1.Edit; if InputQuery ('Modificar descriptor', 'Introduzca el nombre del descriptor' , Materia) then ADOQuery1.FieldByName('Materia').AsString:=Materia ; ADOQuery1.Post; end; procedure TfrmDescriptores.btnNuevoClick(Sender: TObject); var Materia: String; begin Materia:=''; ADOQuery1.Append; if InputQuery ('Insertar descriptor', 'Introduzca el nombre del descriptor' , Materia) then ADOQuery1.FieldByName('Materia').AsString:=Materia ; ADOQuery1.Post; end; procedure TfrmDescriptores.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if (ModalResult=mrOk) and (ADOQuery1.UpdateStatus <> DB.usUnmodified)then ADOQuery1.UpdateBatch else if (ModalResult=mrCancel) and (ADOQuery1.UpdateStatus <> DB.usUnmodified) then begin if Application.MessageBox( 'Algunos datos han sido modificados. ¿Desea salir sin guardar los cambios?', 'AGESBI',MB_YESNO+MB_ICONINFORMATION+MB_DEFBUTTON2 ) = idYes then ADOQuery1.CancelBatch else CanClose:=False; end; end; procedure TfrmDescriptores.FormClose(Sender: TObject; var Action: TCloseAction); begin if ADOQuery1.Active then ADOQuery1.Close; end; |
| | ||||
| ||||
| |
![]() |
| Herramientas | |
| Desplegado | |
| |
Temas Similares | ||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Problemas con actualizaciones | alalaguna | Newsgroup microsoft.public.es.update_services | 0 | 21-07-2008 08:45:01 |
| Problemas con actualizaciones | csantarelli | Newsgroup microsoft.public.es.windowsxp | 5 | 11-02-2008 18:22:45 |
| Problemas con la actualizaciones | Jean | Newsgroup microsoft.public.es.seguridad | 4 | 06-07-2007 06:40:19 |
| Problemas con Actualizaciones | ANTONIO | Newsgroup microsoft.public.es.update_services | 12 | 25-07-2005 02:01:13 |
| Problemas actualizaciones | Jaime Ourense | Newsgroup microsoft.public.es.office2000 | 4 | 08-01-2005 18:38:51 |