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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-07-2010
Avatar de Gimli
Gimli Gimli is offline
Miembro
 
Registrado: may 2008
Ubicación: Castilla La Mancha
Posts: 40
Poder: 0
Gimli Va por buen camino
Question FireBird + Delphi 7

Hola, me estoy planteando cambiar de base de datos
y queria saber que os parece FireBird
¿da problemas?, ¿es rapida?, ¿se corrompe?, ¿tiene alguna limitación?

Además me gustaría que alguien desde la experiencia me recomendara
algún componente para usar fireBird desde delphi7 lo más completo posible
con dabaBases para usar los tipicos append, edit, post, findkey, setrange, etc.. y no tener que usar sentencias SQL siempre

Gracias y saludos
Responder Con Cita
  #2  
Antiguo 09-07-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 11
mcs Va por buen camino
Hola,

Por aquí me recomendaron el Firebird (imagino que Casimiro Noteví, es un gran fan del Firebird! ), y la verdad es que estoy bastante contento con ella. Es un buen gestor de bases de datos, tiene la versión embedded (que además funciona como la versión normal), es rápida, y por el momento no da problemas.

Pero claro, siempre hay inconvenientes: no tiene campos autonuméricos (se usa un generador más un trigger, y todo arreglado), no tiene campos booleanos (se pueden definir, y algunos componentes los entienden), y la documentación deja un poco que desear (pero yo soy muy exigente en el tema documentación!).

Sobre componentes de acceso a datos... Yo te recomiendo los IBDAC (al final voy a pedir comisión a los creadores, siempre los recomiendo :P). Son como el BDE, pero con Firebird/Interbase y con código moderno. Seguirás usando las TTable, pero ahora se llamarán TIBCTable, los TQuery->TIBCQuery, etc. Y se usa sin problema las funciones edit, post, append, findkey, locate, filterby, etc... A mi me gustan mucho, y sólo uso el SQL para updates grandes o para las querys.

Además, lleva una utilidad para migrar de BDE a IBDAC, que a veces tambien sirve. Pero yo he usado los componentes estos tanto para migrar aplicaciones BDE a Firebird, como para empezar aplicaciones de 0.

Saludos,

Marc
Responder Con Cita
  #3  
Antiguo 09-07-2010
Avatar de Gimli
Gimli Gimli is offline
Miembro
 
Registrado: may 2008
Ubicación: Castilla La Mancha
Posts: 40
Poder: 0
Gimli Va por buen camino
http://www.devart.com/ibdac/
http://www.devart.com/dbx/interbase/

El componente que me recomiendas es el primero o el segundo?
Responder Con Cita
  #4  
Antiguo 09-07-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 11
mcs Va por buen camino
El primero es el que uso.

El segundo es un driver para acceder a Interbase/Firebird a traves de dbExpress.

O sea que yo te recomiendo el primero, porque el segundo no lo conozco...
Responder Con Cita
  #5  
Antiguo 09-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.498
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Gimli Ver Mensaje
[..]FireBird...
¿da problemas?, ¿es rapida?, ¿se corrompe?, ¿tiene alguna limitación?
Da problemas: ninguno
Es rápida: mucho
Se corrompe: nada
Limitación: No sabe cocinar

Es una muy buena elección, sin duda, aunque deberías de indicar para qué la vas a usar, en qué entorno, red local, monousuario, servidor web, mil usuarios conectados, etc. en fin, cuéntanos algo más.

No sirve de nada ponerse a elegir unos componentes si no sabes qué uso vas a darle después.

p.d.: y por cierto, usa SQL, en caso contrario no estarás sacándole ningún partido, para eso usa access o paradox.
Responder Con Cita
  #6  
Antiguo 09-07-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 11
mcs Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
p.d.: y por cierto, usa SQL, en caso contrario no estarás sacándole ningún partido, para eso usa access o paradox.
no estoy de acuerdo con esto. es mucho más simple, fácil y fiable hacer un tabla.append, asignar las variables y un table.post. Porqué es más fácil? sólo asignas vaiables. Porqué es más fiable? Porqué el propio componente se encarga de mirar y corregir los posibles carácteres que no le gustan al SQL (las comillas, etc). Y para añadir un registro, no le veo ninguna ventaja a usar un INSERT INTO.

Otra cosa es usar el SELECT. Esto es diferente, ya que el usar directamente SQL te da mucha más potencia... Pero para operaciones simples como son añadir o modificar una tabla, el SQL (en mi opinion y gusto) no es necesario.
Responder Con Cita
  #7  
Antiguo 09-07-2010
Avatar de Gimli
Gimli Gimli is offline
Miembro
 
Registrado: may 2008
Ubicación: Castilla La Mancha
Posts: 40
Poder: 0
Gimli Va por buen camino
Anteriormente usaba paradox pero las tablas se estropeanban... a veces con el uso o por que el cliente apagaba mal el equipo, luego cambie a pervasive que es mas robusta pero consume bastantes recursos y para aplicaciones que tengan que estar en red local con tablas con miles o millones de registros es lentisima

¿La habeís probado con una base de datos en red con más de 5 puestos atacandole simultaneamente?
¿Como se comporta con tablas con miles de registros? ¿busca y filtra rapido por cualquier campo?

El uso que le quiero dar es para todos los casos, pues si funciona bien migraria todas las aplicaciones (con el tiempo) a esta base de datos,
y unas aplicaciones son de almacenamiento masivo de datos,
otras prima la velocidad, otras la respuesta en red a los terminales conectados

Saludos
Responder Con Cita
  #8  
Antiguo 09-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.498
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por mcs Ver Mensaje
no estoy de acuerdo con esto. es mucho más simple, fácil y fiable hacer un tabla.append, asignar las variables y un table.post. Porqué es más fácil? sólo asignas vaiables. Porqué es más fiable? Porqué el propio componente se encarga de mirar y corregir los posibles carácteres que no le gustan al SQL (las comillas, etc). Y para añadir un registro, no le veo ninguna ventaja a usar un INSERT INTO.
[..]
vale, entonces por qué preguntas, si no te gusta la respuesta
Responder Con Cita
  #9  
Antiguo 09-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.657
Poder: 19
Caral Va por buen camino
Hola
Cita:
Empezado por mcs Ver Mensaje
no estoy de acuerdo con esto. es mucho más simple, fácil y fiable hacer un tabla.append, asignar las variables y un table.post. Porqué es más fácil? sólo asignas vaiables. Porqué es más fiable? Porqué el propio componente se encarga de mirar y corregir los posibles carácteres que no le gustan al SQL (las comillas, etc). Y para añadir un registro, no le veo ninguna ventaja a usar un INSERT INTO.

Otra cosa es usar el SELECT. Esto es diferente, ya que el usar directamente SQL te da mucha más potencia... Pero para operaciones simples como son añadir o modificar una tabla, el SQL (en mi opinion y gusto) no es necesario.
Esto es totalmente contradictorio.
Si no usas insert por comodidad, como dices usar Select por potencia?.
Cuando usas una tabla estas usando un Select *.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #10  
Antiguo 09-07-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 11
mcs Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
vale, entonces por qué preguntas, si no te gusta la respuesta
Es que yo no preguntaba... Lo preguntaba Gimli. Yo solo daba mi opinión...
Responder Con Cita
  #11  
Antiguo 09-07-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 11
mcs Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola

Esto es totalmente contradictorio.
Si no usas insert por comodidad, como dices usar Select por potencia?.
Cuando usas una tabla estas usando un Select *.
Saludos
No veo que sea contradictorio. Con un Insert no vas a hacer "florituras", mientras que con un select puedes enlazar tropecientas tablas, crear campos inexistentes (el típico SUM(importe) AS total), unir dos tablas (SELECT * FROM a UNION SELECT * FROM b)... Cosas que con las funciones de un TTable diría (ni lo he intentado) que no se puede hacer.

Por esto mismo he dicho lo de actualizar UN registro. Si tienes el registro 25 abierto en un form, encuentro más fácil hacer un
Código:
tabla1.edit();
tabla1VALOR1.asString():=editvalor1.text();
tabla1.post();
, que no un
Código:
query1.sql.clean(); 
query1.sql.add('UDPATE tabla1 SET valor1=:VAL1 WHERE id=:ID');
query1.paramByName('ID').asInteger:=variableId;
query1.paramByName('VAL1').asString():=editValor1.Text();
query1.execute();  // o es un open()? he ejecutado alguna vez un update, pero no recuerdo como...
Logicamente es cuestión de gustos, pero no sé, yo lo encuentro más simple así...

Saludos,

Marc
Responder Con Cita
  #12  
Antiguo 09-07-2010
Avatar de Gimli
Gimli Gimli is offline
Miembro
 
Registrado: may 2008
Ubicación: Castilla La Mancha
Posts: 40
Poder: 0
Gimli Va por buen camino
Os desviais del tema completamente
Algunos estais mezclando mis post con los de otro usuario...

Retomemos el tema de firebird y delphi 7

Los puntos son:
¿cual es el mejor componente para usar firebird desde delphi7?
que permita usar las caracteristicas que usan la Ttables con paradox,
para que la migracion de los programas no sea traumatica

Y segundo punto, es firebird una base de datos fiable, rapida y estable

saludos
Responder Con Cita
  #13  
Antiguo 09-07-2010
Avatar de Gimli
Gimli Gimli is offline
Miembro
 
Registrado: may 2008
Ubicación: Castilla La Mancha
Posts: 40
Poder: 0
Gimli Va por buen camino
Posteo esta información que he puesto antes y creo que a sido pasada por alto:

Anteriormente usaba paradox pero las tablas se estropeanban... a veces con el uso o por que el cliente apagaba mal el equipo, luego cambie a pervasive que es mas robusta pero consume bastantes recursos y para aplicaciones que tengan que estar en red local con tablas con miles o millones de registros es lentisima

¿La habeís probado con una base de datos en red con más de 5 puestos atacandole simultaneamente?
¿Como se comporta con tablas con miles de registros? ¿busca y filtra rapido por cualquier campo?

El uso que le quiero dar es para todos los casos, pues si funciona bien migraria todas las aplicaciones (con el tiempo) a esta base de datos,
y unas aplicaciones son de almacenamiento masivo de datos,
otras prima la velocidad, otras la respuesta en red a los terminales conectados

Saludos
Responder Con Cita
  #14  
Antiguo 09-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.657
Poder: 19
Caral Va por buen camino
Hola
Cita:
Empezado por mcs Ver Mensaje
Por esto mismo he dicho lo de actualizar UN registro. Si tienes el registro 25 abierto en un form, encuentro más fácil hacer un
Código:
tabla1.edit();
tabla1VALOR1.asString():=editvalor1.text();
tabla1.post();
Aqui tu mismo lo dices: si tienes la tabla abierta, eso quiere decir que ya hiciste un Select * form tabla, aunque sea para hacer un simple edit.
Osea, llamaste a todos los registros de la tabla para insertar, actualizar o lo que sea de un solo campo.
Si la tabla contiene pocos registros esta bien, pero si contiene muchos se hara muy lento.
Intenta hacer una consulta con un table a una tabla con muchos registros via internet, puedes ir a tomarte un cafe mientras te envia el dato.

Cita:
Empezado por mcs Ver Mensaje
, que no un
Código:
query1.sql.clean(); 
query1.sql.add('UDPATE tabla1 SET valor1=:VAL1 WHERE id=:ID');
query1.paramByName('ID').asInteger:=variableId;
query1.paramByName('VAL1').asString():=editValor1.Text();
query1.execute();  // o es un open()? he ejecutado alguna vez un update, pero no recuerdo como...
Aqui por el contrario trabajaste un poco mas en el codigo, pero el programa. la actualizacion o lo que se quiera hacer sera mucho mas eficiente, rapida y efectiva, repito, en tablas con mucho contenido.
Nota: es query1.ExecSQL;

Cita:
Empezado por mcs Ver Mensaje
Logicamente es cuestión de gustos, pero no sé, yo lo encuentro más simple así...
Para mi no es un asunto de gustos, es un asunto de programacion.
Si se hacen las cosas bien, se hacen una vez.
El dia que crezca la tabla el cliente te llamara para decirte que el programa esta muy lento y tendras que recurrir al sql, te guste o no, sea mas facil o no.
Saludos
PD: No pretendo contradecirte, es solo mi opinion.
__________________
Siempre Novato
Responder Con Cita
  #15  
Antiguo 09-07-2010
Avatar de Gimli
Gimli Gimli is offline
Miembro
 
Registrado: may 2008
Ubicación: Castilla La Mancha
Posts: 40
Poder: 0
Gimli Va por buen camino
valla tela!

si quereis discutir que es mejor si las SQLs o los dataBases
abrir otro tema, por favor
Responder Con Cita
  #16  
Antiguo 09-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.657
Poder: 19
Caral Va por buen camino
Hola
Es el mismo tema ya que dependiendo de los componentes se pueden hacer cosas de cosas.
A tu Pregunta CONCRETA: IB, Paleta Interbase.
Simple, transparente, eficiente, facil. etc. etc.......
Ahora tambien esta Zeos (cuestion de gustos)
Saludos
__________________
Siempre Novato
Responder Con Cita
  #17  
Antiguo 09-07-2010
Avatar de Gimli
Gimli Gimli is offline
Miembro
 
Registrado: may 2008
Ubicación: Castilla La Mancha
Posts: 40
Poder: 0
Gimli Va por buen camino
¿Con la paleta interBase de Delphi 7 puedo conectar con firebird? ¿como?
Responder Con Cita
  #18  
Antiguo 09-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.657
Poder: 19
Caral Va por buen camino
Hola
Valla tela , ahora te apetece cambiar de tema.....

Este tutorial te ayudara en lo que buscas.
Presiona aqui, con paciencia.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #19  
Antiguo 09-07-2010
Avatar de Gimli
Gimli Gimli is offline
Miembro
 
Registrado: may 2008
Ubicación: Castilla La Mancha
Posts: 40
Poder: 0
Gimli Va por buen camino
OK gracias, perdona por lo de antes pero parecia que ibais a enzarzaros en un discusion de gustos personales...

¿La habeís probado con más de 5 pcs atacandole simultaneamente a traves una red local?
¿Como se comporta con tablas con miles de registros? ¿busca y filtra rapido por cualquier campo?
Responder Con Cita
  #20  
Antiguo 09-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.657
Poder: 19
Caral Va por buen camino
Hola
No puedo hablar por los demas.
En mi caso:
Tengo 7 ordenadores conectados a la BD simultaneamente sin problemas.
Eso si, Tratamos de no atacarla.........
Saludos
PD: Firebird se comporta muy bien, no le tengas miedo, duro con ella...
__________________
Siempre Novato
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Delphi 6 y Firebird 2.1 Pedro-Juan Conexión con bases de datos 7 21-09-2008 00:22:51
Firebird y Delphi 7 miguel_e Conexión con bases de datos 2 16-11-2007 18:11:23
firebird y delphi.net julyus Firebird e Interbase 2 25-10-2006 15:48:51
Delphi 5 y Firebird alexcabo Firebird e Interbase 3 18-07-2006 01:40:24
Firebird en Delphi JXJ Firebird e Interbase 3 04-11-2005 20:19:48


La franja horaria es GMT +2. Ahora son las 21:23:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi