Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-01-2018
mRoman mRoman is offline
Miembro
 
Registrado: Nov 2003
Posts: 340
Poder: 15
mRoman Va por buen camino
Incorrect values within SQLDA structure

Buenas tardes amigos del foro.

Estoy trabajando con Delphi6/DBMS: FB 2.0/Win 7 y XP

Estoy tratando de correr una consulta que ahora el IBExpert, me esta marcando el siguiente error:

(anexe imagen)

Código SQL [-]
Dynamic SQL Error
SQL error code = -804
Incorrect values within SQLDA structure

Les adelanto que cambios a la base de datos no he realizado, tampoc he actualizado al FB a otra version.

Aqui la consulta que quiero realizar:
Código SQL [-]
select a.fecha_venta,
       a.lecher||' '||b.nombrelech as nomb_lec,
       b.nombrelech,a.lecher,
       a.dotacion_programada,
       b.clave_ruta||'-'||a.secuencia_distribucion as clave_ruta,
       a.secuencia_distribucion,
       i.nombre,g.cve_producto,
       g.cve_producto||' '||g.descripcion as producto,
       a.dotacion_programada/(g.volumen*g.piezas) as canastillas,
       c.neconomico,
       e.nombre||' '||E.apellido_paterno||' '||E.apellido_materno as nombre_trans,
       '' as telefono_celular,
       f.descripcion as cia_transporte,
       a.observacion_comentario,
      (select h.precio_litro_concesionario
        from precio_producto_hist h
        where h.clave_contrato=b.tipo_contr
          and h.cve_producto=a.cve_producto
          and h.fecha_vigencia_inicial<=a.fecha_venta
          and h.fecha_vigencia_final>=a.fecha_venta) as precio_litro_concesionario,
       b.ml_calle,
       b.ml_colo,
       b.ml_refe,
       '' as telefono_lecheria,
       '' as telefono_concesionario,
       a.comentario_das30,a.folio_impreso,
       '*'||a.folio_impreso||'*' as codbar,
       j.nombre_supervisor,
       j.telefono as telef_supervisor
from VENTA a,
     TIENDA b,
     RUTA c,
     CAMION d,
     TRANSPORTISTA e,
     COMPANIA_TRANSPORTE f,
     PRODUCTO g,
     DISTRIBUIDOR i,
     SUPERVISOR J
where a.lecher=b.lecher
  and b.clave_ruta=c.clave_ruta
  and c.neconomico=d.neconomico
  and d.clave_transportista=e.clave_transportista
  and e.clave_cia=f.clave_cia
  and a.cve_producto=g.cve_producto
  and b.clave_concesionario=i.clave_concesionario
  and a.fecha_venta between :fecha1 and :fecha2
  and a.dotacion_programada>0
  and ((b.clave_ruta >= :desde) AND (b.clave_ruta <= :hasta))
  and c.id_supervisor=j.id_supervisor
order by a.fecha_venta, 
         b.clave_ruta,
         a.secuencia_distribucion,
         a.cve_producto

La consulta desde la aplicacion delphi correo sin problema, no manda mensaje de error, (hasta ahorita).

Algo que he logrado detectar, es que este error me lo marca en la tabla "TIENDA" cuando agrego los parametros "DESDE" y "HASTA" que, de igual manera, si los cambio por constantes (cualquiera), ej "1" y "3", también lo marca el error, algo estará pasando en esta tabla???

Acudo a ustedes para q me orienten por donde va la cosa, mientras tanto sigo buscando en "San Google", que por cierto la mayoria de la documentación que encontré está en ingles y hablan desde una posible corrupcion de datos, hasta borrar componentes...los cuales no definen a que componentes se refieren.

Saludos
Imágenes Adjuntas
Tipo de Archivo: jpg MSG-Err SQLDA Structure -804.jpg (26,2 KB, 4 visitas)
__________________
Miguel Román

Última edición por mRoman fecha: 30-01-2018 a las 23:53:16.
Responder Con Cita
  #2  
Antiguo 01-02-2018
mRoman mRoman is offline
Miembro
 
Registrado: Nov 2003
Posts: 340
Poder: 15
mRoman Va por buen camino
Realizando pruebas....

Acciones:

1.-Copie del servidor (q por cierto es WinXP), la base de datos a mi laptop, donde estoy desarrollando la aplicación.
2.- Ejecute dentro del IBExpert, la consulta que me esta marcando error....y aqui no me genera ningun msg de error.

Conclusiones:

Creo q va a ser el Firebird (2.0), lo desinstalare del servidor para verificar si era eso.

Ayer dentro de los links q estaba consultando (Brasil), mencionaban acerca del GDS32.dll y un archivo q no habia escuchado F2.dll....mencionaban que deberian remplazarse...alguien sabe si tiene que ver los DLL para el mensaje de error que me esta apareciendo???

Saludos y gracias por su tiempo.
__________________
Miguel Román
Responder Con Cita
  #3  
Antiguo 01-02-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.245
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Estás dando "palos de ciego", y así no vas a ninguna parte.
Aclárate. Asegúrate que la base de datos está creada con la versión de firebird instalada en el sistema. NO mezcles distintas versiones. Si antes tenías otra versión, entonces desinstala todas, elimina fbclient.dll y gds32.dll que encontrarás en distintos directorios.
Haz una instalación limpia de firebird.
Responder Con Cita
  #4  
Antiguo 01-02-2018
mRoman mRoman is offline
Miembro
 
Registrado: Nov 2003
Posts: 340
Poder: 15
mRoman Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Estás dando "palos de ciego", y así no vas a ninguna parte.
Aclárate. Asegúrate que la base de datos está creada con la versión de firebird instalada en el sistema. NO mezcles distintas versiones. Si antes tenías otra versión, entonces desinstala todas, elimina fbclient.dll y gds32.dll que encontrarás en distintos directorios.
Haz una instalación limpia de firebird.
Gracias casimiro por contestar.

Si, efectivamente estoy dando "palos de ciego", pero es que no se por donde pueda estar el error.

La base de datos fue creada en la version 2.0 (2.0.1.12855), tanto en el servidor como en mi lap, tengo instalada la misma version, en mi lap no marca error.

Configuracion de la BD en mi lap:

Código:
Server: Local
Server Version: Firebird 2.0
Charset:NONE
Client Library File: gds32.dll
Font Characters Set: ANSI_CHARSET
(S.O. Win7)
Configuracion en PC Servidor:
Código:
Server: Remote
Server version= Firebird 2.0
Charset: ASCII
Client Library File: gds32.dll
Fon Characters Set: ANSI_CHARSET
(S.O. Win XP)
LO QUE HICE
1.- Desinstale en PC-Servidor, el firebird 2.0
2.- Renombre la carpeta de Firebird, q se creo cuando instale por primera vez el Firebird. Lo anterior para cuando reinstale la vuelva a crear (q tambien la pude haber borrado).
3.- Reinstale la version 2.0
4.- Ejecute el qry dentro del IBExpert y ME MARCO ERRORRRRR!!
5.- Copie nuevamente el GDS32.dll dentro de la carpeta Windows\System32
6.- Ejecute nuevamente el QRY...y volvio a marcar error.

Bien....hasta aqui lo q he hecho. Alguna sugerencia?.
__________________
Miguel Román
Responder Con Cita
  #5  
Antiguo 01-02-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.245
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por mRoman Ver Mensaje
Código:
Server: Local
Server Version: Firebird 2.0
Charset:NONE
Client Library File: gds32.dll
Font Characters Set: ANSI_CHARSET
(S.O. Win7)
Configuracion en PC Servidor:
Código:
Server: Remote
Server version= Firebird 2.0
Charset: ASCII
Client Library File: gds32.dll
Fon Characters Set: ANSI_CHARSET
(S.O. Win XP)
LO QUE HICE
1.- Desinstale en PC-Servidor, el firebird 2.0
2.- Renombre la carpeta de Firebird, q se creo cuando instale por primera vez el Firebird. Lo anterior para cuando reinstale la vuelva a crear (q tambien la pude haber borrado).
3.- Reinstale la version 2.0
4.- Ejecute el qry dentro del IBExpert y ME MARCO ERRORRRRR!!
5.- Copie nuevamente el GDS32.dll dentro de la carpeta Windows\System32
6.- Ejecute nuevamente el QRY...y volvio a marcar error.

Bien....hasta aqui lo q he hecho. Alguna sugerencia?.

Otra vez dando palos de ciego
Responder Con Cita
  #6  
Antiguo 01-02-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.245
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Haz una instalación limpia de firebird.
Ejecuta tu programa y copia aquí el error.
Responder Con Cita
  #7  
Antiguo 06-02-2018
mRoman mRoman is offline
Miembro
 
Registrado: Nov 2003
Posts: 340
Poder: 15
mRoman Va por buen camino
Smile

Aqui el código desde delphi que utilizo para construir el SELECT
Código Delphi [-]
procedure TfrmOpDespacho.GroupBox4Exit(Sender: TObject);
var
  clave,i, i_difer :integer;
  wMes,wDia,wAnio:Word;
  cMes:String;
  Porcentaje:Real;
begin
   qryPlanta.Close;
   qryPlanta.Open;
   qryPlanta.FetchAll;
   qryPlanta.First;
   qryMesEmbarque.Close;
   qryMesEmbarque.Open;

   case cbxMes.ItemIndex+1 of
        1 :cMes:='a.Ene';
        2 :cMes:='a.Feb';
        3 :cMes:='a.Mar';
        4 :cMes:='a.Abr';
        5 :cMes:='a.Myo';
        6 :cMes:='a.Jun';
        7 :cMes:='a.Jul';
        8 :cMes:='a.Ago';
        9 :cMes:='a.Sep';
        10:cMes:='a.Oct';
        11:cMes:='a.Nov';
        12:cMes:='a.Dic';
   end;
   if not(cMes=' ') then
   begin
        
       IBQry.Close;
       IBQry.SQL.Clear;
       IBQry.SQL.Add('select a.anio,');
       IBQry.SQL.Add('       '+cMes+' as lts_prog_anual,');
       IBQry.SQL.Add('       (select sum(b.litros)');
       IBQry.SQL.Add('        from reporte_despacho1 b');
       IBQry.SQL.Add('        where extract(year from b.fecha_embarque)=:anio');
       IBQry.SQL.Add('          and extract(month from b.fecha_embarque)=:mes');
       IBQry.SQL.Add('          and b.producto like '''+'AS%'+''') as lts_despacho,');
       IBQry.SQL.Add('       ((select sum(c.litros)');
       IBQry.SQL.Add('           from reporte_despacho1 c');
       IBQry.SQL.Add('          where extract(year from c.fecha_embarque)=:anio');
       IBQry.SQL.Add('            and extract(month from c.fecha_embarque)=:mes');
       IBQry.SQL.Add('            and c.producto like '''+'AS%'+''' )-'+cMes+') as difer,');
       IBQry.SQL.Add('       ((select sum(d.litros)');
       IBQry.SQL.Add('           from reporte_despacho1 d');
       IBQry.SQL.Add('          where extract(year from d.fecha_embarque)=:anio');
       IBQry.SQL.Add('            and extract(month from d.fecha_embarque)=:mes');
       IBQry.SQL.Add('            and d.producto like '''+'AS%'+''' )/'+cMes+')*100 as porcentaje');
       IBQry.SQL.Add('from PROGRAMA_DISTRIBUCION_ANUAL A');
       IBQry.SQL.Add('where a.clave_clasificacion=3');
       IBQry.SQL.Add('  and a.clave_rubro=1');
       IBQry.SQL.Add('  and a.anio=:anio');
       IBQry.ParamByName('MES').AsInteger:=cbxMes.ItemIndex+1;
       IBQry.ParamByName('anio').AsString:=mskAnio.Text;
       IBQry.Open;

// Estos son los QUERYS que tuve q crear (2 componentes IBQuery) que hacen lo mismo que el SELECT q construyo mas arriba, solo que aca por
// separado.
       qryProgAnual.Close;
       qryProgAnual.ParamByName('anio').AsString:=mskAnio.Text;
       qryProgAnual.Open;

       qryLtsDespacho.Close;
       qryLtsDespacho.ParamByName('anio').AsString:=mskAnio.Text;
       qryLtsDespacho.ParamByName('mes').AsInteger:=cbxMes.ItemIndex+1;
       qryLtsDespacho.Open;
// Hasta aqui terminan los 2 querys

//La siguiente linea, realiza una operación aritmética para encontrar la DIFERENCIA de ambos datos.
       i_difer:=qryLtsDespacho.fieldByName('lts_despacho').AsInteger-qryProgAnual.fieldBYName('lts_prog_anual').AsInteger;

       mskDifer.Text:=IntToStr(i_difer);
//       if qryDifer.FieldByName('DIFER').AsInteger<0 then
       if i_difer<0 then
       begin
           Label3.Caption:='ABAJO CON:';
           img1.Picture:=imgAbajo.Picture;
       end Else
       begin
           Label3.Caption:='ARRIBA CON:';
           img1.Picture:=imgArriba.Picture;
       end;
       Porcentaje:=(qryLtsDespacho.fieldByName('lts_despacho').AsFloat/
                    qryProgAnual.fieldByName('lts_prog_anual').AsFloat)*100.00;
//       Label4.Caption:=qryElaboro.fieldbyname('difer').AsString+' Litros';
//       mskPorcentaje.Text:=FloatToStr(qryDifer.fieldbyname('porcentaje').AsFloat);
//       mskPorcentaje.Text:=FloatToStr(Porcentaje);

       mskPorcentaje.Text:=Format('%n',[Porcentaje]);
       DecodeDate(Date,wAnio,wMes,wDia);
   end Else
   begin
       // Todavia no agrego código aqui.
   end;
end;
__________________
Miguel Román
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Incorrect values within SQLDA structure fedelinardi SQL 5 01-02-2018 03:52:07
TMemoField y error SQLDA brandolin Firebird e Interbase 0 16-02-2009 18:55:03
ods (on disk structure) arrayman Firebird e Interbase 1 25-11-2007 23:30:48
insert into tabla values (select *... ¿? jorgesl SQL 15 11-04-2006 21:29:08
Problemas con un Grid ( integer values ) aragorneuf Varios 6 28-04-2004 00:18:20


La franja horaria es GMT +2. Ahora son las 17:54:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi