_CALI
12-01-2011, 15:23:57
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:
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:
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
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:
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:
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