Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   No se puede convertir variable de tipo null a tipo integer. (https://www.clubdelphi.com/foros/showthread.php?t=76842)

JairoC 30-11-2011 15:08:26

No se puede convertir variable de tipo null a tipo integer.
 
Hola!!! Tengo un problemita... Estoy haciendo un cierre z... Estoy en la parte que tengo que seleccionar el primer y ultimo numero de cada factura... Para eso uso un Query, al que le agredo los fields mediante codigo... y me sale ese error.. Les muestro el codigo:
with(dm.IBQuery_general)do
begin
FieldDefs.Clear;
FieldDefs.Add('MINIMOA', ftInteger, 0, FALSE);
FieldDefs.Add('MAXIMOA', ftCurrency, 0, FALSE);
SQL.Clear;
SQL.Add('SELECT MIN(NUMERO) AS MINIMOA, MAX(NUMERO) AS MAXIMOA from facturas_de_Ventas where TIPO_FACTURA =:"A" and id_cierrez is null ');
Open;
if not IsEmpty then
begin
PRIMEROA:=FieldValues['MINIMOA']; // ACA SALE EL ERROR

JairoC 30-11-2011 15:11:11

A la variable PRIMEROA la tengo declarada como integer...

oscarac 30-11-2011 15:13:52

y pq no ubicas todas las facturas del dia, la ordenas por numero de factura...
vas al primer registro y tienes la inicial, vas al ultimo y tienes la final

no estoy muy seguro...
pero veo que en tu query hace 2 operaciones... el Minimo (de la tabla facturas) y luego el maximo de la misma tabla... cuando hay opcos datos puede hacerlo rapido... pero si estas haciendo un cierre Z me imagino que la tabla facturas crecera exponencialmente todos los dias...

y hacer esas 2 operaciones a la misma tabla en una misma consulta quiza no sean tan optimo
es mi opinion..
si alguien mucho mas sabio y con mas experiencia puede intervenir.. bienvenido

JairoC 30-11-2011 15:18:01

Lo que pasa es que tengo todas las facturas A,B,C en una misma tabla... Y necesito el primero y el ultimo de cada tipo de factura...

oscarac 30-11-2011 15:22:12

Cita:

Empezado por JairoC (Mensaje 419968)
Lo que pasa es que tengo todas las facturas A,B,C en una misma tabla... Y necesito el primero y el ultimo de cada tipo de factura...

si me imagino
pero puedes hacer 2 querys 1 para el minimo y otro para el maximo

haces tambien un cierre X?
es lo mismo que el Z

ecfisa 30-11-2011 15:43:11

Cita:

Empezado por JairoC (Mensaje 419965)
Les muestro el codigo:
with(dm.IBQuery_general)do
begin
FieldDefs.Clear;
FieldDefs.Add('MINIMOA', ftInteger, 0, FALSE);
FieldDefs.Add('MAXIMOA', ftCurrency, 0, FALSE);
SQL.Clear;
SQL.Add('SELECT MIN(NUMERO) AS MINIMOA, MAX(NUMERO) AS MAXIMOA from facturas_de_Ventas where TIPO_FACTURA =:"A" and id_cierrez is null ');
Open;
if not IsEmpty then
begin
PRIMEROA:=FieldValues['MINIMOA']; // ACA SALE EL ERROR

Hola JairoC.

Por favor usa etiquetas cuando pongas tu código:



Saludos y gracias por tu colaboración.


La franja horaria es GMT +2. Ahora son las 08:03:05.

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