Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   sql o delphi (https://www.clubdelphi.com/foros/showthread.php?t=17633)

el_enigma1 16-01-2005 03:54:10

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

Mick 16-01-2005 14:29:25

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

el_enigma1 18-01-2005 10:27:03

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;

unreal4u 19-01-2005 17:44:00

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 ...

el_enigma1 19-01-2005 23:40:29

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.


La franja horaria es GMT +2. Ahora son las 11:57:43.

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