border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 11-07-2005, 11:37:23
Avatar de kaskybrime
Buena Participación en el Foro
 
Registrado: abr 2004
Ubicación: Bilbao
Posts: 65
kaskybrime Valoración +2
Contactar con kaskybrime a través de MSN
Predeterminado Problema con un Insert + Select

Hola, como os va? despues de mucho tiempo vuelvo a pedir ayuda. El problema de esta vez es con un Insert. Es la siguiente:

Código:
insert into estudioclientes(optica,tipogla,tipoencargo,importe,fecha,codigocliente,cliente,direccion,cp,
poblacion,provincia,tarjeta) select nionencargostarjeta.tienda,unionencargostarjeta.tipogla,
unionencargostarjeta.tipoencargo,unionencargostarjeta.importeprevisto,
unionencargostarjeta.fechaencargo,unionencargostarjeta.codigocliente,
unionencargostarjeta.nombre,unionencargostarjeta.direccion,
unionencargostarjeta.cp,unionencargostarjeta.poblacion,
unionencargostarjeta.provincia,unionencargostarjeta.tarjeta  from unionencargostarjeta  where (( unionencargostarjeta.tienda = 'BOULEVARD' ) )
Lo que hago es meter en una tabla los datos uqe me devuelve una select que despues vuelco a un excel pero ahora quiero mejorarla. Tengo problemas si dos personas usan a la vez el programa ya que una select machaca a la otra y yo habia pensado añadirle a la tabla el campo usuario y a la vez que meto esos datos meter el usuario que lo tengo guardado en una variable pero no encuentro la forma de hacerlo. Lo quie quiero es que si alguien ejecuta el programa inserte sus lineas con su usuario y sean esas las que vuelque al excel, ahora mismo si alguien lo ejecuta añade las lineas y si alguien a la vez tambien lo ejecuta se machacan los datos y no se muestran correctamente en los excel
¿Alguien me puede ayudar o darme otra solucion? Muchisimas gracias
__________________
Manoli
Responder Con Cita
  #2 (permalink)  
Antiguo 11-07-2005, 11:56:56
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.490
J.M.Movilla Valoración +2
Predeterminado

Hola, Manoli... Ya pensé que te habías olvidado de nosotros... Fíjate si habrá pasado tiempo que hasta cumpliste un añito más y no brindaste por nosotros...

Bueno, tu problema surge sistemáticamente cuando varios clientes generan el mismo informe con distintas condiciones. Yo tengo solucionado este tema de la siguiente forma:

En cada cliente he creado una carpeta con el mismo nombre que la Aplicación. En ese directorio tengo una base de datos, igual para todos los clientes, pero lógicamente distinta, porque cada uno usa la suya (C:\NombreAplicación\MiBD.mdb). Ahí genero las tablas que voy a usar en los reportes o informes o listados... Y de esta forma, como cada cliente usa distintas tablas, pueden perfectamente trabajar todos al tiempo, y cada cual respeta el trabajo del vecino.

Sé que alguien que sepa solucionarlo de una forma "científica" se mostrará sorprendido de mi ingenuidad... Pero a mí me va muy bien este sistema, aunque sea rudimentario... No obstante, este es el momento para decir: Pues eso tiene una solución más lógica, que es tal y cual...

Bueno, que me agrada volver a saber de ti. Y que ojalá quede resuelto tu problema.
__________________
José María Movilla Cuadrado
______________________
www.foro.vb-mundo.com
www.vb-mundo.com

Responder Con Cita
  #3 (permalink)  
Antiguo 11-07-2005, 12:03:24
Avatar de kaskybrime
Buena Participación en el Foro
 
Registrado: abr 2004
Ubicación: Bilbao
Posts: 65
kaskybrime Valoración +2
Contactar con kaskybrime a través de MSN
Predeterminado Hola!

Encantada del reencuentro!!
el problema de tu solucion es que la base de datos está en el servidor y no hay mas que esa para todo el mundo, no me puedo estar creando sitios para cada usuario. Otra solucion rudimentaria, que es la que yo tenia antes, era en vez de usar un insert ir volcando linea a linea en la tabla y añadiendole el usuario en ese campo, pero usé un insert para reducir el tiempo de ejecucion y mira por donde que igual me toca volver a ese metodo....
__________________
Manoli
Responder Con Cita
  #4 (permalink)  
Antiguo 11-07-2005, 12:05:27
Avatar de acalanto
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.307
acalanto ha deshabilitado la reputación
Predeterminado

Te has planteado la posibilidad de insertar el resultado directamente en Excel en vez de crear la tabla intermedia ?.

Otra cosa que puedes probar es insertar un campo TIENDA en la tabla que recibe, de esta forma aunque dos usuarios ejecuten la consulta, estos se actualizarán unívocamente en la tabla (Agrupados por tienda).



PD: Estoy observando que J.M.Movilla ya ha hecho de las suyas y se me ha adelantado. En cualquier caso asigna mayor peso específico a su respuesta (En bases de datos él es el maestro y yo el mancebo de la botica) y encantado de verte de nuevo entre nosotros.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #5 (permalink)  
Antiguo 11-07-2005, 12:11:22
Avatar de kaskybrime
Buena Participación en el Foro
 
Registrado: abr 2004
Ubicación: Bilbao
Posts: 65
kaskybrime Valoración +2
Contactar con kaskybrime a través de MSN
Predeterminado hola

jo, creo que me he explicado a medias, bueno, aqui va lo que me comí antes. A parte de ese insert hago otro mas y cuando tengo los datos de los dos insert juntitos en la tabla les hago un filtro de importe, por eso no puedo volcarlos directamente en el excel.
Lo que me dices de la tienda no se si es lo que yo he hecho. En la tabla que junto los dos insert he añadido el campo usuario que es el que se informaria con el nombre de la persona que ejecuta el programa y que lo tengo guardado en la variable vUsuario. Pero como no se como informarlo....
__________________
Manoli
Responder Con Cita
  #6 (permalink)  
Antiguo 11-07-2005, 12:30:43
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.490
J.M.Movilla Valoración +2
Predeterminado

Algo no he aclarado adecuadamente, puesto que no has interpretado bien mi mensaje... Por supuesto que la base de datos es ÚNICA y está EN EL SERVIDOR... Lo que yo te decía era crear un fichero con las tablas que tú vayas a emplear de forma TEMPORAL... Ésas son las que tendrá cada cliente en su propio disco duro... y ésas son las que actualiza cada cliente en sus informes. Por eso nadie machaca nada a nadie.
__________________
José María Movilla Cuadrado
______________________
www.foro.vb-mundo.com
www.vb-mundo.com

Responder Con Cita
  #7 (permalink)  
Antiguo 11-07-2005, 12:34:02
Avatar de kaskybrime
Buena Participación en el Foro
 
Registrado: abr 2004
Ubicación: Bilbao
Posts: 65
kaskybrime Valoración +2
Contactar con kaskybrime a través de MSN
Predeterminado

no, no puedo hacer eso, piensa que tenemos clientes en bilbao, barakaldo, vitoria...yo no puedo ir ordenador a ordenador creando esas carpetas. Se me acaba de ocurrir algo que aunque no es la mejor solucion del mundo podría servir como algo provisional, si me funciona os lo cuento.
__________________
Manoli
Responder Con Cita
  #8 (permalink)  
Antiguo 11-07-2005, 12:39:28
Avatar de kaskybrime
Buena Participación en el Foro
 
Registrado: abr 2004
Ubicación: Bilbao
Posts: 65
kaskybrime Valoración +2
Contactar con kaskybrime a través de MSN
Predeterminado

aqui va la solucion chapucilla. En mi pantalla hay muchos filtros, yo los voy recorriendo y concatenando una select que es la que ejecuto para insertar en la tabla el resultado de esa select. Lo que hago es paralela a esa concatenacion voy haciendo otra que usaré con un update. De forma que si primero hago una select de clientes de barakaldo con codigo postal 48012 luego hago un update de usuario ='manoli' de los clientes de barakaldo con codigopostal 48012 y a la hora de mostrar saco solo los que tengan mi usuario, asi dejo los datos de los demas en paz. El problema es que dos personas ejecuten a la vez usando los mismos filtros pero mira que eso sería una jodia casualidad.... como tampoco es un programa que se vaya a usar con excesiva frecuencia confiemos en que no ocurra. Y ademas, haciendolo de esta forma un unico usuario incluso podria ejecutarlo varias veces con distintos filtros.
__________________
Manoli
Responder Con Cita
  #9 (permalink)  
Antiguo 11-07-2005, 15:40:34
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.490
J.M.Movilla Valoración +2
Predeterminado

Bueno, esa fórmula tuya viene a buscar el mismo resultado que la mía... Que cada uno utilice su específico fichero temporal... Ojalá te resulte. Siempre puedes haces una previa comprobación de que no exista ya el fichero que van a utilizar...
__________________
José María Movilla Cuadrado
______________________
www.foro.vb-mundo.com
www.vb-mundo.com

Responder Con Cita
Respuesta


Herramientas
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
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Se puede hacer un Insert (select) con autonumerico raco sql 2000 3 18-04-2008 20:21:04
Problema con SELECt jtcobo Lenguaje SQL 2 29-09-2007 07:58:26
Problema con INSERT INTO leosantafesino Visual Basic 6.00 1 21-06-2007 22:25:28
problema con insert y fecha jhanluigui sql 2000 8 08-06-2005 16:26:58
Una Simple sobre SELECT INSERT Xavie Visual Basic 6.00 14 17-09-2004 01:00:00


La franja horaria es GMT. Ahora son las 06:21:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right