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

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 03-04-2008
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 20
rolandoj Va por buen camino
Algo de explicación conceptual

Hola,

Un DLL se maneja diferente a una aplicación. Cuando usas un TDataModule tanto la creación del mismo como su destrucción debes hacerlo por tí mismo. Digamos que agregastes una unidad en la que creates tú TDataModule; ten en cuenta que al hacerlo, en realidad lo que estás definiendo es una clase descendiente de TDataModule, a la que llamastes Datos. Tú unidad debe lucir algo como esto:

Código Delphi [-]
type
  TDatos = class(TDataModule)
  Private
      FAlgo: Integer; 
  Public
      Property Algo:Integer Read FAlgo Write FAlgo;
  End;
 
Var 
    Datos: TDatos;

Lógicamente "Algo" es solo un ejemplo.

Hay varias consideraciones de metodología a hacer. Sin entrar en detalles, es aconsable borrar el :

Código Delphi [-]
 
Var 
    Datos: TDatos;

De la unidad que has creado, y en su lugar emplearlo como variable local de la rutina que deba usarla; esto es para facilitar programación multihilos en caso de que más adelante se desarrolle con ella.

Las rutina que la use debe ser algo como esto:

Código Delphi [-]
Function HacerAlgo(ACode:Integer):Integer;
Var 
    Datos: TDatos;  
Begin
       Datos := Nil;
       Try
           Datos := TDatos.Create(Nil);
           Datos.Algo := ACode;
           ....
           HacerAlgo := Datos.Algo;
       Finally
           Datos.Free; 
       End;
End;

El parámetro Nil del constructor le dice a la rutina que la responsabilidad de liberar al componente es de la propia rutina. Es importante que tengas en cuenta que aquí no puedas pasarle un parámetro Self, u otro componente, proveniente del programa principal porque se trata de áreas de memoria diferentes.

Bueno, hay bastante teoría que podríamos anotar al respecto; pero espero que esto te ayude a orientarte.

Ahora bien, te sugiero leer primero toda la teoría de manejo de DLLs y en especial la comunicación de parámetros entre el programa principal y el DLL, así como lo referente a manejo de memoria.

Última edición por rolandoj fecha: 03-04-2008 a las 01:56:25. Razón: Problema con las banderas de código Delphi
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
Problema de acceso a base de datos Access Ulnaju Tablas planas 6 15-08-2007 02:53:13
Acceso a base de datos interbase/firebird Ricardo León Conexión con bases de datos 4 12-09-2006 21:31:05
Acceso a Base Datos de Micro. Works con delphi jfk76 Servers 2 03-03-2005 19:44:48
BDE para acceso a una Base de Datos Oracle Isabel Oracle 2 12-06-2003 13:05:01
Acceso a Base de datos Oracle con BDE Isabel Conexión con bases de datos 3 04-06-2003 18:52:06


La franja horaria es GMT +2. Ahora son las 09:13: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