Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-04-2006
zugazua2001 zugazua2001 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Necochea
Posts: 237
Poder: 20
zugazua2001 Va por buen camino
Mensaje Operation no applicable

Hola amigos del foro, me ha ocurrido algo muy extraño.Yo uso delphi 5 con paradox. Bien arme una aplicacion que utiliza tres modulos que acceden todos con distintos alias a las tablas de mi base de datos(lo defini asi para aumentar la legibilidad de mi aplicacion)
Cuando yo llamo a unos Querys que hago al realizar el Open del query me aparece "OPERACION NOT APLICABLE", como puedo tener mas control sobre mi base de datos, yo utilizo bde.
Detalle de lo realizado:
Cree un modulo lo enlace con mi alias
Dentro meti las tablas y los querys que yo necesitaba
Dentro de cada tabla y query meti un TDataSource.

A la propiedad active de la base de datos le puse active
a la propiedad active de cada una de las tablas y querys le puse false.
Cuando abro desde una ficha la tabla o query realizo el Open y al cerrar la ficha el Close.

Que puede ser que me este ocurriendo?
Esta bien tener las tablas con la propiedad active= False.

Yo hice esto porque de mas de una tabla accedo a la misma tabla fisica y porque tengo definida alguna que otra relacion master-slaves

Saludos y muchisimas gracias
Responder Con Cita
  #2  
Antiguo 03-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Aunque una tabla esté cerrada, debería funcionar la consulta (probado con SELECT), de todas formas, sería bueno ver el SQL de las consultas, igual hace falta abrir las tablas.

Te recomiendo que en diseño lo tengas todo cerrado, tablas, consultas y TDatabases, despues en ejecución, abres lo que necesites, lo normal es abrir por el orden: Tdatabase, Tablas, Consultas.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 03-04-2006
zugazua2001 zugazua2001 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Necochea
Posts: 237
Poder: 20
zugazua2001 Va por buen camino
Por cada ficha que abro es necesario todo.

Hola, muchisimas gracias por la aclaracion.
Por cada ficha que uno abre, es necesario abrir la base, y la tabla o query y al cerrarla tambien cerrar todo?
Yo tambien utilizo alguna que otra relacion Master-Slaves. Como es su correcto empleo?

Muchas gracias por todo.
Cita:
Empezado por Lepe
Aunque una tabla esté cerrada, debería funcionar la consulta (probado con SELECT), de todas formas, sería bueno ver el SQL de las consultas, igual hace falta abrir las tablas.

Te recomiendo que en diseño lo tengas todo cerrado, tablas, consultas y TDatabases, despues en ejecución, abres lo que necesites, lo normal es abrir por el orden: Tdatabase, Tablas, Consultas.

Saludos
Responder Con Cita
  #4  
Antiguo 04-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Sobre ese tema hay discusiones de todo tipo:
- Hay gente que solo abre lo que necesita, despues cierra lo que ha abierto.
- Otros mantienen las tablas abierta todo el tiempo y solo se preocupan de cerrarlas al salir del programa.

Debe tenerse en cuenta la cantidad de tablas que tienes, si son muchas (por poner un número.... digamos más de 100 tablas), deberías abrir y cerrar siempre.

En tiempo de diseño, lo cierro todo. Al abrir el programa abro la Base y Tablas , las consultas las abro y cierro según necesite.

En principio, la Base es necesaria que esté abierta para realizar cualquier operación en la base de datos (incluido abrir y cerrar tablas).

En cuanto a las relaciones Master-Detail:
- Para mostrar datos: Primero se abre la Maestra y despues la Detalle.
- Para añadir registros: Primero se graba la Maestra y despues la Detalle.
- Para borrar: Primero en la Detalle y despues en la Maestra, ya que Paradox, aunque viene las opciones de integridad referencial, no lo tiene implementado.

Un detalle que se me olvidaba: Si tienes los TTables sobre el formulario, pues tendrás que abrirlo. Si tienes los TTables en un Datamodule, puedes dejarlo abierto. Quizás sea bueno poner la Base y TTables en un Datamodule, y despues las consultas sobre el Formulario, pero todo esto depende de la lógica de tu programa, es decir, si quieres abrir dos ventanas de Clientes, cada una mostrando un cliente distinto, tendrás que poner el TTable en el formulario. Si solo permites mostrar una ventana de Clientes al mismo tiempo, puedes poner el TTable en el Datamodule.


Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 04-04-2006 a las 11:02:38.
Responder Con Cita
  #5  
Antiguo 04-04-2006
zugazua2001 zugazua2001 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Necochea
Posts: 237
Poder: 20
zugazua2001 Va por buen camino
excep.. EdbengineError with message Invalid parameters

Ese es el bendito error que me aparece cuando intento ejecutar algun query.
Eso antes no me pasaba. Con las tablas no me tira error.
Hago

Modulo.Query.Close;
Modulo.Query.ParamByName('campo').AsTipo:= Valor;
Modulo.Query.Open;

y ahi me tira el error.
Tengo muchisimas consultas que andaban y de un momento para otro me tiran ese error:

PROJECT RAISED EXCEPTION Class EdbEngineError with message 'Invalid Parameter' Process stopped. Use Stop or Run To Continue.

Si creo otra aplicacion y creo un query en particular no me pasa nada.

Les agradeceria me tiraran alguna idea de que puede ser este error.
Muchas gracias a todos
Responder Con Cita
  #6  
Antiguo 05-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Igual lo has escrito rápido y por eso no lo entiendo bien, supongo que lo tendrás así:

Código SQL [-]
SELECT * FROM MI TABLA WHERE CODIGO = : prCodigo
A los PaRámetros me gusta anteponerles el "pr" para despues no equivocarme con los nombres de campos, no he probado a ponerle el mismo nombre al parámetro que al campo, igual viene los problemas por ahí, no lo sé.

Código Delphi [-]
Modulo.Query.Close;
Modulo.Query.ParamByName('prCodigo').AsTipo:= Valor;
Modulo.Query.Open;

En los parámetros de la consulta verifica el tipo del parámetro, debe ser "Input" igual con las pruebas tiene otro valor.


Si te sigue fallando, pon el código SQL exacto, así como el trozo de código para abrirlo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 05-04-2006 a las 10:05:04.
Responder Con Cita
Respuesta



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
Operation not applicable on filter jymy788 Conexión con bases de datos 2 26-05-2005 15:23:01
Mensaje Invalid Pointer Operation quake2420 Varios 2 25-04-2005 16:43:15
Invalid floating operation?? nefy Varios 8 20-04-2004 19:07:01
Insufficient memory for this operation. ingacg Conexión con bases de datos 1 26-09-2003 03:27:01
Insufficient memory for this operation ingacg Conexión con bases de datos 3 16-07-2003 00:27:05


La franja horaria es GMT +2. Ahora son las 08:29:39.


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