Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-02-2009
Avatar de MichelH
MichelH MichelH is offline
Miembro
 
Registrado: jul 2005
Ubicación: jalisco mexico
Posts: 44
Poder: 0
MichelH Va por buen camino
Exclamation Firebird: IBDataSet ó IBTable

Estoy empezado con Firebird y delphi2009
Y segui el tutorial de TeraWiki para la conexion con firebird

Pero al querer configurar el IBDataSet me manda un error (Unable to determinate field names for IBDataSet1)
Pero al usar IBTable si puedo abrir la tabla sin problemas.

Quiero saber cual de los 2 componentes es mejor usar para un catalogo de ciudades donde voy a hacer altas edicion y bajas. Y si es el IBDataSet como resuelvo ese error
__________________
No hay misterios, sólo hay falta de información.
Tampoco hay milagros, sólo hay hechos científicos ignorados

Última edición por MichelH fecha: 19-02-2009 a las 20:55:33.
Responder Con Cita
  #2  
Antiguo 19-02-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
A ver, según entiendo yo, para mostrar tus datos necesitas un Dataset. Este dataset necesita un origen de datos, que puede ser un TTable o un TQuery (o incluso un TClienteDataSet).
Puedo estar equivocado, pero según yo, un TDataset por si solo no funcionaría.
__________________

Responder Con Cita
  #3  
Antiguo 19-02-2009
Avatar de MichelH
MichelH MichelH is offline
Miembro
 
Registrado: jul 2005
Ubicación: jalisco mexico
Posts: 44
Poder: 0
MichelH Va por buen camino
Pues si pero estoy siguiendo las instrucciones del tutorial y me sale ese error
http://wiki.clubdelphi.com/wiki/index.php/Tutorial_Conexi%C3%B3n_con_Firebird_desde_Turbo_Delphi_(Parte_II)
__________________
No hay misterios, sólo hay falta de información.
Tampoco hay milagros, sólo hay hechos científicos ignorados
Responder Con Cita
  #4  
Antiguo 19-02-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
ya, estoy confundiendo un dataset con un datasource, mil disculpas.
__________________

Responder Con Cita
  #5  
Antiguo 20-02-2009
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Si usas un IBDataSet, debes configurar sus propiedades SelectSQL, RefreshSQL, InsertSQL y UpdateSQL,
mediante el DataSet Editor (boton derecho sobre el componente) o directamente a mano le pones las sentencias SQL.
Despues con la opcion Fields editor, agregas los campos de la select como persistentes.

La principal y fundamental diferencia entre estos dos componentes, es que el tIBTable cuando se abre, se trae TODOS los registros de la tabla, mientras que el tIBDataSet se trae sólo los registros que cumplen la condicion de la select, con lo que da muuuucho más juego que el tIBTable.

PD: Aunque lo más sencillo sea usar tIBTables, en un entorno cliente-servidor, este tipo de componentes debería estar prohibido usarlos.
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...

Última edición por defcon1_es fecha: 20-02-2009 a las 10:00:26.
Responder Con Cita
  #6  
Antiguo 20-02-2009
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
El DataSet trae muchas ventajas como dice defcon1_es, por ejemplo yo siempre para crear las sentencias en el selectSQL primero pongo algo como:
Código SQL [-]
    select * from PermisosXPerfil

Esa tabla tiene 3 campos, id, idPermiso, idPerfil, si yo veo esto en un DBGrid es algo como:

Cita:
id idPermiso idPerfil
1 1 1
2 1 2
3 2 1
4 2 2
Si vemos, esos datos no son muy dicientes, entonces, yo cambio el selectSQL pero antes de cambiarlo uso el DataSet Editor para crear las sentencias insert, update, delete y refresh, ya que estos son los campo que voy a trabajar

Código SQL [-]
update TPERMISOS_PERFIL
set
  ID = :ID,
  IDPERMISO = :IDPERMISO,
  IDPERFIL = :IDPERFIL
where
  ID = :OLD_ID

Código SQL [-]
insert into TPERMISOS_PERFIL
  (ID, IDPERMISO, IDPERFIL)
values
  (:ID, :IDPERMISO, :IDPERFIL)

Código SQL [-]
delete from TPERMISOS_PERFIL
where
  ID = :OLD_ID

Código SQL [-]
Select 
  CODIGO,
  PERFIL,
  PERMISO
from TPERMISOS_PERFIL 
where
  ID = :ID


Ahora si cambio el selectSQL por:

Código SQL [-]
select pp.*, pm.NOMBRE PERMISO, per.NOMBRE perfil from TPERMISOS_PERFIL pp
left join TPERFILES per on per.ID = pp.IDPERFIL
left join TPERMISOS pm on pm.ID = pp.IDPERMISO
where pp.IDPERFIL = :IDPERFIL
order by pp.IDPERMISO

Así tengo un resultado con menos registros, más datos para mostrar por registro y más entendible:
Cita:
id idPermiso idPerfil Permiso Perfil
1 1 1 leer Admon Administrador
3 2 1 Borrar enAdmon Administrador
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #7  
Antiguo 20-02-2009
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por defcon1_es Ver Mensaje
La principal y fundamental diferencia entre estos dos componentes, es que el tIBTable cuando se abre, se trae TODOS los registros de la tabla...
No si antes de abrirla estableces una condición en su propiedad Filter y pones su propiedad Filtered en True.

Aunque ya no uso IBX por sentirme más completo con dbExpress, hay que reconocer esa particularidad del componente TIBTable, que a diferencia de otros XTable, usa el valor de la propiedad Filter como condición Where de una sentencia SQL Select que ejecuta para abrir el cursor (internamente hace algo como "Select * From Tabla Where Filter").

Por tanto, usar un TIBTable con las propiedades Filter y Filtered debidamente establecidas puede resultar en muchos casos tan eficiente como un TIBDataSet.

Claro que con un TIBDataSet o un TIBQuery se extienden las capacidades, dando mucho más flexibilidad para armar las sentencias SQL, pero no como para "prohibir" a raja tabla (valga la expresión) el uso del TIBTable.

Un abrazo filtrado.

Al González.

Última edición por Al González fecha: 20-02-2009 a las 19:03:31.
Responder Con Cita
  #8  
Antiguo 21-02-2009
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Esa propiedad Filter es muy buena y en migraciones de información de Paradox a Firebird es muy útil ya que muchos usaban las tablas (para rematar abiertas todas todo el tiempo)
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #9  
Antiguo 23-02-2009
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Lo suyo es usar unicamente el TIBDataset, y rellenar solo la propiedad SelectSQL si se quiere solo una query, y las otras si se quiere poder editar los datos.
Siempre uso el dichoso select * from tabla en ambiente cliente servidor sin ningun problema, el componente tiene la propiedad BufferChunks q trae solo los 1000 primeros, y ademas el DBGrid trae solo los necesarios para mostrar en la pantalla..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #10  
Antiguo 10-03-2009
Avatar de MichelH
MichelH MichelH is offline
Miembro
 
Registrado: jul 2005
Ubicación: jalisco mexico
Posts: 44
Poder: 0
MichelH Va por buen camino
Gracias a todos, me quedo con TIBDataset, por lo que comentan estos tienen mucha libertad para crear consultas y edicion, sobre todo edicion directa sobre un DBGrid.
__________________
No hay misterios, sólo hay falta de información.
Tampoco hay milagros, sólo hay hechos científicos ignorados
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ordenar un IbTable sonjeux Conexión con bases de datos 2 27-05-2008 16:03:11
IBTable vs TTable Puche Firebird e Interbase 2 13-07-2006 05:02:54
FindNearest con IbTable thebignico Firebird e Interbase 1 09-05-2005 23:45:26
Filtro Ibtable cisterpe Conexión con bases de datos 6 29-03-2004 18:19:05
IbTable o IbDataset NickName Firebird e Interbase 4 13-09-2003 04:13:26


La franja horaria es GMT +2. Ahora son las 21:10:47.


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