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...