Creacion de tablas con nombre dinámicos

19/01/2004 - 14:59 por [-H-] | Informe spam
Lo que necesito hacer, es guardar ciertos datos en una
tabla "temporal" de modo que esa tabla para cada sesión
sea diferente.
Mi aplicación se lanza contra SQL Server desde oracle
forms builder, utilizando el parche OCA y ODBC.
He probado a crear una tabla temporal local cada vez que
un usuario inicia la aplicación, y luego insertar datos
en ella, el problema es que a la hora de insertarlos me
casca el programa. SI utilizo una tabla temporal global
la cosa si funciona, pero si hay más de un usuario a la
vez, pueden actuar los dos sobre la misma tabla y eso no
lo puedo permitir.
Pienso que puede ser que al utilizar ODBC, la tabla local
que creo se destruye nada mas volver la consulta ,
imagino que pq el forms builder "desconecta" después de
la instrucción SQL y se interpreta una finalización de
sesión... (si no alguien puede decirme porque me ocurre
eso? pq no veo las tablas locales??)
El caso es que la única solución que se me ocurre es ir
creando tablas normales (no temporales), pero con
distinto nombre para cada usuario.
Esto es, asignar un nombre de tabla dinamicamente según
se conectan los usuarios, y actuar luego para cada
usuario con su tabla correspondiente.
¿Cómo puedo crear esas tablas? Lo ideal seria tener una
variable numérica en algún sitio(una tabla probablemente)
que me sirva de identificador de tablas y el cual vaya
incrementando a medida que entran usuarios.
por ejemplo, para el primero que se conecte que se cree
una tabla llamada "1" para el segundo "2" para el
enésimo "n"...
muchas gracias.

Preguntas similare

Leer las respuestas

#6 Anonimo
19/01/2004 - 21:23 | Informe spam
Gracias Miguel, lo haré de esa manera entonces ;) (aunque
los datos son bastantes), incicializaré las filas para
cada usuario cuando inicie la aplicación y eliminaré las
filas de ese spid cuando la cierre.
Un saludo.
yo usaría una tabla única para todos los usuarios con un


campo que los
distinga, una 'falsa' tabla temporal., sobre todo si no


vas a usar muchos
datos. Puedes usar el spid como identificador para


conocer cual es tu
conexión (solamente con select @@spid lo conoces y


llenar ese campo es por
tanto muy sencillo.
Programa un job que periodicamente elimine los datos de


los spids que no
estén conectados..


=>Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
Aviso de Seguridad
http://www.microsoft.com/spain/tech...d/boletine


s/MS03-039-USER.asp
==>
"[-H-]" escribió


en el mensaje
news:068601c3de94$643c5ef0$
Lo que necesito hacer, es guardar ciertos datos en una
tabla "temporal" de modo que esa tabla para cada sesión
sea diferente.
Mi aplicación se lanza contra SQL Server desde oracle
forms builder, utilizando el parche OCA y ODBC.
He probado a crear una tabla temporal local cada vez que
un usuario inicia la aplicación, y luego insertar datos
en ella, el problema es que a la hora de insertarlos me
casca el programa. SI utilizo una tabla temporal global
la cosa si funciona, pero si hay más de un usuario a la
vez, pueden actuar los dos sobre la misma tabla y eso no
lo puedo permitir.
Pienso que puede ser que al utilizar ODBC, la tabla local
que creo se destruye nada mas volver la consulta ,
imagino que pq el forms builder "desconecta" después de
la instrucción SQL y se interpreta una finalización de
sesión... (si no alguien puede decirme porque me ocurre
eso? pq no veo las tablas locales??)
El caso es que la única solución que se me ocurre es ir
creando tablas normales (no temporales), pero con
distinto nombre para cada usuario.
Esto es, asignar un nombre de tabla dinamicamente según
se conectan los usuarios, y actuar luego para cada
usuario con su tabla correspondiente.
¿Cómo puedo crear esas tablas? Lo ideal seria tener una
variable numérica en algún sitio(una tabla probablemente)
que me sirva de identificador de tablas y el cual vaya
incrementando a medida que entran usuarios.
por ejemplo, para el primero que se conecte que se cree
una tabla llamada "1" para el segundo "2" para el
enésimo "n"...
muchas gracias.


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida