Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-01-2005
el_enigma1 el_enigma1 is offline
Miembro
 
Registrado: may 2004
Posts: 57
Poder: 20
el_enigma1 Va por buen camino
sql o delphi

tengo una base de datos en interbase 6 y estoy comenzando con los campos blob, el caso es quiero insertar imagenes en la base de datos.

tengo una tabla

TFotos con un campo blob para la inserción de las imagenes para ser practico
estaria declarada mas o menos asi

Código SQL [-]
      create table TFotos
   (
     imagen blob sub_type 0 size 50000
   )

segun yo tenia entendido size era el tamaño en bytes pero creo que esoty equivocado ya que al ver la declaracion de la tabla resulta que esta

Código SQL [-]
   create table TFotos
   (
    Imagen blob sub_type 0 size -15789
   )
el numero -15789 no es el que me muestra, no recuerdo el numero exacto pero era algo parecido.

en delphi utilizo los componentes para interbase la db, transaccion y un tabla.


para insertar una imagen hago algo parecido a esto
Código Delphi [-]
   tablaFotos.addend//no recuerdo bien, pero es la agregar un nuevo registro
   tablaFotosImagen.loadfromfile(pathimagen)//
   tablaFotos.post

al ejecutarlo la imagen si se inserta en la base de datos pero me manda un error del cual solo recuerdo error sql -104, se que con un try finally pudiera dejar de mostrar el mensaje de error, pero quiero saber que es lo que hice mal?, en donde esta el error?, interbase solo trabja con imagenes bmp ya que con imagenes jpg no pude insertar, tambien quisiera obetener info hacerca de los campos blob ya que por mas que le busque en la que biene en interbase no mas no me saco de dudas en especial lo de sub_type, ya que no engo el archivo donde se supone biene la explicacion de estos.


De antemano gracias por la ayuda.

PD. Disculpen por no acordarme de todo lo necesario
Responder Con Cita
  #2  
Antiguo 16-01-2005
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 21
Mick Va por buen camino
El segment size no es el tamaño maximo de los blobs sino el tamaño de cada segmento. El valor por defecto si no se indica es de 80 , pero eso no significa que solo se puedan guardar 80 bytes, sino que el cliente, pedira la informacion
del blob en bloques de 80 bytes.

Segun la documentacion el segment size se guarda en un word (maximo 65535) pero por otro lado indica que el maximo es 32767. Esta variacion depende si se considera una variable de tamaño word con signo o sin signo, si es sin signo se puede almacenar un numero entre 0 y 65535, si es con signo en la misma variable se puede almacenar un numero entre -32768 y 32767.

Te esta mostrando el valor negativo porque al devolver la informacion de las tablas, interbase esta considerando el valor con signo de modo que el valor 50000 es demasiado alto y entra dentro de los valores negativos que la variable si la consideramos con signo puede guardar:

32768 - 50000 = -17233 mas o menos

Asi que basta que indiques un valor mas pequeño que 32768.

Saludos
Responder Con Cita
  #3  
Antiguo 18-01-2005
el_enigma1 el_enigma1 is offline
Miembro
 
Registrado: may 2004
Posts: 57
Poder: 20
el_enigma1 Va por buen camino
Cita:
Empezado por Mick
Asi que basta que indiques un valor mas pequeño que 32768.

Saludos
Gracias por la info, pero a pesar de que le puse un valor de 30000 me sigue generando el mismo error
Dynamic SQL error
SQL Error code = - 104
unexpected end of command;
Responder Con Cita
  #4  
Antiguo 19-01-2005
Avatar de unreal4u
unreal4u unreal4u is offline
Miembro
 
Registrado: nov 2004
Ubicación: Temuco, Chile
Posts: 105
Poder: 20
unreal4u Va por buen camino
sobre el error

por lo que veo, la sentencia SQL está mal escrita, o más bien dicho, está mal terminada ... Revisa bien la forma de insertar imágenes en interbase, porque es eso parece lo que está provocando el error ...
__________________
Código Delphi [-]
procedure Gracias; 
begin
 if Respuesta_a_Mensaje = TRUE then showmessage('Ojalá que te sirva')
 else showmessage('Gracias por responder... :-)');
end; // (c) unreal4u
Responder Con Cita
  #5  
Antiguo 19-01-2005
el_enigma1 el_enigma1 is offline
Miembro
 
Registrado: may 2004
Posts: 57
Poder: 20
el_enigma1 Va por buen camino
Cita:
Empezado por unreal4u
por lo que veo, la sentencia SQL está mal escrita, o más bien dicho, está mal terminada ... Revisa bien la forma de insertar imágenes en interbase, porque es eso parece lo que está provocando el error ...
Hola!
La verdad no le entendi muy bien a tu codigo.
Que exactamente sugieres.
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


La franja horaria es GMT +2. Ahora son las 13:35:25.


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