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 26-11-2008
El_Chava El_Chava is offline
Miembro
 
Registrado: jun 2005
Posts: 62
Poder: 19
El_Chava Va por buen camino
Question problema al tratar de consultar un registro en firebird 1.5.

Hola amigos del foro nuevamente vengo en busca de su ayuda ya que tengo un problema al tratar de consultar un registro en una tabla dentro del firebird les comento que los datos que contiene ahora la tabla los extraje desde un archivo excel ya que eran mas de 1500 registros. bueno ya que los ingrese y estoy consultando registro por registro llega un momento en que al llegar a determinado registro el sistema me manda el siguiente mensaje de error

---------------------------
Debugger Exception Notification
---------------------------
Project Sistema.exe raised exception class EIBClientError with message 'Size Mismatch - Field DESCRIPCION size is too small for data'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
a lo que yo le entiendo es que el tamaño del campo descripcion es pequeño para el dato pero no me dio ningun error al agregar el dato pero bueno segun a lo que le entendi le aumete el size del campo descripcion de la tabla y ya van varias veces que se lo he aumentado y me sigue mandando el mismo error lo que me hace suponer que posiblemente la solucion no es de andar aumentando el tamaño del campo.

sin mas por el momento me despido y esperando su pronta respuesta al problema y le doy las gracias por tomarse el tiempo de leer este mensaje
Responder Con Cita
  #2  
Antiguo 26-11-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Si nos das unas pista es probable que te ayudemos un poco, por ejemplo:

-Que componentes utilizas
-Como te conectas
-Que tienes en el query
-Tienes campos persistentes
-Donde Visualizas los datos

Entre otros detalles que ayudarian a entender el problem
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #3  
Antiguo 26-11-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
Hola
Muy extraño el error

Ya que la solucion no es aumentar el tamaño del campo por que no intentas dar al dato el tamaño del campo

Código SQL [-]
Update tabla set DESCRIPCION=CAST(DESCRIPCION AS CHAR(80))

Esto suponiendo que el campo descripcion sea de 80 caracteres en la base de datos

Recuerda la copia de seguridad antes de...
Responder Con Cita
  #4  
Antiguo 26-11-2008
El_Chava El_Chava is offline
Miembro
 
Registrado: jun 2005
Posts: 62
Poder: 19
El_Chava Va por buen camino
Cita:
Empezado por eduarcol Ver Mensaje
Si nos das unas pista es probable que te ayudemos un poco, por ejemplo:

-Que componentes utilizas
-Como te conectas
-Que tienes en el query
-Tienes campos persistentes
-Donde Visualizas los datos

Entre otros detalles que ayudarian a entender el problem
hola y gracias por tomarte la molestia de contestar la respuesta a lo que preguntas son las siguientes:

Que componentes utilizas?
Es el componente Interfaz GH que nuestro amigo Al Gonzalez a desarrollado y nunca he tenido problemas con ellos ya que son componente derivados del IBX
Como te conectas?
Me conecto atravez del componente TghIBDatababase
que tienes el query?
bueno en si para consultar la base de datos no utilzo un query si no directamente utilizo los comandos First, prior, next y last para moverme en los registros de la tabla pero al llegar a cierto registro es cuando me arroja el mensaje

-Tienes campos persistentes?
no

-Donde Visualizas los datos?
en un dbgrid

y de nuevo gracias por su ayuda
Responder Con Cita
  #5  
Antiguo 27-11-2008
El_Chava El_Chava is offline
Miembro
 
Registrado: jun 2005
Posts: 62
Poder: 19
El_Chava Va por buen camino
hola amigos yo de nuevo pues tratando de resolver el problema hice lo siguiente en el dbgrid que enlazo a la tabla articulos le doy doble click para que me saliera la venta de editing gdir.columns ahi agregue todos los campos de la tabla desde ahi elimine del dbgrid la columna descripcion, luego ejecute el programa y al llegar al registro donde se detenia el programa por el error antes mencionado ya no me volvio a salir. entonces es un problema del dbGrid pero necesito mostrar la columna Descripcion en el dbGrid asi que si alguien sabes como solucionar el problema por favor que me ayude a resolverlo. espero que me haya explicado bien y saludos a todos lo que se toman la molestia de leer este mensaje bye.
Responder Con Cita
  #6  
Antiguo 27-11-2008
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
¡Hola!

Según veo, ese error es lanzado por los IBX, específicamente en el método TIBCustomDataSet.InternalGetFieldData de la unidad IBCustomDataSet.pas:

Código Delphi [-]
      with CurrentRecord^.rdFields[FMappedFieldPosition[Field.FieldNo - 1]] do
      begin
        Data := Buff + CurrentRecord^.rdFields[FMappedFieldPosition[Field.FieldNo - 1]].fdDataOfs;
        if (fdDataType = SQL_VARYING) or (fdDataType = SQL_TEXT) then
        begin
          if fdDataLength <= Field.Size then
          begin
            if (Field is TStringfield) and TStringField(Field).FixedChar then
              FillChar(Buffer^, Field.Size, ' ');
            Move(Data^, Buffer^, fdDataLength);
            if (Field is TStringfield) and TStringField(Field).FixedChar then
              PChar(Buffer)[Field.Size] := #0
            else
              PChar(Buffer)[fdDataLength] := #0;
          end
          else
            IBError(ibxeFieldSizeMismatch, [Field.FieldName]);
        end
        else
          Move(Data^, Buffer^, Field.DataSize);
      end;

La consulta SQL está arrojando una descripción de mayor longitud que el tamaño definido del campo. Lo curioso es que, según nos dices, no utilizas campos persistentes. Pero lo que sí es seguro es que tiene que ver con discrepancia en tamaños de campos. Mira si no estás omitiendo algo por ahí y nos comentas.

Saludos.

Al González.
Responder Con Cita
  #7  
Antiguo 27-11-2008
El_Chava El_Chava is offline
Miembro
 
Registrado: jun 2005
Posts: 62
Poder: 19
El_Chava Va por buen camino
Hola Al Gonzalez pues ya logre resolver el problema y fue algo tan simple de como lo logre y fue que elimine del data module la ibtable enlazada a la tabla articulos y luego puse un nuevo ibtable enlazada de nuevo a la tabla articulos y con eso ya no me arrojo el error la verdad que muy raro pero bueno se soluciono el problema a todos los que leyeron esta mensaje y respondieron muchas gracias estamos en contacto bye
Responder Con Cita
  #8  
Antiguo 27-11-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por El_Chava Ver Mensaje
Hola Al Gonzalez pues ya logre resolver el problema y fue algo tan simple de como lo logre y fue que elimine del data module la ibtable enlazada a la tabla articulos y luego puse un nuevo ibtable enlazada de nuevo a la tabla articulos y con eso ya no me arrojo el error la verdad que muy raro pero bueno se soluciono el problema a todos los que leyeron esta mensaje y respondieron muchas gracias estamos en contacto bye
estas seguro que no son campos persistentes?, me pareciese que si
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
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
Ayuda Al Consultar Por Fechas Especificas En Firebird DANILO PEREZ Firebird e Interbase 4 07-08-2007 23:57:36
Problema al tratar de compilar judit25 Varios 3 25-07-2007 21:25:36
Consultar bases Firebird en internet Jose Roman Firebird e Interbase 1 24-01-2007 22:51:25
Consultar fechas en firebird (SQL) pepitu Firebird e Interbase 7 28-09-2005 19:19:23
Problema al tratar de instalar interbase 7.1 ElCherchu Conexión con bases de datos 0 17-12-2004 21:02:31


La franja horaria es GMT +2. Ahora son las 14:27:55.


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