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 |
#7
|
||||
|
||||
Pues sí, todos deben de pertenecer a la misma sesión, aunque pueden apuntar a diferentes alias, de todas maneras hay que tener en cuenta que existe una sesión por defecto, de tal manera que en el caso de que no hubiera ninguna sesión, todos pertenecerían a la sesión por defecto, pero trabajando en red es preceptivo utilizar el objeto Tsessión.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#8
|
||||
|
||||
Cita:
De hecho nunca me ha quedado muy en claro cuándo se usa más de una sesión. // Saludos |
#9
|
||||
|
||||
Si es cierto la sesion por defecto es un objeto Tsession, lo que quiero decir es que yo prefiero arrastrar un objeto Tsession sobre el DataModule, para allí configurar los parámetros que crea oportunos, aunque también podría configurarse al vuelo por código.
En cuanto a utilizar un único Tsession, es lo más común, aunque puede utilizarse más de uno sobretodo si tratamos con distintas bases de datos. Cita:
__________________
Guía de Estilo de los Foros Cita:
|
|
|
|