Ver Mensaje Individual
  #1  
Antiguo 12-01-2011
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Reputación: 19
_CALI Va por buen camino
la major manera de trabajar con ADO

hola amigos, tengo un problema al tratar de actualizar una tabla mediante un TADOCommand trabajo con SQL Server, lo explicare de la forma mas simple posible:

en un form tengo un TADOConnection, un TADOCommand y un TADOQuery

en la propiedad SQL del query pongo SELECT * FROM TABLA WHERE id_campo1 = :codigo (este query solo devuelve un registro que le doy al parametro ":codigo" y tengo enlazado TDBEdits para visualizar los campos correspondientes)

abro el query previamente pasandole el valor al parametro "codigo"
ejm:

Código Delphi [-]
 
ADOQuery1.Close;
ADOQuery1.Parameters.ParamByName('codigo').Value := '0123';
ADOQuery1.Open;



hasta ahi todo funciona bien, se visualizan en los edits los datos del resgistro '0123'

Ahora;
en la propiedad CommandText del TADOCommand pongo lo siguiente:

UPDATE TABLA SET id_campo2 = :id_campo2, id_campo3 = :id_campo3
WHERE id_campo1 = :id_campo1

(el TADOCommand ahora tiene 3 parametros q corresponden a los campos del TADOQuery)

para ejecutar el TADOCommand escribo:


Código Delphi [-]
 
ADOCommand.Parameters.ParamByName('id_campo1').Value := ADOQuery1['id_campo1']
ADOCommand.Parameters.ParamByName('id_campo2').Value := ADOQuery1['id_campo2']
ADOCommand.Parameters.ParamByName('id_campo3').Value := ADOQuery1['id_campo3']

//ADOCommand1.Execute; <-  aqui no pasa nada 
ADOQuery1.Recordset := ADOCommand1.Execute;
con el codigo previo me da un error q dice q el recordset no esta abierto, la verdad soy nuevo en ADO y les agradeceria enormente me expliquen la mejor manera de actualizar una tabla mediante un TADOCommand, como se correlacionan estos componentes en fin, que se hace habitualmente para estos casos



Muchas Gracias!!!














TABLA tiene como campos los siguientes:

id_campo1, campo2 y campo3


en commandText del TADOCommand pongo

Última edición por ecfisa fecha: 15-01-2011 a las 05:42:54. Razón: Etiquetas
Responder Con Cita