Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Error: Valor de carácter no valido para especificacion cast'. (https://www.clubdelphi.com/foros/showthread.php?t=64177)

Tauro78 20-03-2009 18:06:03

Error: Valor de carácter no valido para especificacion cast'.
 
hola quisiera saber si me pueden ayudar en lo siguiente: estoy trabajando con sql server 2000, delphi 2006 y dbexpress. Tengo un formulario de altas, al momento de dar un alta me sale el siguiente error:

Project Camiones.exe raised exception class EDatabaseError with message
'Database Server Error: SQL State: 22018, SQL Error Code: 0
Valor de carácter no valido para especificacion cast'.

a que se debe este error, desde ya muchas gracias.

ContraVeneno 20-03-2009 19:36:08

se debe a que tienes un Valor de carácter no valido para especificacion cast

:D:D

Ya en serio, si pudieras poner el código que te genera el error sería más sencillo detectar la falla, así de entrada, yo diría que estas utilizando un Cast con tipo de dato no válido, o estas pasando un entero en lugar de una cadena, o algo así. Pero así adivinando va a estar muy difícil encontrar la falla exacta.

Tauro78 20-03-2009 19:53:53

ok, aqui te pongo el codigo,

Código Delphi [-]
 
procedure TfrmEmpresasAltas.cxButton1Click(Sender: TObject);
begin
if (Trim(Edit1.Text) = EmptyStr) or (cxDateEdit1.Text = '') or (cxDateEdit2.Text = '') or (cxDateEdit3.Text = '')
    then
   begin
     MessageDlg('Se deben completar todos los campos.', MtInformation, [MbOK], 0);
     Exit;
   end
     else
       begin
        with DMTablas.SPExiste_Empresa do
          begin
            Close;
            ParamByName('@SP_NOMBRE').AsString := UpperCase(Edit1.Text);
            ExecProc;
            if ParamByName('@RESULTADO').AsInteger = 1 then
              begin
                MessageDlg('Ya existe una empresa con ese nombre.', MtInformation, [MbOK], 0);
                Close;
                Exit;
              end
                else
                  begin
                    try
                      DMTablas.SPAlta_Empresa.Close;
                      DMTablas.SPAlta_Empresa.ParamByName('@NOMBRE').AsString := UpperCase(Edit1.Text);
                      DMTablas.SPAlta_Empresa.ParamByName('@FECHA_VTO_DGI').AsDateTime := cxDateEdit1.Date;
                      DMTablas.SPAlta_Empresa.ParamByName('@FECHA_VTO_BPS').AsDateTime := cxDateEdit2.Date;
                      DMTablas.SPAlta_Empresa.ParamByName('@FECHA_VTO_PL_TRABAJO').AsDateTime := cxDateEdit3.Date;
                      DMTablas.SPAlta_Empresa.ExecProc;
                    except
                      raise;
                    end;
                      DMTablas.SPAlta_Empresa.Close;
                      Edit1.Text := '';              
                      cxDateEdit1.Text := '';    
                      cxDateEdit2.Text := '';
                      cxDateEdit3.Text := '';
                  end;
          end;
       end;
end;

ContraVeneno 20-03-2009 20:00:56

El error pude estar en los parámetros que le envías desde este código y los valores que espera tu procedimiento almacenado... incluso dentro del mismo procedimiento puedes tener el error.

Primero intenta ejecutar tu tu procedimiento desde el "Query Analyzer" solo para descartar que el procedimiento está correcto. Si no te marca un error en el "query analizer" entonces el problema está en como envías los parámetros y como los recibe el procedimiento.


La franja horaria es GMT +2. Ahora son las 19:50:09.

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