Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 26-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
La condición para la consulta SQL tendría que ser del estilo de:


Código:
where
  ... and
  maquina in ("001", "005", "123")
suponiendo que se seleccionaron las casillas 001, 005 y 123, de manera que el parámetro sería una lista de valores:


Código:
where
  ... and
  maquina in (:valores)
En la prueba que hice ayer con Paradox no me permitió introducir tal tipo de parámetros e ignoro si en Interbase puede realizarse, así que mientras llega un experto en la materia veamos de hacerlo "a pie".

Reconstruyendo la sentencia desde el comienzo yo declararía una constante (o variable según prefieras) así:


Código:
const
  fmtSql = 
    'delete from tabla ' +
    'where ' +
    'codigo = "%s" and clave = "%s" and revision = "%s" and ' +
    'maquina in (%s)'
Aquí la cadena no se pasa directamente al query sino que se le da formato con la función Format:

Código:
Format(fmtSql, [Codigo, Clave, Revision, Maquinas])
donde Codigo, Clave y Revisión son cadenas con los valores provenientes de los Edit (o directamente Edit.Text) y Maquinas es una cadena formada por la lista separada por comas de los valores correspodientes a las casillas seleccionadas. Esta es la parte "pesada" pues para construir tal lista tendrás que recorrer todos los ítemes del CheckListBox y agregar un valor por cada ítem seleccionado:

Código:
var
  I: Integer;

begin
  Maquinas := '';
  for I := 0 to Pred(CheckListBox.Count) do
    if CheckListBox1.Checked[i] then
      if Maquinas = ''
        then Maquinas := QuotedStr(CheckListBox.Items[i])
        else  Maquinas := Maquinas + ',' + QuotedStr(CheckListBox.Items[i]);
end;
QuotedStr es necesario para introducir las comillas que se requieren alrededor de cada valor.

Con estos valores de Codigo, Clave, Revison y Maquinas el resultado de Format será la cadena que debes pasar a la consulta SQL:

Código:
Query.SQL.Text := Format(...);
// Saludos
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


La franja horaria es GMT +2. Ahora son las 04:25:36.


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