Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ''not a valid floating point value (https://www.clubdelphi.com/foros/showthread.php?t=87724)

Ian_Martinez 17-02-2015 18:52:58

''not a valid floating point value
 
Hola a todos: Llevo un tiempo programando en Delphi y este foro me ha ayudado mucho a solucionar mis dudas por lo que he transitado con mis errores sin tener que escribir y preguntar directamente... El problema es el siguiente tengo una tabla proyecto la cual es master detalle de una tabla ficha técnica, y de otra tabla tasa porcentual, entonces al iniciar el flujo de trabajo que sería insertar primero un proyecto y después cualquiera de las otras dos situaciones todo está bien pq las tablas están vacías, pero cuando voy a hacerlo por segunda vez insertar nuevamente un proyecto me sale el error (''not a valid floating point value). No sé qué pueda hacer creo que lo he hecho todo y no he resuelto, espero que ustedes que tienen mucho más experiencia me puedan ayudar a encontrar una vía para solucionar ese problema. Saludos

ecfisa 17-02-2015 19:21:30

Hola Ian_Martinez, bienvenido a Club Delphi :)

Como a todos los que se inician en los foros te invitamos a que leas nuestra guía de estilo.

Con los datos que nos das es casi imposible dar una respuesta acertada. El error que mencionas, ''not a valid floating point value" se produce por que, al momento de intentar la conversión a punto flotante, algúno de los campos involucrados es nulo o tiene un valor no apto (inválido) para la acción .

Sería de mucha utilidad que publicaras la parte del código en donde se produce el error.

Saludos :)

Ian_Martinez 17-02-2015 22:37:37

Alomejor no me supe explicar bien pero te comente que tenía dos tablas que son master detalle de la tabla que trato de insertar, entonces cuando le quito el master detalle me permite insertar normalmente, pero si se lo pongo (ósea hago la relación entre las ADOTable) no me deja insertar y me lanza el ERROR no sé qué pueda ser eso??... y creo que no inserto ningún valor null o vacío, pq todo esta validado en el BeforePost.
Si tienes alguna idea de lo que pudiera estar sucediendo te lo agradecería.

ecfisa 18-02-2015 01:20:20

Hola.

El simple echo de establecer una relación master-detail con ADOTables no puede generar ese error.
Podes comprobarlo usando las tablas mismas que Delphi trae:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  DataSource1.DataSet:= ADOTableMaster;
  DataSource2.DataSet:= ADOTableDetail;

  with ADOTableMaster do
  begin
    Connection:= ADOConnection1;
    TableName := 'customer';
    Open;
  end;

  with ADOTableDetail do
  begin
    Connection:= ADOConnection1;
    TableName := 'orders';
    MasterSource:= DataSource1;
    MasterFields:= 'CustNo';
    Open;
  end;
end;
Con toda seguridad hay código involucrado en algún evento de la tabla detail que lo está provocando, ¿ Cuál es el contenido del evento BeforePost ?

Saludos :)

nlsgarcia 18-02-2015 01:32:17

Ian_Martinez,

Cita:

Empezado por Ian_Martinez
...A lo mejor no me supe explicar bien...

:rolleyes:

Te sugiero revisar los puntos 7 y 8 de la Guía de estilo de los foros.

¡Gracias por tu cooperación! :) ^\||/

Saludos,

Nelson.

Ian_Martinez 20-02-2015 15:24:41

Salu2
 
Después de haber revisado nuevamente está claro que no tiene nada que ver el master detalle cómo me comentabas, el problema está en unos onChange que yo realizo al introducir los datos para insertarlos ya que los deshabilite todos y se eliminó el error: El problema está ahora en que tengo que hacerlo los OnChange, aquí te dejo uno de eso Ellos para ver si está bien esa forma de validarlo. Saludos y Gracias por su Cooperación.
Código Delphi [-]
procedure TForm_Principal.DBEdit10Change(Sender: TObject);
var
  cpg, vi, tp, k, a, resultado: Currency;
begin
  if (DBEdit10.Text  '') and (DBEdit11.Text  '') and (DBEdit8.Text  '')
     and (DBEdit9.Text  '') then
  begin
    cpg := StrToCurr(ComboBox1.Text);
    vi := StrToCurr(DBEdit10.Text) * 1000;
    tp := StrToCurr(DBEdit11.Text) / 100;
    k := StrToCurr(DBEdit8.Text);
    a := StrToCurr(DBEdit9.Text);
    resultado := cpg * vi * tp * (k * a);
    DBEdit12.Text := CurrToStr(SimpleRoundTo(resultado,0));
  end;
end;

ecfisa 20-02-2015 15:45:57

Hola Ian.

Cuando incluyas código en la consulta usa las etiquetas del siguiente modo para que se visualize mejor:



Ya edité tu mensaje agregándolas.

Saludos y gracias por tu colaboración :)

ecfisa 20-02-2015 16:32:25

Hola de nuevo.

Para poder sugerirte una mejor opción, sería importante saber que hace el código y de que tipo son los campos relacionados a los DBEdits.

Pero así, a simple vista, creo que te faltaría evaluar el valor del combo, vg.:
Código Delphi [-]
  if (DBEdit1.Text > '') and ... and (ComboBox1.ItemIndex <> -1) then
  ...

Saludos :)


La franja horaria es GMT +2. Ahora son las 07:24:22.

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