PDA

Ver la Versión Completa : Ejecutar SQL en ClientDataSet


andre
27-05-2003, 14:52:59
Hola amigos,

Estoy probando con el componente ClientDataSet para aprovechar sus propiedades de trabajo offline.

La prioridad es trabajar sobre archivos y eventualmente conectar el programa para actualizar una base de datos. Entonces creo el ClientDataSet en el formulario, luego le asigno a un archivo, despues agrego los campos.

¿Como se ejecuta SQL en el y luego como lo conecto a la base de datos?

Muchas gracias.

__marcsc
27-05-2003, 17:00:29
Hola,

si trabajas con un ClientDataSet conectado directamente a un fichero XML o binario, sin tener un provider que te cargue los datos, no puedes escribir sentencias SQL. Lo que puedes utilizar són filtros o campos agregados, que funcionan de manera similar.

Si lo que quieres simular es un Select where, utiliza un filtro.

Quizás deberías explicar un poco más qué quieres hacer...

Saludos.

andre
27-05-2003, 17:32:25
OK, en realidad quiero aprender como utilizar el componente ClientDataSet en sus 2 formas (offline y online).

La idea es hacer una aplicacion que trabaje desconectada de la base de datos pero utilizando la misma estructura y cuando el usuario necesite, pueda actualizar en la base de datos lo que tiene en su disco rigido.

Muchas gracias.

roman
27-05-2003, 17:48:34
Posteado originalmente por andre
La idea es hacer una aplicacion que trabaje desconectada de la base de datos pero utilizando la misma estructura y cuando el usuario necesite, pueda actualizar en la base de datos lo que tiene en su disco rigido.

Muchas gracias.

Quizá me equivoque pero me parece que lo que deseas no es muy factible. Es decir, el ClientDataSet ciertamente te permite mantener una copia "off-line" de una tabla, mas no de una base de datos de manera que estando "off-line" no hay manera de hacer consultas SQL. De hecho las consultas SQL las harás con otras componentes (como un TQuery o un TSQLConnection) que se conectarán al ClientDataSet mediante un Provider.

// Saludos

andre
27-05-2003, 18:28:29
Es verdad, creo que mal interprete la documentacion de Delphi. Pensaba tener un ClientDataSet por tabla y de alguna manera con un SQLQuery hacer consultas como en una base de datos.

Mi problema se origino cuando lei a respecto de MyBase, habia entendido que es una forma de implementar aplicaciones single-tiered. En el matriz de caracteristicas de Delphi tiene una seccion que dice "Borland MyBase personal XML database engine" y uno de los items es ANSI SQL 92. Entonces empeze a investigar pero no encuentro mucha informacion a respecto.

Perdon por mi ignorancia, pero realmente estoy confundido, o quizas lo enfoque de un punto de vista distinto.

Cual seria la mejor manera de tener una base de datos personal (obviamente sera pequeña) y cuando se desee poder volcar esos datos a una base de datos en un servidor y asi permitir por ejemplo que una aplicacion web consulte esos datos?.

Muchas gracias por su tiempo.

roman
27-05-2003, 18:57:46
Quizá mi respuesta no sea adecuada pero es algo que se me ocurre:

Con la versión 4 de MySql puedes incluir un servidor en la aplicación cliente ("embedded server") con toda o prácticamente toda la funcionalidad de MySql. Cuando leí de esto, (y ha sido muy poco) pensé que podría hacerse algo similar a lo que quieres. Al momento de conectarse al servidor "real" haces una transferencia de datos. No creo que sea así de fácil ya que deberás pensar en como mantener una buena sincronización entre ambos servidores pero puede ser interesante investigar por ahí.

// Saludos

andre
28-05-2003, 14:02:55
OK, muchas gracias por su tiempo, ahora tengo una idea mas clara de ese tema.

Saludos.