![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
duda con el articulo paradox en red
leyendo el articulo paradox en red, me dice que debo crear un datamodule, un database y un sesion, ok mi duda es la siguiente, tengo necesidad del datamodule, y los otros dos componentestengo que crearlos en cada una de las ventanas del sistema, yo manejo un procedimiento que es el que utilizo para abrir las tablas, o sea todas las tablas del sistema las abro utilizando este:
Código:
function TobRutinas.AbrirTablas(T: tTable; NT, Indices: String): Boolean;
var
ErrorCode: DBIResult;
begin
//Abre las Tablas
if fileexists(cRutaDatos + '\' + NT + '.db') then
begin
try
Result := True;
T.Exclusive := False;
if T.Active then
Exit;
T.DatabaseName := cRutaDatos;
T.TableName := NT;
T.IndexName := Indices;
T.Active := True;
except
on E: EDBEngineError do
begin
ErrorCode := E.Errors[0].ErrorCode;
case ErrorCode of
DBIERR_SYSFILEOPEN,
DBIERR_SYSFILEIO,
DBIERR_SYSCORRUPT,
DBIERR_NOCONFIGFILE,
DBIERR_CFGCANNOTWRITE,
DBIERR_CFGMULTIFILE,
DBIERR_REENTERED,
DBIERR_CANTFINDIDAPI,
DBIERR_CANTLOADIDAPI,
DBIERR_CANTLOADLIBRARY,
DBIERR_TEMPFILEERR,
DBIERR_MULTIPLEIDAPI,
DBIERR_SHAREDMEMCONFLICT:
msgError( msErrorSistema + NT );
DBIERR_LOCKED,
DBIERR_UNLOCKFAILED,
DBIERR_FILEBUSY,
DBIERR_DIRBUSY,
DBIERR_FILELOCKED,
DBIERR_DIRLOCKED,
DBIERR_ALREADYLOCKED,
DBIERR_NOTLOCKED,
DBIERR_LOCKTIMEOUT,
DBIERR_GROUPLOCKED,
DBIERR_LOSTTBLLOCK,
DBIERR_LOSTEXCLACCESS,
DBIERR_NEEDEXCLACCESS,
DBIERR_RECGROUPCONFLICT,
DBIERR_DEADLOCK,
DBIERR_ACTIVETRAN,
DBIERR_NOACTIVETRAN,
DBIERR_RECLOCKFAILED,
DBIERR_OPTRECLOCKFAILED,
DBIERR_OPTRECLOCKRECDEL,
DBIERR_ENLISTFAILED,
DBIERR_NETFILELOCKED,
DBIERR_NETMULTIPLE:
msgError( msTablaBloqueada + NT );
DBIERR_FILECORRUPT: msgError(msTablaCorrupta + NT);
DBIERR_INDEXCORRUPT: msgError(msIndiceCorrupto +NT);
DBIERR_READERR: msgError(msErrordeLectura +NT);
DBIERR_DIRNOACCESS: msgError(msSinAccesoaDirectorio + NT);
DBIERR_FILENOACCESS: msgError(msSinAccesoaArchivo + NT);
DBIERR_NOMEMORY: msgError(msSinMemoria + NT);
DBIERR_OPENTBLLIMIT: msgError(msMuchasTablasAbiertas + NT);
DBIERR_NOSHAREDMEMORY: msgError(msSinMemoriaCompartida + NT);
DBIERR_INVALIDFILENAME: msgError(msNombreArchivoIncorrecto + NT);
DBIERR_NOSUCHINDEX: msgError(msNombreIndiceIncorrecto + NT);
else msgError(msErrorDesconocido + E.Message);
end;
Result := False;
end;
end;
end
else
begin
Result := False;
msgError(msTablanoExiste + cRutaDatos + '\' + NT);
end;
end;
cualquier sugerencia estaria agradecido
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela Última edición por eduarcol fecha: 11-02-2004 a las 21:42:51. Razón: Cambie las etiquetas quote por las code |
|
#2
|
||||
|
||||
|
En absoluto, lo mejor es que crees un solo DataModule e incluso la función que utilizas la colocas en el mismo DataModule y por ejemplo en el evento OnCreate del mismo ejecutas dicha función.
Puedes tener todos los ttAble creados pero no activos y con esta función los vas abriendo.... Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
|
#3
|
||||
|
||||
|
no hay una solucion menos drastica??? porq son alrededor de 20 pantallas y la que menos tiene son 2 tablas
![]()
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
|
#4
|
||||
|
||||
|
Pues creas el DataModule y colocas el TDatabase y el Tsession y en esos 20 formularios haces un Use del DataModule y conectas los Ttable con el Tsession que tienes en el DataModule.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
|
#5
|
||||
|
||||
|
ok, lo probare, seria una buena solucion?? o me recomiendas que haga otra cosa???
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
|
#6
|
||||
|
||||
|
Sigo Este Hilo:
Ya probe lo que me recomendo el amigo Marcos y funciona de las maravillas, pero solo una pequeña duda, si tengo el mudulo abierto en tiempo de diseño puedo acceder a el sin declararlo en el uses, y en compilacion no me da error sera posible que no lo tenga que declarar, y lo otro es que trabajo TQuerys solo para consulta a ellas tambien debo declararles la sesion, asi solo sean para consulta?????
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
![]() |
|
|
|