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
  #21  
Antiguo 09-07-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Para el amigo mcs, tienes razón es más sencillo, intuitivo y legible atacar las tablas tal como tu lo mencionas, al final cuando haces por ejemplo:
Código Delphi [-]
tabla.open;
tabla.append;
tabla.fieldbyName('micampo').AsString := 'valor';
tabla.post;

El componente que usas en realidad convierte todo eso en un insert (aunque tú no lo veas), lo mismo sucede cuando haces tabla.edit; el componente hará un "update table".

En ambos casos no hay ninguna ventaja apreciable en velocidad haciéndolo mediante la forma que mencionas o la que dice caral. Eso sí, hay que cuidarse de nunca de los nuncas hacer un "select * from tabla" sin ponernle un filtro para editar un solo registro pues entonce sí que tendras problemas de lentitud, pues te traeras todo de un jalón.

La gran ventaja de hacerlo como dices es que no tienes que revolver SQL directamente con tu código, lo que lo hace más legible.

Yo utilizo ese esquema para hacer CRUD (que es lo que más ocupa uno en entornos administrativos) y me ha funcionado sin ningún problema. También uso el esquema de caral cuando se trata de procesos tipo batch que no son interactivos.

Al final de cuentas cualquiera de los 2 métodos es correcto siempre y cuando estén bien aplicados y soportados, cualquiera va a ser lento si se basa en un mál concepto o diseño.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #22  
Antiguo 09-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
A mi escaso entender:
Esto:
Código Delphi [-]
tabla.open;
.............
Es exactamente lo mismo que esto:
Código Delphi [-]
Select * from Tabla

En otras palabras, te traes todo el contenido de la tabla, te guste o no.
Por lo tanto; Es mas simple, SI?, tal vez, pero no es mejor que hacer el edit, insert, ect directamente al campo sin traer nada extra.

Repito: a Mi pequeño, muy pequeño entender.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #23  
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: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Gimli Ver Mensaje
¿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
Los componentes IBX que te ha indicado Caral y también los FIBplus, ambos son de acceso directo. Luego hay varios con "intermediario" como ZeosLib, que tienen una buena pinta también.

Cita:
Empezado por Gimli
Y segundo punto, es firebird una base de datos fiable, rapida y estable
Eso ya lo contesté antes, es muy muy muy fiable, es muy muy muy rápida y es muy muy muy estable.

Cita:
Empezado por Gimli Ver Mensaje
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
Precisamente son dos puntos fuertes de Firebird, está pensada para que no exista problema antes una desconexión de la misma, sea por imprudencia, corte de electricidad, etc.
Igual que está preparada para trabajar con grandes cantidades de datos sin que baje de rendimiento

Cita:
Empezado por Gimli
¿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?
¿5 puestos?, ¿miles de registros?, eso es una broma para firebird. Como ejemplo, uno de mis clientes mantiene alrededor de 500 conexiones todo el día, son unos cien equipos con varios programas que atacan la misma base de datos. El tamaño de la base de datos es superior a los 20 Gigas y los registros no se cuentan por miles, sino por decenas de millones.
Las bases de datos de casi todos mis clientes están por encima de 500 Megas y las conexiones están alrededor de 50 (de media).

Cita:
Empezado por Gimli
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
Perfecto, está pensada para todo eso.

Cita:
Empezado por Gimli
¿Como se comporta con tablas con miles de registros? ¿busca y filtra rapido por cualquier campo?
Ahí es donde entra la parte que le toca al programador, usa sentencias sql eficientes y verás que da igual tener una tabla con un registro o con un millón.

Además debes recordar que con Firebird puedes usar servidores con una amplia variedad de sistemas operativos, puedes instalarlo desde los más pequeños equipos hasta los superordenadores más grandes que existen, ya que funciona en linux (es su entorno natural).
Además es libre y gratis.

Por cierto, aunque me gusta mucho Firebird, yo tampoco descartaba PostgreSQL de la lista.
Responder Con Cita
  #24  
Antiguo 09-07-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Cita:
Empezado por Caral Ver Mensaje
Hola
A mi escaso entender:
Esto:
Código Delphi [-]
tabla.open;
.............
Es exactamente lo mismo que esto:
Código Delphi [-]
Select * from Tabla

En otras palabras, te traes todo el contenido de la tabla, te guste o no.
Por lo tanto; Es mas simple, SI?, tal vez, pero no es mejor que hacer el edit, insert, ect directamente al campo sin traer nada extra.

Repito: a Mi pequeño, muy pequeño entender.
Saludos
Casi nunca uso el TTable o sus decendientes... por lo general uso un query para evitar traerme todos los registros.

Código SQL [-]
select * from tabla where id = :id

y luego hago las modificaciones en ese registro...

Código Delphi [-]
  Query1.edit;
  ...
  Query1.post;

igual trabaja para las inserciones.

Otra opinión no sobra...
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #25  
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: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por movorack
select * from tabla where id = :id
y luego hago las modificaciones en ese registro...
Es lo más sensato.
Responder Con Cita
  #26  
Antiguo 09-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Bueno, como diria mi amigo Egostar: Depende, depende....
Si hablamos de los componentes (y por eso mencione que SI depende de ellos) en el caso de los IBQuery esto no se puede hacer, envia un hermoso error ya que no permiten hacer ediciones, inserciones etc....
Para esto se usarian los IBDataset, que en tal caso lo hacen algo diferente.
Por otro lado:
Me extraña que un programador con la esperiencia de AzidRain diga abiertamente que es lo mismo y que no afecta en la velocidad traer todos los registros con un Table.Open para hacer un edit, inser u otro y que ademas es mas simple.
No se, pero la idea es darle a las personas la solucion optima, la mas apropiada y no la mas simple que dara problemas a la larga.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #27  
Antiguo 09-07-2010
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Ya que se admiten consejos, si me lo permiten... aquí va otro:
Jamás de los jamases se debe emplear asterisco. ¡Es una práctica tediosa e ineficiente! Es algo que hay que erradicar... ¡DI NO a *!

El uso del asterisco obliga al motor realizar dos consultas previas sobre las tablas del sistema: la primera para extraer los campos de dicha tabla, la segunda para pre armar la consulta definitiva. Luego recién se lanza la consulta que se ha elaborado.

Es mucho más liviano y práctico indicar los campos EXTRICTAMENTE NECESARIOS que lanzar un select *. Si admito que es muy molesto e incómodo cuando la tabla tiene demasiados campos, pero en definitiva lo que habría que preguntarse es: ¿Es necesario suministrar todos los campos? Si es un si pues ni modo, a enlistarlos. Si la funcionalidad a la que estamos por brindar soporte no requiere devolver todos los campos... ¿Qué sentido tiene el *?

Otra posibilidad que cabría poner en discusión cuando la cantidad de campos es alta es la de preguntarse si estará bien normalizada. Encontrar un adecuado equilibrio entre la normalización y desnormalización es tanto un arte como una ciencia.



Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #28  
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: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El uso de tablas sólo puede ser factible usarlo con las que tienen pocos registros, por ejemplo:
tbTiposIVA que va a tener menos de 5 registros.

Última edición por Casimiro Notevi fecha: 10-07-2010 a las 20:13:08.
Responder Con Cita
  #29  
Antiguo 09-07-2010
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
El uso de tablas sólo puede factible usarlo con las que tienen pocos registros, por ejemplo:
tbTiposIVA que va a tener menos de 5 registros.
¿ 5 tipos de IVA? Allá... porque por este lado de la tierra los políticos se inventan uno por día. Son capaces de hasta sacar impuesto hasta por el O2 que consumimos... y para hacerlo más chungo... los cálculos del impuesto estarán basados en O2/hora.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #30  
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: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, he dicho 5, pero hay 3 tipos:

El normal: 18% (antes del 1 de julio era del 16% )
El reducido: 8% (antes del 1 de julio era del 7% )
El superreducido: 4% (este no ha cambiado)
El exento: 0% (este es el mejor)

Última edición por Casimiro Notevi fecha: 10-07-2010 a las 20:14:16.
Responder Con Cita
  #31  
Antiguo 10-07-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 17
mcs Va por buen camino
Cita:
Empezado por AzidRain Ver Mensaje
Para el amigo mcs, tienes razón es más sencillo, intuitivo y legible atacar las tablas tal como tu lo mencionas, al final cuando haces por ejemplo:

Código Delphi [-]
tabla.open;
tabla.append;
tabla.fieldbyName('micampo').AsString := 'valor';
tabla.post;





El componente que usas en realidad convierte todo eso en un insert (aunque tú no lo veas), lo mismo sucede cuando haces tabla.edit; el componente hará un "update table".

En ambos casos no hay ninguna ventaja apreciable en velocidad haciéndolo mediante la forma que mencionas o la que dice caral. Eso sí, hay que cuidarse de nunca de los nuncas hacer un "select * from tabla" sin ponernle un filtro para editar un solo registro pues entonce sí que tendras problemas de lentitud, pues te traeras todo de un jalón.

La gran ventaja de hacerlo como dices es que no tienes que revolver SQL directamente con tu código, lo que lo hace más legible.

Yo utilizo ese esquema para hacer CRUD (que es lo que más ocupa uno en entornos administrativos) y me ha funcionado sin ningún problema. También uso el esquema de caral cuando se trata de procesos tipo batch que no son interactivos.

Al final de cuentas cualquiera de los 2 métodos es correcto siempre y cuando estén bien aplicados y soportados, cualquiera va a ser lento si se basa en un mál concepto o diseño.

Esto es lo que me refería!

Por otra parte, diría que en las IBDAC un table.open no equivale a un SELECT * FROM loquesea;. Lo tendría que mirar con detalle (las IBDAC traen un monitor para ver exactamente que comandos SQL se ejecutan)...
Responder Con Cita
  #32  
Antiguo 10-07-2010
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por mcs Ver Mensaje
Esto es lo que me refería!

Por otra parte, diría que en las IBDAC un table.open no equivale a un SELECT * FROM loquesea;. Lo tendría que mirar con detalle (las IBDAC traen un monitor para ver exactamente que comandos SQL se ejecutan)...
Perdón, pero un Table.Open de cualquier componente, traé SI ó SI todos los campos de la tabla es decir
Código SQL [-]
SELECT * FROM tabla
, puedes limitar el número de registros a través de un filtro. Eso es lo que Caral está comentando desde un inicio, con el Query puedes seleccionar los campos que realmente necesitas ahorrando tiempo y recursos.

Saludos
Responder Con Cita
  #33  
Antiguo 10-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por egostar Ver Mensaje
Perdón, pero un Table.Open de cualquier componente, traé SI ó SI todos los campos de la tabla es decir Código SQL [-]SELECT * FROM tabla

, puedes limitar el número de registros a través de un filtro. Eso es lo que Caral está comentando desde un inicio, con el Query puedes seleccionar los campos que realmente necesitas ahorrando tiempo y recursos.

Saludos
Más claro no se puede decir

El sistema de tablas está bien cuando son relativamente pocos registros, pero según vayan aumentando cada vez será más lento abrir la pantalla donde está esa tabla y cada vez tardará más en insertar un registro. Ni que decir tiene que si hay muchísimos registros en la tabla entonces ya ni siquiera será operativo y se tendrá que hacer el cambio y olvidar el uso de ttable.

El uso de ttable es el típico de los mensajes "mi programa iba muy bien pero últimamente tarda mucho en acceder y en grabar los datos, formateé el disco y reinstalé el windows, pero sigue igual de lento, cada vez más, ¿será un fallo del firebird?"
Responder Con Cita
  #34  
Antiguo 10-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Para muestra un botón, el siguiente código corresponde a la propiedad tablename del componente tztable de los componentes zeoslib:

Código Delphi [-]
procedure TZAbstractTable.SetTableName(const Value: string); 
begin 
  if FTableName <> Value then 
  begin 
    FTableName := Value; 
    if Value <> '' then 
      SQL.Text := Format('SELECT * FROM %s', [FTableName]) 
    else SQL.Text := ''; 
  end; 
end;
Responder Con Cita
  #35  
Antiguo 10-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Por eso digo, no hay que ser un maestro para saber algo tan básico.
Seguir insistiendo en que un table.open es eficiente o que es lo mismo que hacerlo por SQL, es perder el tiempo.
Me sigue extrañando que AzidRain defienda lo indefendible y que ademas mcs insista en esto sin conocimiento alguno, notable.
Soy novato, pero hay mas principiantes.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #36  
Antiguo 10-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por eso las originales FreeIB Components no traían componente TTable, porque querían primar la velocidad y eficiencia. Después, las siguientes herencias creadas a partir de las FreeIB que han querido seguir siendo eficientes tampoco han traído ese componente, como FIBL, FIBplus, etc.
Sin embargo, Borland sí añadió una TIBTable en las IBX, heredadas, como todos sabemos, de FreeIB, seguramente por hacerlo más cómodo a los que venían de usar paradox o access.
Cita:
Empezado por IBX
SQL := TStringList.Create;
SQL.Text := 'select ' + {do not localize}
QuoteIdentifier(DataBase.SQLDialect, FTableName) + '.*, ' {do not localize}
+ 'RDB$DB_KEY as IBX_INTERNAL_DBKEY from ' {do not localize}
+ QuoteIdentifier(DataBase.SQLDialect, FTableName);
if Filtered and (Filter <> '') then
begin
SQL.Text := SQL.Text + ' where ' + Filter; {do not localize}
bWhereClausePresent := True;
Que como se puede observar también usa, obviamente, un " select * ".
Luego, los MDO (Mercury Database Objects), que no heredaron de FreeIB, sino que decidieron heredar de IBX, también lleva un TTable, que el código parece el mismo de las IBX:
Cita:
Empezado por MDO
SQL := TStringList.Create;
SQL.Text := 'select ' + {do not localize}
QuoteIdentifier(DataBase.SQLDialect, FTableName) + '.*, ' {do not localize}
+ 'RDB$DB_KEY as IBX_INTERNAL_DBKEY from ' {do not localize}
+ QuoteIdentifier(DataBase.SQLDialect, FTableName);
if Filtered and (Filter <> '') then
begin
SQL.Text := SQL.Text + ' where ' + Filter; {do not localize}
bWhereClausePresent := True;
Bueno, no parece, es que es el mismo código

Y ya no sigo con esto, creo que está claro el tema.
Responder Con Cita
  #37  
Antiguo 10-07-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 17
mcs Va por buen camino
Hola otra vez!

Soy tozudo como una mula, y seguía con mi idea que los IBDAC no podían estar TAN mal programados.

Y teneis CASI LA RAZON! En las IBDAC, los componentes que uso en el curro y que he recomendado al comapñero Gimli, un table.open se traduce en:
Código:
SELECT COUNT(*) FROM table;
SELECT * FROM table;
O sea, que no sé si puede haber algo más ineficiente... Muchas gracias por participar en este debate, y por haberme hecho dudar. Debido a esto, me he animado a hacer la prueba...

Saludos,

Marc
Responder Con Cita
  #38  
Antiguo 10-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por mcs Ver Mensaje
[..] Soy tozudo como una mula, y seguía con mi idea que los IBDAC no podían estar TAN mal programados.
No es que estén mal programados, es que no hay otra forma de hacerlo. Ten en cuenta que, por ejemplo, en una tabla dbf, hay una cabecera donde indica la estructura de los datos, la longitud que ocupa cada registro y el total de registros, entre otros. Si quieres ir al último registro sólo tienes que avanzar el puntero (UltimoRegistro*OcupacionDeCadaRegistro). Que quieres ir al registro 1000, pues multiplicas 1000*OcupacionDeCadaRegistro y posicionas el puntero en ese lugar del fichero.
Pero una base de datos relacional no tiene nada que ver con una tabla plana. En una RDBMS hay registros (y campos) con longitud variable, no existe un primer registro y un último registro, todo depende del orden con el que los queramos presentar. No podemos ir al último registro porque no sabemos cual es, ¿el último ordenado por fecha, por código, por nombre, etc.?, cuando hacemos un select traemos sólo unos pocos registros, por ejemplo, si los presentamos en un dbgrid normalmente serán justos los que quepan en pantalla, luego se irán trayendo los siguientes según avanzamos en el dbgrid, y si le damos "ir al final" entonces se traerá todos los registros.
Son filosofías muy distintas de trabajo.

Cita:
Empezado por mcs
Código:
SELECT COUNT(*) FROM table;
SELECT * FROM table;
¿Por qué IBDAC hace eso?, está claro, para que "parezca" que es una tabla "normal", primero cuenta los registros que hay, además lo hace muy ineficientemente (el asterisco), podría usar uno sólo de los campos que tenga índice, sería mucho más rápido. Y una vez que sabe cuantos registros hay, o sea, ha tenido que ir hasta el último campo para traérselos todos, es ahora cuando hace un select de todos los campos, otra vez el *, y sigue la ineficiencia elevada al cuadrado

Pero, repito, no es que esté mal programado, es que si quieres simular una tabla plana con un RDBMS no tienes otra solución.
La otra solución es hacer lo mismo que FreeIB, FIBL, FIBplus, etc. ¡¡¡no tener componente TTable!!!

Estas cosas se aprende estudiando bastante en profundidad las bases de datos, su código fuente, descubres cosas curiosas, trucos interesantes y algunos fallos tremendos. Las bases de datos son una de mis aficiones, me gusta inspeccionar cómo están hechas, hace muchos años hice un sistema de bases de datos como el de los dbf, al que añadí control multiusuario para red local. Y años más tarde hice otro sistema de gestión de bases de datos (un sistema Btree+) también con control de bloqueos, multiusuario, red, journaling, etc. en lenguaje C, lo utilicé en algunos proyectos propios y la verdad es que funcionaban muy bien estable y muy rápido.
Lástima que los perdí en un disco defectuoso, estoy hablando de la época 1990 a 1995, ya ha llovido

Última edición por Casimiro Notevi fecha: 10-07-2010 a las 18:52:50.
Responder Con Cita
  #39  
Antiguo 10-07-2010
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No es que estén mal programados, (...)

Estas cosas se aprende estudiando bastante en profundidad las bases de datos, su código fuente, descubres cosas curiosas, trucos interesantes y algunos fallos tremendos. Las bases de datos son una de mis aficiones, me gusta inspeccionar cómo están hechas, hace muchos años hice un sistema de bases de datos como el de los dbf, al que añadí control multiusuario para red local. Y años más tarde hice otro sistema de gestión de bases de datos (un sistema Btree+) también con control de bloqueos, multiusuario, red, journaling, etc. en lenguaje C, lo utilicé en algunos proyectos propios y la verdad es que funcionaban muy bien estable y muy rápido.
Lástima que los perdí en un disco defectuoso, estoy hablando de la época 1990 a 1995, ya ha llovido
¡Hey! Cuidado con mi apellido... ¡que no tiene nada de malo el tener una mente cuadrada!

Veo amigo que te gusta mucho el tema de bases de datos, yo todavía no me animé a ver el code de Firebird... por empezar no se de C (y C++, ahora Firebird se ha portado a este) y el tema de los árboles B+ me suena un tantito a chino y que decir de snapshots... al concepto lo entiendo... la pregunta es ¿Y técnicamente, como se lo programa?

¿Haz considerado meterte bien de lleno en aportar tus conocimientos formando parte oficial de Firebird Proyect?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #40  
Antiguo 11-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Delphius Ver Mensaje
[..] ¿Haz considerado meterte bien de lleno en aportar tus conocimientos formando parte oficial de Firebird Proyect?
Sí, lo he pensado algunas veces, y estoy convencido de que puedo colaborar en algunos apartados, pero tendría que dedicarle muchísimo tiempo y dedicación para conocer a fondo el código del mismo, por lo que surgen varios problemas respecto a eso:

Código Delphi [-]
while NecesitoGanarmeLasHabichuelas do
begin
  if getTiempoParaConocerEnProfundidadElProyecto then
    ColaborarEnProyecto('xxx');
end;

function getTiempoParaConocerEnProfundidadElProyecto:boolean;
begin
  result := false;
  if Jubilado or HerenciaRecibida or GanadoLoteria then
    result := true;
end;

Por si fuese poco, el inglés y yo estamos peleados


p.d. Evidentemente, dedicándole el suficiente tiempo y dedicación, no sólo yo podría colaborar, también cualquiera de vosotros.

Última edición por Casimiro Notevi fecha: 11-07-2010 a las 01:38:06.
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 01:22:51
Firebird y Delphi 7 miguel_e Conexión con bases de datos 2 16-11-2007 19:11:23
firebird y delphi.net julyus Firebird e Interbase 2 25-10-2006 16:48:51
Delphi 5 y Firebird alexcabo Firebird e Interbase 3 18-07-2006 02:40:24
Firebird en Delphi JXJ Firebird e Interbase 3 04-11-2005 21:19:48


La franja horaria es GMT +2. Ahora son las 15:42:52.


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