Ver Mensaje Individual
  #1  
Antiguo 15-12-2015
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Reputación: 14
ZiriusB Va por buen camino
Unhappy Problemas al guardar Float en Mysql

Buenas noches, estoy realizando una aplicación para llevar el control de los clientes en un gimnasio y al tratar de guardar los valores del monto en Mysql me salta el error "Column doesn't match value count at row 1", después de darle vueltas y vueltas vi que era porque estaba guardando en 3 campos diferentes valores decimales (9,8), (20,4), (52,5) por poner un ejemplo, y la sentencia Mysql me lo tomaba como 6 valores (9) (8) (20), (4), etc y todo por la COMA DECIMAL que hace que mysql los tome como dos valores distintos.

De esta forma me da el error: "Column doesn't match value count at row 1"
Código Delphi [-]
  
 begin
      with ADO1 do
         SQL.Clear;
      try
         ADO1.SQL.Add('INSERT INTO factura (cantfactu,subtfactu,ivafactu,totalfactu,horafactu');
         ADO1.SQL.Add(',idclientef,idpagof,iduserF)VALUES(');
         ADO1.SQL.Add(Quotedstr(combocant.Text));
         ADO1.SQL.Add(',');
         ADO1.SQL.Add((Floattostr(cant)));
         ADO1.SQL.Add(',');
         ADO1.SQL.Add((Floattostr(iva)));
         ADO1.SQL.Add(',');
         ADO1.SQL.Add((Floattostr(total)));
         ADO1.SQL.Add(',');
         ADO1.SQL.Add((FormatDateTime('yyyy/mm/dd',(Mfechahora))));
         ADO1.SQL.Add(',');
         ADO1.SQL.Add(QuotedStr(form2.edtcedula.Text));
         ADO1.SQL.Add(',');
         ADO1.SQL.Add(QuotedStr(tpago));
         ADO1.SQL.Add(',');
         ADO1.SQL.Add(QuotedStr('1'));
         ADO1.SQL.Add(');');
         ADO1.ExecSQL;
      finally
         ShowMessage('Añadido Correctamente a la Base de Datos!');
      end;



Intente guardar los valores como string pero los redondea como valores enteros:
Código Delphi [-]
   begin
      with ADO1 do
         SQL.Clear;
      try
         ADO1.SQL.Add('INSERT INTO factura (cantfactu,subtfactu,ivafactu,totalfactu,horafactu');
         ADO1.SQL.Add(',idclientef,idpagof,iduserF)VALUES(');
         ADO1.SQL.Add(Quotedstr(combocant.Text));
         ADO1.SQL.Add(',''');
         ADO1.SQL.Add((Floattostr(cant)));
         ADO1.SQL.Add(''',''');
         ADO1.SQL.Add((Floattostr(iva)));
         ADO1.SQL.Add(''',''');
         ADO1.SQL.Add((Floattostr(total)));
         ADO1.SQL.Add(''',');
         ADO1.SQL.Add((FormatDateTime('yyyy/mm/dd',(Mfechahora))));
         ADO1.SQL.Add(',');
         ADO1.SQL.Add(QuotedStr(form2.edtcedula.Text));
         ADO1.SQL.Add(',');
         ADO1.SQL.Add(QuotedStr(tpago));
         ADO1.SQL.Add(',');
         ADO1.SQL.Add(QuotedStr('1'));
         ADO1.SQL.Add(');');
         ADO1.ExecSQL;
      finally
         ShowMessage('Añadido Correctamente a la Base de Datos!');
      end;
   end;

Agradecería su orientación...
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."
Responder Con Cita