Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda con exeception class EOleExeception (https://www.clubdelphi.com/foros/showthread.php?t=63653)

chino150 25-02-2009 00:19:39

Ayuda con exeception class EOleExeception
 
Hola todos,


Se me a presentado otro problema con este error
exeception class EOleExeception with message 'No se han especificado
valores para algunos de los parametros,
pero analizo el código donde le asigno los valores:
Código Delphi [-]
// Obtener el numero de factura
     QTemp.SQL.Text := 'Select Max(CodFactura) From Factura where Tipo = '+QuotedStr(Tipo);
     QTemp.Open;
     If QTemp.RecordCount = 0 then NumFact:=1
     else NumFact := QTemp.Fields[0].AsInteger+1;
     QTemp.Close;
Este es el codigo donde ultizo los parametros para imprimir la factura

Código Delphi [-]
If RadioGroup2.ItemIndex = 1 then
     begin
        RFactura:=TRFactura.Create(self);
        RFactura.ADOQuery1.parameters[0].Value := numfact;
        RFactura.ADOQuery1.parameters[1].Value := Tipo;
        RFactura.ADOQuery1.Open;
        try
           If RadioGroup1.ItemIndex = 1 then RFactura.Preview
           else RFactura.Print;
        finally
            RFactura.Free;
        end; //try
     end else
         begin
            If Tipo = 'F' then
            begin
               RFacturaRes:=TRFacturaRes.Create(self);
               RFacturaRes.ADOQuery1.parameters[0].Value := numfact;
               RFacturaRes.ADOQuery1.parameters[1].Value := Tipo;
               RFacturaRes.ADOQuery1.Open;
               try
                  If RadioGroup1.ItemIndex = 1 then RFacturaRes.Preview
                  else RFacturaRes.Print;
               finally
                  RFacturaRes.Free;
               end;
e buscado por todo el código y no se por que este error.

Gracia mil

Mary Carmen G. 25-02-2009 01:41:31

HOla:
Que componente es Qtemp? es un AdoQuery, bueno en primer lugar te recomiendo que caches esa excepcion con...


Código:


Código:

Try
    QTemp.SQL.Text := 'Select Max(CodFactura) From Factura where Tipo
                                      = '+QuotedStr(Tipo);
QTemp.Open;
except
      on e:EOLEException do //error de conexion
          begin
            MessageDlg('Error . '+e.Message, mtError,[mbOk], 0);
            exit;
          end;
      on e:EdataBaseError do  //error en base de datos
      begin
            MessageDlg('Error . '+e.Message, mtError,[mbOk], 0);
            exito:=false;
            Query.Close;
            exit;
      end;
    end; //except




Y ademas el error que te indica es con los parametros en la consulta, prueba agregandole las comillas simples al tipo que le mandas de parametro:

Código:

QTemp.SQL.Text := 'Select Max(CodFactura) From Factura where Tipo = '''+QuotedStr(Tipo)+'''';

chino150 25-02-2009 01:44:57

ok lo intento luego te digo

Mary Carmen G. 25-02-2009 01:48:35

Cachar Excepcion
 
Para poder cachar la Excepcion necesitas agregar la unit ComObj en el Uses de tu UNit.

Saludos

chino150 25-02-2009 02:08:16

Que es esto

exito:=false;

Mary Carmen G. 25-02-2009 02:16:05

Omite eso!! Lo copie de un codigo que tengo, es una variable boolean, que indica que hubo un error de base de datos.

Saludos.

chino150 25-02-2009 02:19:45

Sique con el mismo error

Mary Carmen G. 25-02-2009 02:27:16

Ya verificaste bien los parametros?

- Si los estas diseñando en tiempo de diseño, en la propiedad Parameters del componente AdoQuery agregalos y en datatype selecciona ftString para indicar que el parametro es de tipo String.

- Si lo estas asignando en tiempo de ejecucion prueba asi:
Código:

Código Delphi [-]

  try
      Query.SQL.Clear;
      //Agrega la consulta que ejecutará el query.
      Query.SQL.Add('Select id_elemento,nombre,'); 
      Query.SQL.Add('id_tipo,id_representacion');
      Query.SQL.Add('from ELEMENTOS_PROCESO');
      Query.SQL.Add('where id_elemento=:id');
      Query.Parameters.ParamByName('id').datatype:=ftString;
      Query.Parameters.ParamByName('id').value:=IdElemento;
      Query.Active:=false;
      //Se ejecuta la consulta
      Query.Active:=true;
      ...
  Except
      ...
  End;


chino150 25-02-2009 02:57:17

No se que es la falta nada me funciona y tengo que entregar mañana este trabajo que lio es este.

Mary Carmen G. 25-02-2009 04:37:08

Hola Chino150 aun sigue con ese problema?

chino150 25-02-2009 05:22:23

Si debo de entregar este projecto mañana y este es lo unico que me falta para finalizarlo

Mary Carmen G. 25-02-2009 05:31:17

Cual es tu correo? puedes conectarte ahorita? hotmail

chino150 25-02-2009 06:39:03

miguelmendez@14hotmail.com


La franja horaria es GMT +2. Ahora son las 12:51:47.

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