Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-02-2005
Fita Fita is offline
Miembro
 
Registrado: jul 2003
Ubicación: Pilar - Argentina
Posts: 216
Poder: 21
Fita Va por buen camino
Question Dudas con IBTable

Hola a todos...

Estoy migrando mis aplicaciones BDE a Interbase y no estoy seguro de utilizar IBTable ya que como novato en Interbase todavía tengo muchas dudas. En principio se ve como un paso rápido a Interbase.
Cualquier comentario al respecto será bienvenido, Gracias!!!
Responder Con Cita
  #2  
Antiguo 23-02-2005
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Lightbulb

Hola FITA...

te puedo contar que en un principio hice el mismo procedimiento que describes... pero me cambie mejor a IBQuery... ya que por sentencias sql puedes realizar más cosas.... y al menos para mi (que no se mucho de sql ) me ha resultado super facil....

Aunque por lo que me han dicho... el codigo Sql (sentencia) es más rápida..
__________________
BlueSteel
Responder Con Cita
  #3  
Antiguo 23-02-2005
Fita Fita is offline
Miembro
 
Registrado: jul 2003
Ubicación: Pilar - Argentina
Posts: 216
Poder: 21
Fita Va por buen camino
Gracias Marcel...

De hecho estoy trabajando que el IBQuery, pero no puedo editar los campos de la tabla directamente. Mis forms tienen una barra de botones que permiten añadir, borrar y modificar un registro. Los campos de cada registro son mostrados por un DBedit enlazado a cada campo... como hago para editar un Query? (con una tabla es Table1.edit, post, etc...)
La solución que encontré (por ahora) fué agregar un form para modificar y uno para añadir con campos edit comunes, muevo los datos a cada edit y luego hago el update del IBQuery. Pero esto me llevaría a modificar toda la aplicación por completo...

Alguna idea?
Responder Con Cita
  #4  
Antiguo 23-02-2005
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Porque todo este esfuerzo si existe el componente IBDataset? probalo a ver q..
Responder Con Cita
  #5  
Antiguo 23-02-2005
pkbza pkbza is offline
Miembro
 
Registrado: may 2004
Posts: 48
Poder: 0
pkbza Va por buen camino
explicate más...

Última edición por pkbza fecha: 23-02-2005 a las 20:21:36.
Responder Con Cita
  #6  
Antiguo 23-02-2005
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Fita, segun lo que entendi tu quieres :

En un Formulario (Clientes, x Ejemplo de 4 campos), realizar el proceso de listar a traves de un DBGrid, Insertar un Registro y eliminar...
Yo lo trabajo de la siguiente Forma :

1 Formulario con los siguientes componentes :

- 1 DBGrid (Enlazado al Datasourse DS_Select )
- 2 IBQuery ( a uno lo llamaremos IBQ_Select y al otros IBQ_Edit )
- 2 IBTransaction ( a uno lo llamaremos IBT_Select y al otro IBT_Edit )
- 1 DataSouse (lo llamaremos DS_Select )
- 2 SpeedButton ( 1 para Insertar y 1 para Eliminar )
- 1 IBDataset (lo llamaremos IBD_Clientes )
- 4 TEdit...Codigo, Nombre, Direccion y Fono

El IBT_Select y el IBT_Edit deberan estar enlazado al IBDataset
El IBQ_Select debera estar enlazado a la Transacción IBT_Select
El IBQ_Edit debera estar enlazado a la Transacción IBT_Edit
Comensamos... entonces

Evento OnCreate del Form1... poner

Seleccionar;

Procedure TForm1.Seleccionar;
Begin
IBQ_Select.Sql.Close;
IBQ_Select.Sql.Clear;
IBQ_Select.Sql.Add('Select * From "Clientes" Order By "Cli_Codigo"');
IBQ_Select.Sql.Open;
End;
// Esto que esta a continuación lo agregar en el evento OnClick del Boton Agregar....

IBQ_Edit.Sql.Clear;
IBQ_Edit.Sql.Add('Insert Into "Clientes" ("Cli_Codigo","Cli_Nombre","Cli_Direccion","Cli_Fono")');
IBQ_Edit.Sql.Add('Values (:codigo, :nombre, :direccion, :fono)');
IBQ_Edit.Params[0].AsString := Codigo.Text;
IBQ_Edit.Params[1].AsString := Nombre.Text;
IBQ_Edit.Params[2].AsString := Direccion.Text;
IBQ_Edit.Params[3].AsString := Fono.Text;
IBQ_Edit.ExecSql;
IBT_Edit.Commit;
IBT_Select.Commit;
Seleccionar;
// Esto que esta a continuación lo agregar en el evento OnClick del Boton Eliminar....

IBQ_Edit.Sql.Clear;
IBQ_Edit.Sql.Add('Select * From "Clientes"');
IBQ_Edit.Sql.Add(Where "Cli_Codigo"=:codigo');
IBQ_Edit.Params[0].AsString := IBQ_Select['Cli_Codigo'];
IBQ_Edit.ExecSql;
IBT_Edit.Commit;
IBT_Select.Commit;
Seleccionar;
Espero que esto te ayude a aclarar algo....
__________________
BlueSteel
Responder Con Cita
  #7  
Antiguo 23-02-2005
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Todo esto se puede hacer solo con el raton en tiempo de diseño, mediante la propiedad SelectSQL del IBDataset y pinchando en el con el boton derecho y con el asistente SQL Editor..
Responder Con Cita
  #8  
Antiguo 27-02-2005
Fita Fita is offline
Miembro
 
Registrado: jul 2003
Ubicación: Pilar - Argentina
Posts: 216
Poder: 21
Fita Va por buen camino
Thumbs up

Ante todo, gracias a todos por las ideas... De a poco voy ordenando la ensalada de conceptos que tengo en el cerebro. Pero mi aplicación ya funciona, habrá que pulir cosas pero funciona.
Obviamente que aun tengo dudas y quiero aprovechar la oportunidad para plantearlas.

1) Como obtengo el total de registros de una tabla ? el IBDataset.Recordcount devuelve 1

2) Estoy utilizando el IBDataset y como aclara Delfino, genera en tiempo de diseño las sentencias SQL, esas sentencias generadas cómo se utilizan ?
Yo hago algo similar a lo de Blue steel.

3) Utilizar IBDataset.Edit e IBDataset.Post esta bien ? o deben utilizarse en qué situaciones?

Saludos !!!
Responder Con Cita
  #9  
Antiguo 01-03-2005
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
A partir de fijar esa&s sentencias sql con el asistente, puedes usar al IBDataset como cualquier otro dataset en casi todo, los metodos edit post insert etc. funcionan lo mismo q en los dataset q conoces, el refresh refresca solo el registro actual y obtener el recordcount se puede mediante una consulta sql (select count(*) from tabla), para esa consulta mejor utilizar el IBSql, de otra de manera tienes q llamar al metodo last y asi recordcount devolvera un numero correcto..
Responder Con Cita
  #10  
Antiguo 02-03-2005
Fita Fita is offline
Miembro
 
Registrado: jul 2003
Ubicación: Pilar - Argentina
Posts: 216
Poder: 21
Fita Va por buen camino
Gracias Delfino...

Agradezco tu respuesta, cada día avanzo y me meto mas en Interbase.
Muchas gracias nuevamente

Un abrazo
Fita
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


La franja horaria es GMT +2. Ahora son las 09:02:19.


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