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 Al Eliminar Registro (https://www.clubdelphi.com/foros/showthread.php?t=81384)

webmasterplc 09-11-2012 13:22:53

Error Al Eliminar Registro
 
1 Archivos Adjunto(s)
Buenas, estoy tratando de ejecutar una consulta para eliminar unos registros y me da el siguiente error

https://www.dropbox.com/s/nteegq0k1z...error11949.jpg

el código que uso es este.

Código Delphi [-]
procedure TFormEliminarPago.btn1Click(Sender: TObject);
var
codigo,factura,sqleliminar1,tipo:string;
begin
codigo:='0000';
factura:='100';
tipo:='54';
sqleliminar1:= 'delete * from Scuentasxcobrar where FCC_CODIGO= :fcccodigo and FCC_TIPOTRANSACCION=:fcctipo and FCC_NUMERO2=:fccnumero2';
if messagedlg ('Usted Va a Eliminar Los Registros de Pagos Relacionados Con ' +
  'esta factura. Este Procedimiento no se puede revertir, y tiene que registrar el Pago nuevamente desde cuentas por cobrar.. ¿Esta Usted Seguro?',mtconfirmation,[mbok,mbcancel],0)=mrok then
with datos.SQcxc do
      begin
      DatabaseName:='a2Utilitario';
      SQL.Clear;
      SQL.Text := sqleliminar1;
      ParamByName('fcccodigo').AsString:=codigo;
      ParamByName('fccnumero2').AsString:=factura;
      ParamByName('fcctipo').AsString:=tipo;
      Open;
      end;


end;

Uso Base de Datos DBISAM

Casimiro Notevi 09-11-2012 13:39:26

El open es para los select, debes usar execsql
Además de que te sobra el asterisco (*)

No estaría de más que echaras un vistazo a un simple tutorial de lenguaje sql.

webmasterplc 10-11-2012 03:22:09

Ya lo revise se me habia pasado pero me da este error
https://www.dropbox.com/s/5kfxg8h6lj...rrordbisam.jpg

Cita:

Empezado por Casimiro Notevi (Mensaje 449054)
El open es para los select, debes usar execsql
Además de que te sobra el asterisco (*)

No estaría de más que echaras un vistazo a un simple tutorial de lenguaje sql.


webmasterplc 10-11-2012 04:08:01

si la coloco hasta aqui correo bien
Código Delphi [-]
with datos.SQcxc do
      begin
      DatabaseName:='a2Utilitario';
      SQL.Clear;
      SQL.Add('DELETE FROM Scuentasxcobrar');
      SQL.Add('where FCC_CODIGO=:fcccodigo');
      ParamByName('fcccodigo').AsString:=codigo;
      ExecSQL;
      end;

Pero al agrgarle otra condicio me da el error
Código Delphi [-]
with datos.SQcxc do
      begin
      DatabaseName:='a2Utilitario';
      SQL.Clear;
      SQL.Add('DELETE FROM Scuentasxcobrar');
      SQL.Add('where FCC_CODIGO=:fcccodigo');
      SQL.Add('and FCC_TIPOTRANSACCION=:fcctipo');
      ParamByName('fcccodigo').AsString:=codigo;
      ParamByName('fcctipo').AsString:=tipo;
      ExecSQL;
      end;

ecfisa 10-11-2012 06:22:42

Hola webmasterplc.

En el soporte técnico de la página, encontre TDBISAMParam, revisando el enlace AsString dice:
Cita:

Use the AsString property to access or specify the current value of the parameter as a String type.
Setting the value of the parameter using the AsString method will set the DataType property to ftString.
Yo probaría cambiando la propiedad AsString por la que corresponda al tipo del campo FCC_TIPOTRANSACCION (si este fuera de un tipo diferente a ftString). Pero estoy dando palos a ciegas por que no conozco en absoluto esos componentes.

Por otro lado no pude encontrar un error significativamente semejante al que comentas usando esos componentes y tampoco hay mucho material:Como último recurso podés comunicarte con el Soporte Técnico via emáil o telefónica.

Saludos.

webmasterplc 10-11-2012 13:11:36

Muchas Gracias era que le estaba pasando un String a un Integer saludos


La franja horaria es GMT +2. Ahora son las 12:42:01.

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