Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-12-2007
Josepo Josepo is offline
Miembro
 
Registrado: nov 2007
Ubicación: Barcelona
Posts: 14
Poder: 0
Josepo Va por buen camino
Question Pasar parámetros a sentencia SQL con DBExpress

Toda la tarde leyendo y haciendo pruebas y no hay manera

Símplemente quiero pasar como parámetro a una sentencia SQL el campo primario escogido de un DBGrid para eliminar el registro de la tabla.

Si paso ese campo a la sentencia SQL como una variable, no hay problema, se ejecuta y borra el registro:

Código Delphi [-]
var   CodigoABorrar: Integer; begin   CodigoABorrar :=  DbGrid1.DataSource.DataSet.FieldByName('cli_id').AsInteger;
  if Application.MessageBox('¿Deseas borrar el cliente seleccionado?', 'Confirmar', MB_ICONQUESTION or MB_YESNO) = idYes then   begin     QrBuscaCliente.SQL.Clear;  
    QrBuscaCliente.SQL.Add('DELETE FROM cliente WHERE cli_id='+ codigoABorrar);
    QrBuscaCliente.ExecSql;
  end;


Pero si lo paso como parámetro, me dice que éste es desconocido:

Código Delphi [-]
 var   codigoABorrar: Integer; begin   CodigoABorrar :=  DbGrid1.DataSource.DataSet.FieldByName('cli_id').AsInteger;
  if Application.MessageBox('¿Deseas borrar el cliente seleccionado?', 'Confirmar', MB_ICONQUESTION or MB_YESNO) = idYes then   begin     QrBuscaCliente.SQL.Clear;     cdsBuscaCliente.Params.ParamByName('cli_id').asInteger:= codigoABorrar;
    QrBuscaCliente.SQL.Add('DELETE FROM cliente WHERE cli_id = :cli_id');
    QrBuscaCliente.ExecSql;
  end;


Donde cdsBuscaCliente es un TClientDataSet y QrBuscaCliente es un TSQLQuery.

Otras cosas que he hecho dentro de las pruebas:
  • En QrBuscaCliente (TSQLQuery), propiedad Params, añado un parámetro llamado cli_id, que corresponde al campo del mismo nombre con Datatype ftInteger
  • En cdsBuscaCliente (TClientDataSet), botón derecho sobre componente y clic a Fetch Params, y obtengo los creados en el query.
Algo no he entendido bien sobre los parámetros, según he visto en el foro cambia ligeramente de unos componentes a otros.

¿alguna sugerencia?
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pasar parametro a una sentencia sql molinero1 SQL 23 12-04-2007 17:55:22
Pasar parametros.... Coco_jac SQL 2 02-09-2006 04:28:16
Como obtener los parametros para dbexpress al conectarme por odbc..! Arturo Conexión con bases de datos 2 20-05-2006 00:51:42
Error con parámetros en SQL server y dbexpress jdiazan Conexión con bases de datos 0 09-07-2004 09:38:25
pasar una variable a una sentencia sql acrophet SQL 6 03-11-2003 17:01:02


La franja horaria es GMT +2. Ahora son las 03:26:29.


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
Copyright 1996-2007 Club Delphi