PDA

Ver la Versión Completa : Como usar los Componentes DBExpress...


Ingeniero
20-06-2008, 00:51:09
Saludos!!! Amigos Expertos en Delphi, de este maravillos foro:

...Soy novato utilizando los componentes DBExpress y tengo una BD FireBird, y deseo utilizar este componente, me dicen que puedo utilizar los componentes Ibx pero sucede que tengo la necesidad de utilizar un componente que me permita conectar tambien con Sql u otra BD cliente-servidor, y para no modificar mucho mi aplicacion necesito un componente que me permita solo utilizando este intercambiar datos entre ambas BD, estoy tratando de utilizar los DBExpress pero no se como lo hago, porque cuando intento utilizar el SqlTable de este y trato de insertar registros me da error de "no puede modificar o insertar en un dataset de solo lectura" o algo asi, puede ser que yo haya hecho algo mal, por favor si alguien sabe como puede decirme los pasos para lograr la conexion por tales componentes de forma efectiva. De Antemano, Muchas Gracias...

FGarcia
20-06-2008, 04:13:15
Hola!
Los DBexpress son componentes de manejo unidireccional aunque eso no quiere decir que no se puedan manejar edicion y navegacion de datos.
Estoy empezando a jugar con ellos y con muchos vicios de programacion en bd asi que poco te podria ayudar; pero te recomiendo que busques los ejemplares 17 y 18 -la coleccion completa vale la pena- de la revista sintesis del grupo albor (http://www.grupoalbor.com/).

Caro
21-06-2008, 00:20:34
Hola Ingeniero, como te dice FGarcia los componentes de DBExpress son unidireccionales y de solo lectura, es por eso que te sale el error "no puede modificar o insertar en un dataset de solo lectura", porque estas trabajando directamente sobre el SQLTable. Debe haber un cliente que nos ayude en la navegacion y edicion de los datos que llegaria a ser el ClienteDataSet.

Lo que tienes que hacer es lo siguiente, necesitas un ClientDataSet y un DataSetProvider aparte de tu SQLConnection y tu SQLTable. Debes conectar DataSetProvider con tu SQLTable (DataSet->SQLTable) y tu ClientDataSet con tu DataSetProvider (ProviderName->DataSetProvider).

Ahora cuando queramos registrar o modificar datos en nuestra tabla debes hacerlo mediante el CLientDataSet.


ClientDataSet1.Open;
ClientDataSet1.Insert;
......
......
ClientDataSet1.Post;
ClientDataSet1.UpplyUpdates(0);


ClientDataSet1.UpplyUpdates, esta ultima linea es muy importante
porque es la que aplica los cambios que has hecho.

Saluditos

Al González
21-06-2008, 06:56:07
¡Hola!

Agregando a la excelente respuesta de Caro, subí esta imagen que elaboré hace unas semanas para ilustrar un poco más la conectividad entre los diversos elementos.

http://img522.imageshack.us/img522/205/conectividadentreelemenbp6.jpg (http://imageshack.us)

Donde dice "TSQLDataSet / TSQLQuery" puede ir también TSQLTable.

Un abrazo unidireccional.

Al González. :)