FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Consejos Firebird con Delphi 2010
Hola muchachos, actualmente tengo una aplicacion funcionando en visual basic e interbase 7 desde ya unos años, las 24 hs. del dia los 365 dias del año sin descansar y jamas tuve ningun problema. Bueno la estoy migrando a Delphi y tengo Interbase 2009 version free. El tema es ¿Puedo usar Firebird y que me brinde la misma seguridad de interbase, a seguridad me refiero a tranquilidad de que lo que tengo es bueno y no se va a caer (en condiciones normales)?
Estoy con los componentes IBDAC y usando Stored Procedures para todo. Espero consejos sabios de gente con mas experiencia. Saludos y desde ya muchas gracias!!!! |
#2
|
||||
|
||||
Hola, waly2k1, no existe ninguna versión free de interbase, todas son de pago. Lo que sí existe es la versión de prueba para desarrolladores, o sea, para tú programar, pero luego debes comprar las licencias para instalarlas en los "servidores/clientes" de tus clientes finales.
Cita:
Además es libre y gratis totalmente. |
#3
|
|||
|
|||
Gracias...
Muy bien Casimiro, muchas gracias por tu pronta respuesta
ya empezare a usar Firebird entonces, o al menos a tenerla mas en cuenta hace un tiempo hice un intento de usarla, pero tuve problemas con los blob de imagenes que no sabia que dialecto usar, entonces descarte y segui con MySQL. Bueno nuevamente gracias y te consulto despues algunas dudas en cuanto a dialecto, etc. un abrazo! Walter |
#4
|
|||
|
|||
Question....
Hola Casimiro,
Tengo en mi codigo esta linea que inserta una imagen en una tabla de una bd, ya sea access, mysql, sqlserver y nose que otra. Pero en Firebird 2.1 no me funciona. No da error, pero no hace nada Código:
(Data.qryCLA.FindField('IMG_RPTFINAL') AS TBlobField).LoadFromFile(sPIC); El campo es de Tipo Blob, tamaño de segmento=20 y subtipo=0. Si tienes un ejemplo valido o el link te estaria muy agradecido. Si lo deseas podria postearte todos los ejemplos que no me funcionan, pero no creo sea necesario Bueno, es todo por el momento. Desde ya muchas gracias por tu tiempo!!! Saludos, Walter |
#5
|
||||
|
||||
Hola, con esa línea de código únicamente no puedo decirte si todo está bien o hay algo mal
Puedes hacer una búsqueda por clubdelphi, es un tema que se ha tratado infinidad de veces. Por ejemplo... aquí. |
#6
|
|||
|
|||
Solucionado
Ya lo solucione, muchas gracias!
Lo hice desde un Stored Procedure Posteo por las dudas el codigo por si a alguien le sucede lo mismo, es un poco mas largo que una simple linea, pero funciona. Código:
var SP:TIBCStoredProc; begin SP := TIBCStoredProc.Create( Self ); SP.StoredProcName := 'SP_LOGO_UPD'; SP.Prepare; SP.ParamByName( 'IMG_RPTFINAL' ).LoadFromFile( sPICT, ftBlob ); Data.IBCTran.StartTransaction; SP.ExecProc; Data.IBCTran.Commit; Walter |
#7
|
||||
|
||||
Cita:
No olvides liberar la memoria del SP!!! Código:
var SP:TIBCStoredProc; begin try SP := TIBCStoredProc.Create( Nil ); SP.StoredProcName := 'SP_LOGO_UPD'; SP.Prepare; SP.ParamByName( 'IMG_RPTFINAL' ).LoadFromFile( sPICT, ftBlob ); Data.IBCTran.StartTransaction; SP.ExecProc; Data.IBCTran.Commit; finally SP.Free; // <----- end; end;
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código Únete al grupo Teaming clubdelphi | Colabora mediante Paypal Última edición por Casimiro Notevi fecha: 21-09-2010 a las 16:18:29. |
#8
|
|||
|
|||
Liberar memoria?
Nunca lo hice y no se me hubiera ocurrido
Estoy finalizando mi aplicacion y 100% SP, pero nunca liberaba la memoria utilizada. Muchas gracias nuevamente! Saludos, Walter |
#9
|
||||
|
||||
Pues no lo olvides, es primordial.
Los objectos que nosotros creamos... nosotros lo liberamos. Los objetos que crea delphi... los libera delphi. Tu programa irá cogiendo cada vez más y más memoria, cada vez ocupará más en la memoria, surgirán problemas de punteros a memoria direccionada, ¡¡¡crash!!! ¿por qué me sale "acces violation etc...? por eso. |
#10
|
|||
|
|||
Cuando creas un componente con un Owner (Self) se destruye cuando se destruye el owner. Mas eficiente es crear el objeto sin owner : En este caso hay q destruirlo. Sino AV asegurada
|
#12
|
||||
|
||||
Cierto, se me olvidó mencionar que si se crea con (self) no hace falta liberar la memoria porque lo hace el (owner).
|
#13
|
|||
|
|||
El caso es q no es eficiente crear los objetos con Self como owner como se explica en el articulo mencionado arriba. Mejor con nil y liberarlos inmediatamente..
|
#14
|
||||
|
||||
Pues sí, mejor tomar el control
|
#15
|
|||
|
|||
Cita:
cargaba mas de 5 veces el mismo item y al hacer click abortaba todo, la consulta era un simple select de una tabla, o sea no habia records repetidos. Y asi vi varios casos donde no funcionaba o funcionaba muy mal que es peor. Luego lei por ahi que estos objetos no funcionaban bien con versiones de firebird superiores a la 2.1. Asi que buscando encontre estos que andan muy bien gracias a Dios!. Yo vengo de MySQL con Zeos y no tengo quejas, pero queria algo mas nuevo o quizas mas especifico para Firebird que Zeos. Muchas gracias a todos por los consejos que son enormemente recibidos!!! Walter |
#16
|
||||
|
||||
Casimiro, quizás sea un error, o quizás me olvido de algo, pero, ¿el crear el objeto no debería estar fuera del try?
La razón es que si hay un error al crear ese objeto, en tu código iría al finally a destruirlo y muy posiblemente dará otra excepción porque no se pudo destruir (al no estar totalmente creado) ¿no?
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#17
|
||||
|
||||
Pues sí, por lógica, si se va a crear un objeto, será conveniente hacerlo fuera del try .. finally. Tienes razón.
|
#18
|
|||
|
|||
Lo hiciste con ClientDataset o con SQLDataset directamente?
|
#19
|
|||
|
|||
Hum no recuerdo...
pero si, fallaba sin sentido, entonces opte por los IBDAC Ahora, que es mejor?, o sea la mejor opcion para trabajar con Firebird, si es free$ mejor aun. El tema es que sean objetos actualizables frecuentemente. O bien como aconsejas el uso de dbExpress?. Sino buscare despues ejemplos, pero como les decia antes, no tengo ni un poco de XP en Firebird, trabaje antes con interbase y anduvo muy bien, sql server, mysql, etc. Recien veo firebird y va muy bien la cosa, estoy muy confome realmente. Saludos y muchas gracias muchachos!!! Walter |
#20
|
|||
|
|||
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿''?reportmanager y delphi 2010 VCL con firebird 2.1 UTF8 | JXJ | Varios | 0 | 19-08-2010 19:22:03 |
Delphi 2010 - Firebird o es tiempo de cambiar? | jourdan | Conexión con bases de datos | 10 | 04-08-2010 00:43:50 |
Firebird, Mysql y Delphi 2010 | tec | Varios | 3 | 16-04-2010 15:34:51 |
Consejos para Delphi 2007 Win32 | sysmar | Varios | 6 | 08-03-2008 06:57:51 |
Consejos para empezar con firebird | seoane | Firebird e Interbase | 21 | 22-03-2007 05:14:33 |
|