Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Error en sql server 2000 y dbexpress (https://www.clubdelphi.com/foros/showthread.php?t=63503)

Tauro78 17-02-2009 14:58:03

Error en sql server 2000 y dbexpress
 
Hola, quisiera saber si me pueden orientar en lo siguiente: estoy trabajando con delphi 2007, sql server 2000 y dbexpress, cuando intento realizar un alta a una trabla por medio de un procedimiento almacenado me sale el siguiente mensaje:

Project Camiones.exe raised exception class EDatabaseError with message 'SPExiste_Empresa: Cursor not returned from Query'

Tengo el procedimiento almacenado enlazado a una sqlconnection, no se más me esta faltando.

Código Delphi [-]
 
procedure TfrmEmpresasAltas.cxButton1Click(Sender: TObject);
begin
if Edit1.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 := Edit1.Text;
            Active := true;
            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
                      ............................
                      ............................
 
                    except
                      raise;
                    end;
                      DMTablas.SPAlta_Empresa.Close;
                  end;
          end;
       end;
end;

desde ya gracias.

ContraVeneno 17-02-2009 15:24:51

Dos cosas:
1) tu condición Edit1.Text = ' ' creo que tiene un espacio. De cualquier manera, si el usuario ingresa espacios en blancos, tu condición se hace válida, lo cuál te daría un efecto no deseado en tu programa (consultaría un nombre en blanco). Yo te recomendaría: Trim(Edit1.Text) = EmptyStr

2) Los procedimientos almacenadas se ejecutan con el "ExecProc", no es necesario que pongas "Active := True".


La franja horaria es GMT +2. Ahora son las 23:40:00.

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