Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Como hacer un update con ttable de bde (https://www.clubdelphi.com/foros/showthread.php?t=54952)

richy08 03-04-2008 19:21:50

Como hacer un update con ttable de bde
 
Buenos dias compañeros empiezo a usar estos componentes y no encuentr la forma de hacer un update con ttable alguien me puede dar una pista por quei ntento hacerlo con un query pero como el ttable bloquea la tabla me dice que no puede crear a el cursor:confused:

eduarcol 03-04-2008 19:31:16

Código Delphi [-]
tTable.Edit;
   tTable.Fieldbyname(codigo).AsString := edit1.text;
tTable.Post;

richy08 03-04-2008 19:36:27

gracias eduarcol por esponder:D y si tiene alguna restriccion como 'where nquoteid='algo''

keyboy 03-04-2008 19:45:23

Entonces estás hablando de una consulta SQL y necesitas usar un TQuery en lugar de un TTable. Pones la consulta en la propiedad Query.SQL (de tipo TStrings) y usas el método Query.ExecSQL.

Bye

eduarcol 03-04-2008 19:46:45

los tTable no utilizan un where, si te refieres al filtro me imagino que no debe dar prblemas

richy08 03-04-2008 19:47:48

Gracias key boy pero eso fue lo primero que intente hacer pero no funciona no se si por que la ttable me bloquea la tabla y me marca que no puede construir el cursor seguire buscanod una solucion jeje ya quela encuentre posteo:D

egostar 03-04-2008 20:21:09

Cita:

Empezado por richy08 (Mensaje 277370)
Gracias key boy pero eso fue lo primero que intente hacer pero no funciona no se si por que la ttable me bloquea la tabla y me marca que no puede construir el cursor seguire buscanod una solucion jeje ya quela encuentre posteo:D

Podrías ser más específico sobre esta situación, es muy raro que pase eso ya que aunque estuviera la tabla abierta usar un query no representa ningún conflicto al actualizar la misma tabla, tal ves si pones algo de código podriamos darnos una idea mas clara de lo que pasa.

Salud OS

richy08 03-04-2008 20:28:08

gracias egostar este es el codigo que uso

Código Delphi [-]
 //Para editar campos ***************************************
    data.Qry_ActMaster.Close;
    data.Qry_ActMaster.ParamByName('id').Value:=trim(dbedit1.Text);
    data.Qry_ActMaster.open;
 
    data.tQuotemaster.open;
    data.tQuotemaster.Edit;
    data.tQuotemaster.Fieldbyname('ntotal').AsFloat:=    data.Qry_ActMaster.Fieldbyname('Total').Value;
    data.tQuotemaster.Post;
    //***********************************************************
con el qry_ActMaster saco la suma de los productos que cumplan con el id del maestro ese query va sobre la tabla detalle, asi como esta el codigo de arriba si me actualiza pero el primer registro de la tabla padre e intente

hacer un nuevo query para ir directamente sobre la tabla el codigo que tiene adentro ese query es:
Código SQL [-]
size="1">update Quotemaster set ntotal= :total where nQuoteid= :id;

pero me da el siguiente error

---------------------------
Error
---------------------------
Error creating cursor handle.
---------------------------
OK
---------------------------
:confused:

richy08 03-04-2008 20:46:15

bueno pues ya encontre el problema por cierto que componente tan extraño jeje ya entiendo por que lo dejaron de usar:D abria el query con open y no con execsql jeje y creo que no es l omismo :confused: como en ado siempre usas open. gracias por su tiempo a todos

eduarcol 03-04-2008 20:47:57

no es lo mismo, el Execsql se utiliza cuando no esperas filas de regreso, mientras que el open si lo hace, quizas por eso se dio el error

keyboy 03-04-2008 20:50:48

Yo por eso decía...:cool:

Cita:

Empezado por keyboy (Mensaje 277367)
Entonces estás hablando de una consulta SQL y necesitas usar un TQuery en lugar de un TTable. Pones la consulta en la propiedad Query.SQL (de tipo TStrings) y usas el método Query.ExecSQL.

Bye

richy08 03-04-2008 20:59:43

ok gracias jeje la verdad nunca he usado estos componentes pero es bueno a prender cosas nuevas :D


La franja horaria es GMT +2. Ahora son las 20:44:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi