Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
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 15-03-2005
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
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
Smile Cacemos a esa liebre

¡Buen día a todos!

Dakar:

Descartando que hayas puesto accidentalmente un símbolo de igual (=) en la llamada la función ShowMessage, podemos decir que evidentemente la expresión
Código Delphi [-]
Q.FieldByName ('devol').AsString
está regresando un cadena de caracteres con el sufijo '='.

Cacemos a esa liebre :

Pregunta 1. ¿Qué sucede si en lugar de la columna devol indicas la columna monto?
Código Delphi [-]
ShowMessage ('Valor Monto: [ ' + Q.FieldByName ('monto').AsString + ' ]');
Esperamos respuesta.

Al González.

Última edición por Al González fecha: 15-03-2005 a las 19:29:48.
Responder Con Cita
  #2  
Antiguo 15-03-2005
dakar dakar is offline
Registrado
 
Registrado: mar 2005
Posts: 7
Poder: 0
dakar Va por buen camino
O.K.
Poniendo el codigo que me escribes en tu respuesta, me surgieron varias
ideas de ir descartando el problema (acorralando la liebre).
Al poner el codigo me muestra la sumatoria de cada vendedor, del campo
monto, sin problemas;entonces me dije- "a lo mejor, por alguna
informatica(no entendible) razon, desde la sumatoria del segundo campo en
adelante me da el problema"-cambié mi SQL y puse "..sum(devol) devol,
sum(monto) monto..", pero sigue igual, es decir los montos me los muestra bien y devol me los muestra mal. también pensé-"a lo mejor cuando existen
valores en 0 está el problema o mejor aún cuando un vendedor tiene una
sumatoria en 0 los demás presentan problemas"-Como el campo "monto"
siempre tiene valores, los cambié y dejé algunos vendedores con todos sus
montos en 0, a otros con algunos montos en 0 y a otros con los montos
normales; lo probé, mostré los valores de la sumatoria del campo "monto" y
se muestrán bien; si me pude dar cuenta que cuando la sumatoria es 0
siempre arroja un signo "=", pero cuando la sumatoria es mayor la muestra
bien (esto podría ser subsanable al momento de traspasarlo a una tabla de
paso) el problema es que "devol" lo sigue mostrando mal, es decir el único
vendedor que tiene como sumatoria 25000 me lo muestra como "2500=".

Gracias.
Responder Con Cita
  #3  
Antiguo 17-03-2005
dakar dakar is offline
Registrado
 
Registrado: mar 2005
Posts: 7
Poder: 0
dakar Va por buen camino
Para Finalizar

Hola a Todos:

Habiendo tenido un tiempo, y luego de cambiar la programación de mi proceso completo en donde necesitba obtener la sumatoria de los campos
mencionados en este hilo, estuve revisando los componentes FIBPlus de los
cuales había leido pero no los había utilizado. Bajé e instalé los
componentes y luego hice la misma consulta, largamente mencionada, en un
SqlClientDataset(1) y en un FibDataset(2); al mostrar en pantalla los datos
generados por ambos componentes (específicamente el campo devol con
valor "25000") el componente 1 me mostraba "2500=" y el 2 "25000"; es
decir, existe un problema con el SqlClientDataset del DbExpress.

Si alguien sabe de éste problema o algún comentario al respecto me
gustaría escucharlo ya que cada vez que traté de buscar la solución a
través de los distintos foros parece que a nadie le había sucedido. Además
la idea de usar los Componentes DbExpress es que, en el posible cambio
de la base de datos a otro motor, no tenga necesidad de cambiar los
componentes de acceso a ésta.

Espero algún comentario.
Responder Con Cita
  #4  
Antiguo 17-03-2005
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
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
Smile TSimpleDataSet

¡Buen día a todos!


Cita:
Empezado por dakar
...en un SqlClientDataset(1) y en un FibDataset(2); al mostrar en pantalla los datos generados por ambos componentes (específicamente el campo devol con valor "25000") el componente 1 me mostraba "2500=" y el 2 "25000"; es decir, existe un problema con el SqlClientDataset del DbExpress...
No se si esto sirva de algo, pero:
Cita:
Empezado por Ayuda de Delphi 7
The dbExpress page of the Component palette includes TSimpleDataSet for use with simple, two-tier database applications (TSimpleDataSet replaces TSQLClientDataSet).
¿Qué versión de Delphi utilizas? Sería interesante probar esto mismo con TSimpleDataSet.

Espero esto sea de utilidad, seguimos en contacto.

Al González.
Responder Con Cita
  #5  
Antiguo 17-03-2005
dakar dakar is offline
Registrado
 
Registrado: mar 2005
Posts: 7
Poder: 0
dakar Va por buen camino
Hola a todos nuevamente,

Al González, creo haberlo mencionado por ahí, utilizo el Delphi 6 por lo que
no cuento con el TSimpleDataset. Habría sido una buena alternativa haber
podido probar ese componente para descartar definitivamente el problema.
Ahora, lo que yo no sé es si alguien (en el foro ) ha trabajado con las mismas
herramientas que yo menciono y si tiene algunas consultas a la base de datos
similar a la que yo expongo y que no tenga problemas; así podría ir
descartando otras variables externas, o no tanto, al Delphi como: instalación,
Sistema Operativo, Parches, etc. La idea es, como tu has dicho AL, "Cazar la
liebre".
Responder Con Cita
  #6  
Antiguo 17-03-2005
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
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
Smile Cazando a la liebre

¡Buen día a todos!

Dakar:

Pregunta 2. ¿Ocurre lo mismo si en lugar de utilizar un componente TSQLClientDataSet, utilizas un TSQLQuery o TSQLDataSet?

También puede ser que algún manejador de evento u otro tipo de establecimiento le esté metiendo ruido a la consulta. Prueba aislando por completo la consulta en una aplicación limpia (nueva), dónde sólo tengas los componentes esenciales involucrados en este caso.

Seguimos en contacto.

Al González.
Responder Con Cita
  #7  
Antiguo 18-03-2005
dakar dakar is offline
Registrado
 
Registrado: mar 2005
Posts: 7
Poder: 0
dakar Va por buen camino
Hola a todos,

Al Gonzalez:
Me pareció una buena idea lo que planteaste, de hecho lo tenía pendiente,
pero por problemas de tiempo no lo había probado; aunque en realidad no
me tomó nada de tiempo hacer ésta prueba que creo debió ser la primera
que tendría que haber hecho. OK, traspasé la misma consulta a los tres
componentes y mostré los datos de los tres al mismo tiempo; el código es
el siguiente;
[ delphi ]
procedure TForm1.Button1Click(Sender: TObject);
var
cSql : string;
begin
SQLQuery.SQL.Clear;

cSql := 'SELECT vendedor, Sum(devol) devol, Sum(monto) monto'+
' FROM Mov_NOTA GROUP BY vendedor';

SQLDSet.CommandText := cSql;
SQLClDSet.CommandText := cSql;
SQLQuery.SQL.Add(cSql);

SQLDSet.open;
SQLClDSet.Open;
SQLQuery.Open;
while not SQLDSet.Eof do
begin
ShowMessage('Devol SQLDSet: [' + SQLDSet.fieldbyname('devol').AsString+']'+
' - Devol SQLClDSet : [' + SQLClDSet.fieldbyname('devol').AsString+']'+
' - Devol SQLQuery : [' + SQLQuery.fieldbyname('devol').AsString+']');
SQLDSet.Next;
SQLClDSet.Next;
SQLQuery.Next;
end;
SQLDSet.Close;
SQLClDSet.Close;
SQLQuery.Close;
end;
[/delphi ]

Ojalá se vea bien el código ya que soy nuevo en el foro y estoy usando
por primera vez las etiquetas "[delphi]" (cualquier problema lo escribiré
nuevamente).
Bueno pongo aquí también mi ventana de diseño para despejar cualquier
duda:


El resultado de la prueba de la sumatoria del campo devol que debe mostrar
"25000" es el siguiente (los resultados está entre paréntecis cuadrados para
visualizarlos mejor):


, sin palabras.
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


La franja horaria es GMT +2. Ahora son las 21:26:36.


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