| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Aris Invitado
|
Publicado: Jue 28 Abr, 2005 9:26 am Asunto: Utilizacion IBTable |
|
|
Mi duda es que si siempre que hago una consulta desde un formulario puedo utilizar el mismo IBTable y la misma Ibquery para todas las consultas, o para cada una de ellas debo utilizar un IBTable y un IBquery distinto
Si puedo utilizar lo mismo, debo tener alguna precaucion utilizando el IbTable y el Ibquery? |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Jue 28 Abr, 2005 3:10 pm Asunto: |
|
|
Que tal Aris,
La misma pregunta me hacia cuando empece a trabajar con C++ Builder. (y todo ha sido de manera autodidacta, por eso a veces me fallan algunas cosas )
Solo por comentarte por cada form que tenia a veces llegaba a tener hasta 15 o 20 componentes IBQuery o IBTable. La verdadera razón de esto es que no sabia que existian los Modulos de Datos. Especificamente diseñados para albergar este tipo de componentes.
Al principio te puede parecer confuso pero una vez que tomes experiencia les puedes sacar mucho provecho. El punto es que si defines algún proceso de manipluación de datos de una BD que se repite en varios forms lo mejor es crear las funciones necesarias en un módulo de datos y lo unico que tienes que hacer es incluir el .h del módulo, en los forms necesarios.
Con ambos componentes podemos seleccionar, modificar, eliminar información de la BD. El QUE y COMO utilizarlos depende de tus necesidades.
Aprender a definir el objetivo de alguna tarea nos ayuda a elegir el mejor componente.
Saludos y cualquier duda, aquí estamos para ayudarnos.
PD. Te recomiendo que leas un poco la ayuda de los componentes F1 _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
Aris Invitado
|
Publicado: Jue 28 Abr, 2005 5:19 pm Asunto: |
|
|
| Gracias Buildero, pero me refiero, cuando quieres utilizar un IBQuery por ejemplo para hacer dos consultas diferentes, sale rentable o es mejor poner dos IBQuerys una para cada consulta |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Jue 28 Abr, 2005 7:15 pm Asunto: |
|
|
Que tal Aris,
Como te lo comente en el post anterior todo depende de tus necesidades y de la complejidad del problema.
Si solo requieres hacer unas cuantas consultas a la BD, puedes utilizar el mismo IBQuery.
Ej.
| Código: |
//Obtener el nombre del cliente cuya clave es 2
AnsiString Nombre;
IBQuery->SQL->Clear();
IBQuery->SQL->Add("SELECT CliNombre FROM CLIENTES WHERE IDCLI = 2");
IBQuery->Open();
Nombre = qryIBQuery->FieldByName("CliNombre")->AsString;
IBQuery->Close();
//Obtener el nombre del proveedor cuya clave es 2
AnsiString Nombre;
IBQuery->SQL->Clear();
IBQuery->SQL->Add("SELECT PrvNombre FROM PROVEEDORES WHERE IDPRV = 2");
IBQuery->Open();
NombrePrv = qryIBQuery->FieldByName("PrvNombre")->AsString;
IBQuery->Close();
|
Como puedes observar se ha utilizado el mismo IBQuery para realizar las dos consultas.
Toma en cuenta que aquí estamos agregando la consulta al "vuelo", pero también la puedes agregar de manera explicita haciendo clic en la propiedad SQL del componente.
Saludos _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Jue 28 Abr, 2005 7:18 pm Asunto: |
|
|
Perdon pero me falto declarar corectamente el nombre de las variables
Quedaría asi:
| Código: |
//Obtener el nombre del cliente cuya clave es 2
AnsiString NombreCli, NombrePrv;
IBQuery->SQL->Clear();
IBQuery->SQL->Add("SELECT CliNombre FROM CLIENTES WHERE IDCLI = 2");
IBQuery->Open();
NombreCli = qryIBQuery->FieldByName("CliNombre")->AsString;
IBQuery->Close();
//Obtener el nombre del proveedor cuya clave es 2
IBQuery->SQL->Clear();
IBQuery->SQL->Add("SELECT PrvNombre FROM PROVEEDORES WHERE IDPRV = 2");
IBQuery->Open();
NombrePrv = qryIBQuery->FieldByName("PrvNombre")->AsString;
IBQuery->Close();
|
Saludos _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
|