Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-04-2012
nextor nextor is offline
Miembro
 
Registrado: abr 2010
Posts: 31
Poder: 0
nextor Va por buen camino
Thumbs up Gracias

Buen dia/noche/tarde compañeros les agradesco a todos sus comentarios.
He estado un poco alejado del foro ya que estamos migrando muchas cosas de programas "exe" a paginas php
pues les comento que lo pude resolver con Hilos como nos comento LuNaTk
y ahora funciona bien si a alguien le sirve estoy utilizando los componentes JEDI dentro de los cules existe un para Threads y es muy facil de usuar

Gracias de nuevo....
Responder Con Cita
  #2  
Antiguo 27-04-2012
nextor nextor is offline
Miembro
 
Registrado: abr 2010
Posts: 31
Poder: 0
nextor Va por buen camino
Ejemplo basico de Threads con JEDI

Buen dia Compañeros
voy a publicar un poco de los Threads con JEDI, a lo mejor a alguien le sirve...

bueno voy a asumir que tienen instaldo los componentes JEDI tanto en JCL como JVCL. sino se lo pueden bajar de http://www.delphi-jedi.org/.

voy a usar SQL Server con ODBC

1. en la pestaña de Jv Threading, pueden econtrar los componenetes relacionados.
2. voy a utilizar el componente TJvThread
3. una vez puesto el componente programo la ejecusion del Thread:

Código Delphi [-]
procedure TFrmProcesar.JvThreadExecute(Sender: TObject; Params: Pointer);
var
  // esta variables es para darle una sesion al thread
  Ses: TSession;
  // esta variable es para crear la conexion a la DB
  db: TDatabase;
  // esta variables es para la llamada al stored procedure
  sp: TStoredProc;

begin

    // seteo  las variables
    Ses := TSession.Create(JvThreadDB);
    db := TDatabase.Create(JvThreadDB);
    sp := TStoredProc.Create(JvThreadDB);

    try
    // configuracion de la sesion
      Ses.SessionName := 'SessionDyn';
      Ses.KeepConnections := true;
      Ses.Active := true;
      
      // configuracion de la conexin a la DB
      db.Name := 'DBTh';
      db.SessionName := Ses.SessionName;
      db.DatabaseName := 'DBThread';
      db.DriverName := 'SQL Server';
      db.LoginPrompt := False;
      
      // parametros para la conexion a la DB
      // estoy usando ODBC con SQL Server
      db.Params.Values['DATABASE NAME'] := 'nombreBaseDatos';
      db.Params.Values['USER NAME'] := 'usuarioBaseDatos';
      db.Params.Values['ODBC DSN'] := 'nombreDSNODBC';
      db.Params.Values['PASSWORD'] := 'passwordBaseDatos';
      db.Params.Values['SCHEMA CACHE SIZE'] := '8';
      db.Params.Values['SQLQRYMODE'] := 'SERVER';
      db.Params.Values['LANGDRIVER'] := '';
      db.Params.Values['SQLPASSTHRU MODE'] := 'NOT SHARED';
      db.Params.Values['SCHEMA CACHE TIME'] := '-1';
      db.Params.Values['MAX ROWS'] := '-1';
      db.Params.Values['BATCH COUNT'] := '200';
      db.Params.Values['ENABLE SCHEMA CACHE'] := 'FALSE';
      db.Params.Values['SCHEMA CACHE DIR'] := '';
      db.Params.Values['ENABLE BCD'] := 'FALSE';
      db.Params.Values['ROWSET SIZE'] := '20';
      db.Params.Values['BLOBS TO CACHE'] := '64';
      db.Exclusive := true;
      db.KeepConnection := True;

      sp.SessionName := Ses.SessionName;
      sp.DatabaseName := db.DatabaseName;
      
      // Nombre del stored procedure
      sp.StoredProcName := 'sp_procesar;1';
      sp.Prepare;
      
      
      // poner parametros al stored procedure
      sp.ParamByName('@parametro1').AsInteger := 'valor1';
      sp.ParamByName('@parametro2').AsString := 'valor2';
      sp.ParamByName('@parametro3').AsInteger := 'valor3';
      
     // ejecusion del stored procedure
        try
          sp.ExecProc;
        except
          TFrmProcGrps(Params).ReturnVal := -2;
          raise;
        end;
        
        // cierro la sesion y la conexion
      db.Close;
      Ses.Close;
    finally
      FreeAndNil(IniConf);
      FreeAndNil(sp);
      FreeAndNil(db);
      FreeAndNil(Ses);
    end
end;

// y por ultimo en un bonto pongo lo siguiente
procedure TFrmProcGrps.BtnStartClick(Sender: TObject);
Begin

   // esto es el componenete JvWaitingGradient es como un gift de progreso

  JvWaitingGradient1.Visible := True;
  JvWaitingGradient1.Active := True;

  // empieza la ejecucion del thread              
  JvThreadDB.Execute(Self);
  // con esto la pantalla no se queda blanqueada
 //
  while not JvThreadDB.Terminated do begin
    Sleep(100);
    Application.ProcessMessages;
 end;
 Sleep(500);
// una vez que haya terminado el stored procedure
//paro gift
  JvWaitingGradient1.Visible := false;
  JvWaitingGradient1.Active := False;


end;

Esto es todo compañeros se que es un ejemplo muy simple pero espero que a alguien le pueda servir y tambien espero que los demas foristas nos den sus coments y/o sugerencias para que todos aprendamos de todos

Gracias
Responder Con Cita
Respuesta


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
Evitar que la propiedad de un componente quede en blanco Faust OOP 2 08-05-2010 00:50:49
insertar al final de la tabla, sin que me los ponga hantes de los que ya estan insert sakuragi SQL 2 12-08-2005 22:32:12
Enable:=False; Pero sin que se me ponga gris. nicolasdom Varios 4 13-01-2005 16:43:35
hay alguna funcion en delphi que te ponga los puntos a los miles y millones?... soyhugo Varios 1 24-02-2004 20:52:11
Evitar listados con Campos en blanco? kia Impresión 5 18-10-2003 13:00:31


La franja horaria es GMT +2. Ahora son las 07:38:10.


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