Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 25-04-2012
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 688
Poder: 21
olbeup Va camino a la fama
Antes lo hacia en un DataModule, al poco tiempo me faltaba pantalla para poner los componentes de base de datos, al final opte por crear los componentes en tiempo real y no me arrepiento de haberlo hecho.

Este proceso lo realizo en cada formulario y nos es más trabajo, sino otra forma de trabajar, para mi, es ideal.

Primero, Definir en TForm:
Código Delphi [-]
...
  private
    { Private declarations }
    SQLInitDB: TStrings; <-- Aquí introduzco la SQL

    // Variable de búsqueda
    SQLWhereText: TStrings; <-- Aquí los parametros de WHERE

    // Componente de Conexión Facturas
    adoCnnFrm: TADOConnection;
    adoQryFrm: TADOQuery;
    dsSrcFrm: TDataSource;

    ...
    ...
end;

Segundo, Cuando se crea el TForm:
Código Delphi [-]
...
begin
  adoCnnFrm := TADOConnection.Create(Self);
    adoCnnFrm.LoginPrompt := False;
    adoCnnFrm.ConnectionString := MSSQLServerCfg.ConnectionString;    <-- Parámetro que se le pasa para la Conexión

  adoQryFrm := TADOQuery.Create(Self);
    adoQryFrm.Connection := adoCnnFrm;

  dsSrcFrm := TDataSource.Create(Self);
    dsSrcFrm.DataSet := adoQryFrm;

  dbgGrid.DataSource := dsSrcFrm;

  SQLInitDB := TStringList.Create;
    SQLInitDB.Add('SELECT');
    SQLInitDB.Add('    ...');
    SQLInitDB.Add('    ...');
    SQLInitDB.Add('  FROM xxyyzz');

  SQLWhereText := TStringList.Create;
end;

Tercero, Cuando se busca
Código Delphi [-]
...
var
  FieldValue: Integer;
begin
  // Guarda la posición del Grid, para después recuperarlo.
  FieldValue := GetIDxxyyzzGrid;

  // Comprobar que la base de datos si está abierta y cerrarla
  if adoCnnFrm.Connected then
    adoCnnFrm.Close;

  with adoQryFrm do
  begin
    SQL.Clear;

    SQL.Assign(SQLInitDB);

    if (SQLWhereText.Count > 0) then
      SQL.Add(SQLWhereText.Text);

    Open;
  end;

  //    Se pone ésta línea para que el puntero se actualice en el Grid
  // si no se pone el metodo (Update) del DBGrid, el puntero estaría
  // actualizado pero el foco que es azul estaría en la parte superior
  // del grid, y eso, lleva a confusión de donde se encuentra el puntero.
  dbgGrid.Update;

  // Posicionar el puntero donde estaba
  with dbgGrid.DataSource.DataSet do
  begin
    Locate('IDXXYYZZ', FieldValue, [loCaseInsensitive]);
    Result := RecordCount;
  end;
end;

Cuarto, Cuando se cierre el formulario
Código Delphi [-]
...
begin
  SQLInitDB.Free;
  SQLWhereText.Free;

  adoCnnFrm.Free;
  dsSrcFrm.Free;
  adoQryFrm.Free;
end;

Y esto me va muy bien.

Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
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
Procedimiento almacenado y query XBart Firebird e Interbase 1 16-01-2006 09:29:33
Ayuda con procedimiento almacenado y query XBart Firebird e Interbase 3 05-12-2005 03:42:55
Ayuda, como llamar a un procedimiento desde otro procedimiento? Ariatna Varios 1 01-02-2005 04:05:35
Llamar a Procedimiento Firebird des Query Gabriel Conexión con bases de datos 3 09-06-2004 20:21:05
Como Ejecutar Un Query Desde Un Procedimiento Almacenado multisof Firebird e Interbase 2 04-11-2003 06:15:28


La franja horaria es GMT +2. Ahora son las 00:32:42.


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