Ver Mensaje Individual
  #10  
Antiguo 02-09-2005
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Reputación: 19
lpmlpm Va por buen camino
Cita:
Empezado por adlfv

Del post de Lpmlpm, tampoco tengo claras algunas cosas ...
Vamos a ello...

Cita:
Comentas que no sueles trabajar con TTable, que sueles trabajar con querys o con ClientDataset. Pero cómo haces si necesitas un TTable? Por qué no sueles usar TTables? Por que si cambias un campo de la BD, se ve muy afectado por errores a consecuencia de dicho cambio? No tengo idea sobre los ClientDataset. Qué ventajas aportan?
Para que puedo necesitar un TTable que no pueda hacer con un TQuery???... Desde donde lo veo, al trabajar con TTables te estas limitando a ti mismo, haz visto lo que se tarda tu programa cuando haces un Open de una tabla de miles de registros???... y una vez que empieza no hay como pararla, aparte de que te limitas a que en ese objeto solo vas a poder acceder a los campos de una sola tabla de tu modelo de base de datos, lo cual resuelves muy facil y elegantemente cuando con una query puedes tomar en un solo dataset información de aqui y de alla, enlazando varias tablas para poder mostrar la información de manera presentable e incluso segun el motor de BD que uses puedes mandar a pedirle al servidor solo los n primeros registros, etc. Como siempre lo he dicho todo a final de cuentas es a gusto personal y a mi no me gusta usar TTables, me siento mucho mas libre cuando uso Querys, además de que va mas a doc, puesto que siempre trabajo con servidores SQL.

Ahora los ClientDataset, estos son una especie de TQuery's especiales donde aparte de la propiedad SQL normal tambien tienen un UpdateSQL, InsertSQL y DeleteSQL, que te permite escribir sentencias SQL para cada una de las operaciones sobre los registros de tu Dataset, asi puedes controlar que cuando se cambie un registro en tu tabla el cambio afecte a solo x campos o bien que se refleje en otras tablas, etc... todo lo que se te ocurra que puedes hacer con sentencias SQL. Un ejemplo de esto es el componente IBDataset de la pestaña de Interbase. Creo que en zeos no existe algo similar, pero en suites como Asta, FIBPlus o IBObjects siempre vas a encontrar un componente que tengas estas características y es que realmente creo que es la forma adecuada de trabajar con componentes de datos.

Cita:
Otra cosita, haces muchas referencias a la palabra "catálogo(s)". A qué te refieres cuando hablas de eso, a los metadatos de la base de datos (el diccionario de datos)?
sorry, igual y es por las discrepancias culturales, yo le llamo catálogos a las tablas de la base de datos y tambien suelo llamarle asi por ende a las formas que las administran... sorry por los malosentendidos, trataré de ser mas claro en lo futuro.

Cita:
El código que adjuntas lo comprendo a medias, pues la parte final no la comprendo bien, es como una forma de agregar condiciones "OR" a la clausula "WHERE"? Y qué consigues con esto? Es como un método de búsqueda por todos los campos donde aparezca un determinado texto? Está interesante ese método, pero no termino de digerirlo ...
es de lo mas sencillo, tal como tu dices la idea del metodo ese es modificar una sql de modo que me devuelva un conjunto de datos con todos aquellos registros en los que encuentre un determinado texto en todos los campos que la query original tenga en su sentencia SELECT... suelo usarlo como dice el ejemplo en mis ventanas de búsquedas, pues para el usuario es muy practico escribir lo que se acuerde de un cliente ya sea su nombra o apellido o seguro social o lo que sea y el sistema le da las opciones de que escoja a quien se refiere específicamente mostrandole las concordancias que encontro... cuando sabes como usar esta tecnica tus sistemas quedan muy muy practicos y la usabilidad de los mismos se incrementa muchisimo.

el resto del algoritmo es adecuar la sentencia a partir de una variable que es donde se especifica como es que el motor de BD utilizado puede interpretar la sentencia de busqueda, por ponerte un ejemplo en MySQL no existe la sentencia CONTAINING solo se puede usar LIKE, pero en Firebird CONTAINING funciona mejor pues busca sin tomar en cuenta mayusculas y minusculas con lo que la busqueda es aun mas genérica... cosas asi son las que resuelves con este tipo de variables de configuración...

Cita:
Me gustaría poder hacer un DataModule genérico, de forma que sólo ponga las tablas y los campos, y al final en la ejecución como que se "transformen" los objetos a una clase más particular conservando los atributos base (como campos, consultas...). Es posible esto? Cómo?
Usa como te digo procedimientos genéricos que trabajen solo con conjuntos TDataset, y deja para tus clases a instanciar la desición final de cual motor de BD es la que se va a usar.

Cita:
Parece mentira, pero estoy trabajando con MySQL, y no he conseguido componentes que no fallen.
Al respecto solo comentar que con MySQL no se cuales sean los mejores componentes pues he trabajado poco con MySQL, vaya ninguna aplicación que le represente un verdadero desafio al motor de BD, los zeos me han funcionado para lo que he necesitado; pero si mi trabajo fuerte lo hago sobre Firebird, y te puedo comentar que los mejores componentes con los que he trabajado por sobre todos los que he usado con todos los motores de base de datos han sido los IBObjects, la integración con el motor de BD es estupenda, puedes actualizar registros individuales en el momento que necesites, es la única suite de todas que maneja sesiones persistentes (mantiene un cursor virtual de la solicitud activa en la base de datos para asi minimizar el tráfico de información por la red lo que la hace rapidisima para conexiones lentas y rápidas), además de que es de lo mas estable que hay. Además de que el motor de Firebird me parece muy superior y por muchisimo al motor de MySQL, las prestaciones son infinitamente superiores.

Cita:
Lástima que no está causando mucho debate este post, pensé que más gente se incorporaría pues es algo muy interesante que desde mi punto de vista, tiene muchas ventajas.
De verdad que tambien yo pensaba que habría mas movimiento por aqui, que mal que despues de mas de 130 visitas al hilo no haya tantas opiniones como uno quisiera. Creo que todos aqui nos dedicamos a esto mismo que aqui estamos discutiendo y es nuestro pan de cada dia, se me hace muy dificil pensar que a solo nosotros nos interese comentar este tipo de temas.

Saludos
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita