Ver Mensaje Individual
  #4  
Antiguo 14-12-2007
Josepo Josepo is offline
Miembro
 
Registrado: nov 2007
Ubicación: Barcelona
Posts: 14
Reputación: 0
Josepo Va por buen camino
Gracias por vuestro interés, he ha sido útil.

BertHauser, puse el parámetro a input como dijiste.

Cita:
¿Porque no crea directamente la consulta EN el componente en vez de crearla "al vuelo"?
No acabo de entender qué significa, si lo que quieres decir es en tiempo de diseño, en la propiedad SQL del query, el caso es que no la creo allí porque ya hay otra sentencia SQL que se ejecuta al arrancar (hay un SELECT) y lo que yo hago es aprovechar el mismo componente para, en este caso, hacer un DELETE ("al vuelo").

Oriol, es como tú has dicho, ja funciona. Por algún motivo creí que antes de pasar la instrucción SQL se debía de pasar el parámetro. Funciona correctamente si lo paso con el parámetro del query:

Código Delphi [-]
QrBuscaCliente.ParamByName('cli_id').asInteger:= codigoABorrar;

No funciona si utilizo el parámetro del ClientDataSet

Código Delphi [-]
cdlBuscaCliente.Params.ParamByName('cli_id').asInteger:= codigoABorrar;

Eso me hace plantear una nueva pregunta: ¿qué diferencia hay entre los parámetros del DBQuery con los del ClientDataSet?

Otra pregunta: cuando ejecuto, borra correctamente el registro de la línea seleccionada en la base de datos, pero en la grid no desaparece. He utilizado DBGrid1.Refresh; también he probado poner False y True el clientDataSet pero así lo único que consigo es tener una excepción Cursor not returned from Query, y posteriormente deja de visualizar lo que había en la grid. ¿hay alguna forma de refrescar si volver a hacer un SELECT sql?

Gracias.
Responder Con Cita