Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 05-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
ya que no comprendo de la funcion MakeSQLstring
Hola naty_prog.

Voy a tratar de explicarla documentando el código de la función misma. (Que bién podría haberse llamado HacerCadenaSQL ).
Código Delphi [-]
function TForm_docente.MakeSQLString: string;
var
  TS: TStrings;
  i: Integer;
begin
  Result:= 'SELECT * FROM DOCENTE '; //Iniciar la sentencia SQL
  TS:= TStringList.Create;
  try
    (* Tipo documento *)
    if ComboBox1.ItemIndex > 0 then  // si es diferente a 'Ignorar'
      TS.Add('TIPODOC = :TIPO');     // se agregará parámetro ":TIPO" a WHERE
    (* Materia *)
    if Combobox2.ItemIndex > 0 then  // si es diferente a 'Ignorar'
      TS.Add('ID_DOCENTE = :MAT');   // se agregará parámetro ":MAT" a WHERE
    (* Localidad *)
    if ComboBox3.ItemIndex > 0 then  // si es diferente a 'Ignorar'
      TS.Add('ID_LOCALIDAD =:LOC');  // se agregará parámetro ":LOC" a WHERE
    (* Sexo *)
    if ComboBox4.ItemIndex > 0 then  // si es diferente a 'Ignorar'
      TS.Add('SEXO = :SEX');         // se agregará parámetro ":LOC" a WHERE
    (* Edad *)
    case ComboBox5.ItemIndex of      // ItemIndex = 0 => 'Ignorar'
      1: TS.Add('EDAD = :EDA'); // igual
      2: TS.Add('EDAD > :EDA'); // mayor
      3: TS.Add('EDAD < :EDA'); // menor
      4: TS.Add('EDAD BETWEEN :EDA AND :EDA2') // entre
    end;
    (* Comenzar armado de WHERE *)
    if TS.Count > 0 then         // Si hubo selección en algún ComboBox -> armar cadena
    begin
      Result:= Result + 'WHERE ';  // comienza con WHERE
      for i:= 0 to TS.Count-1 do
        if i < TS.Count-1 then   // ¿ Existen más comprobaciones delante ?
          Result:= Result + TS[i] + ' AND ' // si, agregar AND
        else
          Result:= Result + TS[i];          // no
    end;
    (* Orden  *)
    case ComboBox6.ItemIndex of   // ItemIndex = 0 => 'Ignorar'
      1: Result:= Result + ' ORDER BY NOMBRE_APELLIDO ASC';  // ascendente
      2: Result:= Result + ' ORDER BY NOMBRE_APELLIDO DESC' // descendente
    end
  finally
    TS.Free  // Liberar 
  end;
end;
Si no he sido suficientemente claro, hacemelo saber y gustoso trataré de explicarme de otro modo.

Un saludo.


Edito: Ya me olvidaba de ejemplificar el uso...
Código Delphi [-]
var
  CadenaSQL: string;
begin
   CadenaSQL:= MakeSQLString
end;
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 05-03-2012 a las 20:04:51.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Nuevas unidades de medida. marcoszorrilla La Taberna 4 04-06-2008 19:56:29
Sumar montos a medida que se ingresa Analia29 Varios 6 27-10-2006 13:34:56
Botones a la Medida Vlady Varios 5 26-08-2005 20:54:27


La franja horaria es GMT +2. Ahora son las 17:15:39.


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