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 13-02-2013
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Datos XML en Firebird

Que tal,
Antes que todo decirles que intenté por todos los medio conocidos por mi, usar el buscador del foro, pero no hubo manera que funcionara, siempre el mismo mensaje de error que no eran suficientes palabras para que el este funcione.
Pues les expreso mi duda, ¿en firebird 2.5.x hay forma de almacenar datos tipo XML?, ¿o la unica forma sería vía los BLOB?.
Me preocupa el hecho de usar BLOB ya que he oído por ahí que puede dejar muy lentas las consultas que involucren este campo.
Desde ya les agradezco su ayuda.
Gracias!
__________________
Ya tengo Firma!
Responder Con Cita
  #2  
Antiguo 13-02-2013
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 juanelo Ver Mensaje
Antes que todo decirles que intenté por todos los medio conocidos por mi, usar el buscador del foro, pero no hubo manera que funcionara [...]
Hola Juanelo.

Hace tiempo que no te veía por aquí, que gusto leerte de nuevo.

No estoy al día con las últimas novedades de Firebird, pero no he visto que se mencione un tipo de campo XML en ese motor.

Respecto a cómo buscar, personalmente uso Google cuando quiero encontrar algo en los foros. Por ejemplo:

https://www.google.com/#hl=es&tbo=d&...clubdelphi.com

Teniendo Google bien catalogado a Club Delphi, ¿para qué usar el buscador del sitio?

Lo que dices de que un campo Blob puede generar lentitud, habría que ver quién dice eso y por qué lo dice. Muchas veces se trata de malas experiencias por falta de un adecuado manejo de la base de datos.

Saludos y un abrazo.

Al.
Responder Con Cita
  #3  
Antiguo 13-02-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hombre, para almacenar, depende de la longitud, si ocupa poco puedes usar el varchar(n) y si ocupan más entonces tendrás que usar BLOB, como en cualquier otra base de datos.

EDITO: veo que ha contestado Al González. Por cierto, las consultas de campos BLOB no deben ser lentas.
Responder Con Cita
  #4  
Antiguo 13-02-2013
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Gracias por sus respuestas, Al y Casimiro.
El tamaño medio de dichos XML es de 8ks cada uno, por lo que no creo que se pueda usar un campo VARCHAR. Me temo que el camino va a ser el BLOB.
Para terminar de abusar de su confianza, saben si este tipo de campo (BLOB) tiene alguna restricción en cuanto a caracteres contenidos, es decir, con "<", ">", "&", etc. (supongo que no, ya que deberían ser tratados como binarios según yo)
Gracias!
__________________
Ya tengo Firma!
Responder Con Cita
  #5  
Antiguo 13-02-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Los BLOB en firebird tienen 2 "subtipos" principalmente, uno es el blob normal en el que almacenas "cualquier cosa" y el otro subtipo es el modo "texto", que como su nombre indica... es el indicado para tu caso.
Evidentemente, en ninguno de los tipos vas a perder caracteres.
Responder Con Cita
  #6  
Antiguo 13-02-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Antes de que preguntes, mira este hilo.
Responder Con Cita
  #7  
Antiguo 13-02-2013
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Los BLOB en firebird tienen 2 "subtipos" principalmente, uno es el blob normal en el que almacenas "cualquier cosa" y el otro subtipo es el modo "texto", que como su nombre indica... es el indicado para tu caso.
Evidentemente, en ninguno de los tipos vas a perder caracteres.
Te agradezco mucho la información, y pues a usar BLOBS tipo texto.
Gracias!
__________________
Ya tengo Firma!
Responder Con Cita
  #8  
Antiguo 13-02-2013
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 juanelo Ver Mensaje
[...] y pues a usar BLOBS tipo texto.


Yo los uso para guardar facturas electrónicas (CFDIs), y hasta ahora cero problemas.

Por cierto, a veces conviene tener uno o dos campos más de tipo Integer, VarChar, etcétera, con datos "clave" del documento XML. En mi caso, por ejemplo, tengo el campo CFD Blob texto (para el XML), pero además otro llamado FolioCFDI VarChar, que contiene un número especial que también está dentro del XML. Esto porque a veces es necesario encontrar un registro por cierto dato del XML, así que tenerlo en un campo aparte, debidamente indexado, ayuda a hacer más eficientes las búsquedas.

Saludos.
Responder Con Cita
  #9  
Antiguo 13-02-2013
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por Al González Ver Mensaje


Yo los uso para guardar facturas electrónicas (CFDIs), y hasta ahora cero problemas.

Por cierto, a veces conviene tener uno o dos campos más de tipo Integer, VarChar, etcétera, con datos "clave" del documento XML. En mi caso, por ejemplo, tengo el campo CFD Blob texto (para el XML), pero además otro llamado FolioCFDI VarChar, que contiene un número especial que también está dentro del XML. Esto porque a veces es necesario encontrar un registro por cierto dato del XML, así que tenerlo en un campo aparte, debidamente indexado, ayuda a hacer más eficientes las búsquedas.

Saludos.
Muchas gracias por el consejo Al, de hecho este campo será usador en su totalidad cuando sea requerido y la busqueda del registro que contenga este XML es atravez de una llave entera, no se tiene algún dato (aún) por el cual valga la pena buscar dentro del XML.
Saludos electrónicos
__________________
Ya tengo Firma!
Responder Con Cita
  #10  
Antiguo 13-02-2013
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
Firebird está diseñado para almacenar los campos blobs aparte de los campos normales. Esto le permite agilizar las demás operaciones sin verse afectado por el gran tamaño de los BLOBs. De modo que si para ciertas consultas no necesitas del campo BLOB, al recorrer el conjunto de datos se gana más velocidad... de hecho se comporta igual que cualquier consulta normal.
Sólo en el momento en que requieras hacer alguna operación sobre BLOBs Firebird "linkea" a estos. Aquí es donde puede haber cierta pérdida de velocidad.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #11  
Antiguo 13-02-2013
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por juanelo Ver Mensaje
Que tal,
Antes que todo decirles que intenté por todos los medio conocidos por mi, usar el buscador del foro, pero no hubo manera que funcionara, siempre el mismo mensaje de error que no eran suficientes palabras para que el este funcione.
La próxima vez pon en google: xml firebird site:clubdelphi.com. Desde hace años no uso el buscador de club, es muy improductivo
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #12  
Antiguo 13-02-2013
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
A cómo te han dicho, lo mejor es que utilices el campo BLOB SUB_TYPE TEXT. Esto te permite utilizar las funciones de texto (SUBSTR, ATC, etc) sobre el contenido del campo. Seguro hay una ligera pena en el rendimiento, pero es poca.

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #13  
Antiguo 13-02-2013
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 Chris Ver Mensaje
La próxima vez pon en google: xml firebird site:clubdelphi.com.
Ah mira, qué buena idea. (mensaje 2 )
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
Conectar base de datos Firebird con base de datos Oscommerce 2.3.3 Adriadob Firebird e Interbase 11 31-10-2012 11:28:46
Manipular datos en FIREBIRD pelikno SQL 1 02-05-2012 19:23:01
perdida de datos en base de datos firebird gmontes Firebird e Interbase 7 14-02-2009 06:39:21
Herramienta case para diccionario de datos de base de datos firebird mcalmanovici Firebird e Interbase 1 11-02-2007 15:17:37
Localizar datos con Firebird joanajj Firebird e Interbase 5 06-06-2006 00:11:42


La franja horaria es GMT +2. Ahora son las 13:34:01.


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