Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-12-2011
mizzard mizzard is offline
Miembro
 
Registrado: Feb 2011
Posts: 100
Poder: 8
mizzard Va por buen camino
Problemas visualizacion info en red usando ADOQuery

Hola, os comento mi problema (un tanto curioso).

Resulta que dispongo de una aplicación que la ubico en una carpeta de red en la que diferentes usuarios tendrán acceso. Simplificando el asunto, digamos que mi aplicación accede a la base de datos de un segundo programa (comercial). El por qué de esto.... simplemente porque el programa comercial se queda cojo en ciertos aspectos y estoy ampliando funcionalidades :P


Como caso curioso he observado que cuando hago una consulta a una tabla del programa comercial y muestro la informacion en mi programa, cuando intento añadir informacion adicional desde el programa comercial en esa tabla (con mi programa visualizando esa tabla) el programa se queda colgado hasta que no hago otro query... no se si me explico, pongamos por caso este codigo:

Código:
	frmPrincipal->qryMostrarEntrada->Close();
	frmPrincipal->qryMostrarEntrada->SQL->Clear();
	strSQL = "SELECT *";
	strSQL = strSQL + " WHERE [CodFabricacion] = " + leerOF;
	frmPrincipal->qryMostrarEntrada->SQL->Add(strSQL);
	frmPrincipal->qryMostrarEntrada->Active = true;
En el cual muestro en mi programa la tabla de la base de datos del programa comercial.

Pongamos por caso que ahora deseo añadir una nueva informacion (seria dentro del * que aparece en el select) manteniendo mi programa abierto y es cuando el programa comercial se queda enganchado.

He observado que cuando pulso en otro boton de mi programa que contiene esta linea de codigo:

Código:
	frmPrincipal->qryMostrarClientes->Close();
	frmPrincipal->qryMostrarClientes->SQL->Clear();
	strSQL = "SELECT *";
	strSQL = strSQL + " WHERE [Codigo] LIKE '43000%' ORDER BY [Codigo]";
	frmPrincipal->qryMostrarClientes->SQL->Add(strSQL);
	frmPrincipal->qryMostrarClientes->Active = true;
que no tiene nada que ver con la informacion mostrada es cuando se desengancha.

He probado a realizar diferentes supuestos y efectivamente cuando hago una nueva consulta (da igual cual sea), es cuando el programa comercial funciona perfectamente aun estando abierto el mio.

Es por lo cual me surge la siguiente duda....

Debido a que el problema esta solucionado colocando el segundo fragmento de codigo que he puesto, pero que a lo que solucionar un problema entendiendo el por que, no me convence....

Sabeis el por qué se debe esto y como podria solucionarlo de una manera "mas profesional".


Muchas gracias a todos, en especial al interes mostrado en ecfisa y _cero_ que tanto me han ayudado en cuestiones previas y que hacen que este foro sea un lugar con una fuente de conocimiento muy amplia
Responder Con Cita
  #2  
Antiguo 20-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: Dec 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.122
Poder: 30
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola mizzard.

Mirando esta parte de tu código:
Código:
 
 strSQL = "SELECT *";
 strSQL = strSQL + " WHERE [CodFabricacion] = " + leerOf;
La cadena que queda formada en strSQL es "SELECT * WHERE[CodFabricacion] = "+ (valor de la variable leerOF). En ambos códigos te estaría faltando la cláusula FROM.

Probá hacerlo de este modo:
Código:
  ...
  qryMostrarEntrada->Close();
  qryMostrarEntrada->SQL->Clear();
  qryMostrarEntrada->SQL->Add("SELECT * FROM TU_TABLA WHERE CodFabricacion = :VALOR");
  qryMostrarEntrada->Parameters->ParamByName("VALOR")->Value = leerOF;
  qryMostrarEntrada->Open();
Donde "TU_TABLA" sería el nombre de la tabla de donde extraes los datos.

Y para el segundo caso:
Código:
 ...
 qryMostrarEntrada->Close();
 qryMostrarEntrada->SQL->Clear();
 qryMostrarEntrada->SQL->Add("SELECT * FROM TU_TABLA WHERE CodFabricacion LIKE :VALOR");
 qryMostrarEntrada->Parameters->ParamByName("VALOR")->Value = leerOF + "%";
 qryMostrarEntrada->Open();
Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 20-12-2011
mizzard mizzard is offline
Miembro
 
Registrado: Feb 2011
Posts: 100
Poder: 8
mizzard Va por buen camino
Hola, gracias por la respuesta. Tienes razón al copiar y pegar se me olvido poner la parte donde hacia referencia a la clausula from (quite codigo y se me olvido pegar eso).

De la forma que me comentas no soluciona nada, el problema no lo tengo al visualizar la informacion, puesto q se visualiza. El problema esta en que necesito que se visualice la informacion y que deje las tablas libres para que el otro programa pueda hacer operaciones sin que se quede enganchado.

La segunda consulta que hago es pq he comprobado que si lo pongo no se queda enganchado en donde digo, pero no le veo sentido pq esa consulta no tiene nada que ver con la informacion mostrada.

Yo creo que se trata que me falta por poner alguna linea de codigo que libere el acceso a esa tabla.

PD: he probado con cerrar el query y limpiar el string SQL:
Código:
	frmPrincipal->qryDetalleEntrada->Close();
	frmPrincipal->qryDetalleEntrada->SQL->Clear();
Y tampoco funciona
Responder Con Cita
Respuesta


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
De D6,D7 a D2007 : Problemas con visualización old_martinez Varios 2 17-03-2009 14:16:38
Problemas Guardando Info en Firebird wonder boy Conexión con bases de datos 6 31-03-2008 22:22:01
consulta a campo datetime de access usando adoquery JESUSNET Conexión con bases de datos 5 13-10-2007 02:08:34
problemas con visualizacion en winxp seb@ OOP 1 07-08-2005 15:19:51
Problemas con update usando adoquery albertron Conexión con bases de datos 2 16-01-2004 14:42:58


La franja horaria es GMT +2. Ahora son las 16:57:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi