Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-12-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
Eliminar Registro

Hola muchachos como estan

Mi problema es que deseo eliminar un registro pero me da un error al momento de correr la aplicacion me explico mejor

Estoy usando delphi 7

Una tabla llamada = Suplidor
con 13 Campos que son: (Codigo,Fecha,Rnc,Suplidor,Contacto,Direccion,Area,Telefono,Area1,Fax,Termino,Limite y Email)
un Adoquery llamado = Temp

el codigo es el siguiente

Código Delphi [-]
IF Application.MessageBox ('Desea Eliminar Este Registro'+
           Chr(13)+'',
          '',mb_YesNo+MB_IconStop) = idYes Then
    Begin
     Temp.SQL.Clear;
     Temp.Sql.Text:='Delete from Suplidor where Codigo = :Codigo and Fecha = :Fecha and Rnc = :Rnc and Suplidor = :Suplidor and Contacto = :Contacto and Direccion = ireccion and Area = :Area and Telefono = :Telefono and Area1 = :Area1 and Fax = :Fax and Termino = :Termino and Limite = :Limite and Email = :Email';
     Temp.Parameters.ParamByName('Codigo').Value:= EDCodigo.text;
     Temp.Parameters.ParamByName('FECHA').Value:= EDfecha.Text;
     Temp.Parameters.ParamByName('Rnc').Value:= MERnc.text;
     Temp.Parameters.ParamByName('Contacto').Value:= EDContacto.text;
     Temp.Parameters.ParamByName('Direccion').Value:= EDDireccion.text;
     Temp.Parameters.ParamByName('Area').Value:= CBTelefono.text;
     Temp.Parameters.ParamByName('Telefono').Value:= METelefono.text;
     Temp.Parameters.ParamByName('Area1').Value:= CBFax.text;
     Temp.Parameters.ParamByName('Fax').Value:= MEFax.text;
     Temp.Parameters.ParamByName('Termino').Value:= CBterminos.text;
     Temp.Parameters.ParamByName('Limite').Value:= EDLimite.text;
     Temp.Parameters.ParamByName('Email').Value:= EDEmail.text;
     Temp.ExecSQL;
     ShowMessage('Registro Eliminado');
     SuplidorModificar.Enabled := False;
     SuplidorEliminar.Enabled := False;
    End;

Cuando intento correr la aplicacion me manda un mensage que dice:

"String Literal may have at most 255 elements"

el error me lo marca en la linea del Temp.Sql.Text =

si le quito a la linea los dos ultimos campos como son limite y email me correr sin problema pero entonce no puedo eliminar esos dos campos que hago muchachos para resolver esto.
Responder Con Cita
  #2  
Antiguo 07-12-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por probar, prueba a añadir varias líneas:

Código Delphi [-]
Temp.SQL.Clear;
Temp.Sql.Lines.Add('Delete from Suplidor where Codigo = :Codigo and Fecha =')+
Temp.Sql.Lines.Add(' :Fecha and Rnc = :Rnc and Suplidor = :Suplidor and Contacto = :Contacto and Direccion = ireccion and Area = :Area and ')+
Temp.Sql.Lines.Add(' Telefono = :Telefono and Area1 = :Area1 and Fax = :Fax and Termino = :Termino and Limite = :Limite and Email = :Email ');
Temp.Parameters.ParamByName('Codigo').Value:= EDCodigo.text;
etc...

Última edición por Casimiro Notevi fecha: 07-12-2010 a las 01:43:48.
Responder Con Cita
  #3  
Antiguo 07-12-2010
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
complementar la respuesta

eh amigo casimiro a donde quedo la redaccion de texto resaltado en delphi ??????

respondiendo a la pregunta:
Código Delphi [-]
        with Fmodulo.Qry_Temp2 do
         begin
          SQL.Clear;
          SQL.Add('delete from clientes');
          SQL.Add('where idcliente=eliminar2');
          Parameters.ParamByName('peliminar2').Value:=weliminar;
          ExecSQL;
          Application.MessageBox('Registro Eliminado con Exito','Registro Eliminado', MB_OK + MB_ICONINFORMATION);
          limpiar;
          saca_consecutivo;
         end;

espero te sirva

Última edición por Casimiro Notevi fecha: 07-12-2010 a las 01:43:12. Razón: complemento
Responder Con Cita
  #4  
Antiguo 07-12-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
voy a probar les cuento mañana muchachos
Responder Con Cita
  #5  
Antiguo 07-12-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
no me funciono me da un error donde dice lines como que no lo reconoce

osea el temp.sql.lines

no me correr por el lines no se que hacer
Responder Con Cita
  #6  
Antiguo 07-12-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por agustin173 Ver Mensaje
no me funciono me da un error donde dice lines como que no lo reconoce

osea el temp.sql.lines

no me correr por el lines no se que hacer
Depende del componente que sea, puede que: temp.selectsql.lines
Responder Con Cita
  #7  
Antiguo 07-12-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
Tampoco funciona asi con Temp.Selectsql.line,

el selectsql no lo reconoce

puedes darme un codigo que me funcione para eliminar registro de una tabla que use cadena larga por favor, es que no se mucho de programacion.

el componente Temp es un Adoquery
Responder Con Cita
  #8  
Antiguo 07-12-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
temp.sql.add

Lo acabo de mirar, es así.
Responder Con Cita
  #9  
Antiguo 07-12-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
casimiro lo hice como me digiste pero me da otro error

cuando intento correr el programa el error dice:

"Statement expected, but expresion of type 'integer' found'

y me lo marca en la siguiente line:

Código Delphi [-]
Temp.Sql.Add(' Telefono = :Telefono and Area1 = :Area1 and Fax = :Fax and Termino = :Termino and Limite = :Limite and Email = :Email ');

Que debo hacer.
Responder Con Cita
  #10  
Antiguo 07-12-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Puedes poner exactamente el código que estás usando?
Responder Con Cita
  #11  
Antiguo 08-12-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
casimiro el codigo es el siguiente:

Código Delphi [-]
IF Application.MessageBox ('Desea Eliminar Este Registro'+
           Chr(13)+'',
          '',mb_YesNo+MB_IconStop) = idYes Then
    Begin
     Temp.SQL.Clear;
     Temp.Sql.Add('Delete from Suplidor where Codigo = :Codigo and Fecha =')+
     Temp.Sql.Add(' :Fecha and Rnc = :Rnc and Suplidor = :Suplidor and Contacto = :Contacto and Direccion = ireccion and Area = :Area and ')+
     Temp.Sql.Add(' Telefono = :Telefono and Area1 = :Area1 and Fax = :Fax and Termino = :Termino and Limite = :Limite and Email = :Email ');
     Temp.Parameters.ParamByName('Codigo').Value:= EDCodigo.text;
     Temp.Parameters.ParamByName('FECHA').Value:= EDfecha.Text;
     Temp.Parameters.ParamByName('Rnc').Value:= MERnc.text;
     Temp.Parameters.ParamByName('Contacto').Value:= EDContacto.text;
     Temp.Parameters.ParamByName('Direccion').Value:= EDDireccion.text;
     Temp.Parameters.ParamByName('Area').Value:= CBTelefono.text;
     Temp.Parameters.ParamByName('Telefono').Value:= METelefono.text;
     Temp.Parameters.ParamByName('Area1').Value:= CBFax.text;
     Temp.Parameters.ParamByName('Fax').Value:= MEFax.text;
     Temp.Parameters.ParamByName('Termino').Value:= CBterminos.text;
     Temp.Parameters.ParamByName('Limite').Value:= EDLimite.text;
     Temp.Parameters.ParamByName('Email').Value:= EDEmail.text;
     Temp.ExecSQL;
     ShowMessage('Registro Eliminado');
     SuplidorModificar.Enabled := False;
     SuplidorEliminar.Enabled := False;
    End;
end;

cuando corre el error que dice es:

"Statement expected, but espresion of type 'integer' found"

lo marca en la linea:

Código Delphi [-]
Temp.Sql.Add(' Telefono = :Telefono and Area1 = :Area1 and Fax = :Fax and Termino = :Termino and Limite = :Limite and Email = :Email ');

Que puedo hacer chequea el codigo por favor.
Responder Con Cita
  #12  
Antiguo 08-12-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Claro, es que has puesto "+" en lugar del punto y coma ';' al final de las líneas.

Código Delphi [-]

Temp.Sql.Add('Delete from Suplidor where Codigo = :Codigo and Fecha =')+     <-------
Temp.Sql.Add(' :Fecha and Rnc = :Rnc and Suplidor = :Suplidor and Contacto = :Contacto and Direccion = ireccion and Area = :Area and ')+     <-------
Temp.Sql.Add(' Telefono = :Telefono and Area1 = :Area1 and Fax = :Fax and Termino = :Termino and Limite = :Limite and Email = :Email ');
Responder Con Cita
  #13  
Antiguo 08-12-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
casimiro el programa correr y no da error pero no elimina

los datos permanecen en la base de dato

que hacemos ahora.
Responder Con Cita
  #14  
Antiguo 08-12-2010
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
prueba asi

Código Delphi [-]
with temp do
 begin
     SQL.Clear;
     Sql.Add('Delete from Suplidor');
     sql.add('where Codigo = :Codigo');
     Sql.Add(' and Fecha = :Fecha and Rnc = :Rnc and Suplidor = :Suplidor and Contacto = :Contacto and Direccion = ireccion and Area = :Area and ');
     Sql.Add(' Telefono = :Telefono and Area1 = :Area1 and Fax = :Fax and Termino = :Termino and Limite = :Limite and Email = :Email ');
     Parameters.ParamByName('Codigo').Value:= EDCodigo.text;
     Parameters.ParamByName('FECHA').Value:= EDfecha.Text;
     Parameters.ParamByName('Rnc').Value:= MERnc.text;
     Parameters.ParamByName('Contacto').Value:= trim(EDContacto.text);
     Parameters.ParamByName('Direccion').Value:= trim(EDDireccion.text);
     Parameters.ParamByName('Area').Value:= trim(CBTelefono.text);
     Parameters.ParamByName('Telefono').Value:= trim(METelefono.text);
     Parameters.ParamByName('Area1').Value:= trim(CBFax.text);
     Parameters.ParamByName('Fax').Value:= trim(MEFax.text);
     Parameters.ParamByName('Termino').Value:= trim(CBterminos.text);
     Parameters.ParamByName('Limite').Value:= trim(EDLimite.text);
     Parameters.ParamByName('Email').Value:= trim(EDEmail.text);
     ExecSQL;
     Application.MessageBox('Registro Eliminado con Exito','Registro Eliminado', MB_OK + MB_ICONINFORMATION);
     SuplidorModificar.Enabled := False;
     SuplidorEliminar.Enabled := False;
    End;

ahora la pregunta el campo fecha de que tipo es? y que estas pasando en el Tedit de fecha?

Última edición por microbiano fecha: 08-12-2010 a las 19:16:51. Razón: modificacion
Responder Con Cita
  #15  
Antiguo 08-12-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
microbiano me dice que el registro fue eliminado pero no esta eliminando

los registros siguen en la base de dato

el campo fecha es tipo date

la fecha se coge del sistema de windows y se guarda como constancia de que fecha fue digitado ese registro.

que podemos hacer para resolver este dilema la aplicacion correr pero no elimina
Responder Con Cita
  #16  
Antiguo 08-12-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
alguien puede darme una mano por favor con este codigo no me quiere eliminar y no se que hacer

algo debe andar mal en este codigo
Responder Con Cita
  #17  
Antiguo 08-12-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No conozco ado, pero seguramente te falta confirmar la transacción, applyupdate, commitretaining, etc.
Responder Con Cita
  #18  
Antiguo 08-12-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
casimiro no entiendo como funciona esas intrucciones que dice puedes explicarme mejor

lo que estoy usando es adoquery
Responder Con Cita
  #19  
Antiguo 08-12-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
por favor quien me puede ayudar
Responder Con Cita
  #20  
Antiguo 09-12-2010
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
Post que tal si pones la estructura de la base de datos

hola que tal si pones la estructura para la base de datos. pero prueba con esto haber que onda.

Código Delphi [-]
with temp do
 begin
     SQL.Clear;
     Sql.Add('Delete from Suplidor');
     sql.add('where Codigo = :Codigo');
     Sql.Add(' and Fecha = :Fecha and Rnc = :Rnc and Suplidor = :Suplidor and Contacto = :Contacto and Direccion = ireccion and Area = :Area and ');
     Sql.Add(' Telefono = :Telefono and Area1 = :Area1 and Fax = :Fax and Termino = :Termino and Limite = :Limite and Email = :Email ');
     Parameters.ParamByName('Codigo').Value:= EDCodigo.text;
     Parameters.ParamByName('FECHA').Value:= EDfecha.Text;
     Parameters.ParamByName('Rnc').Value:= MERnc.text;
     Parameters.ParamByName('Contacto').Value:= trim(EDContacto.text);
     Parameters.ParamByName('Direccion').Value:= trim(EDDireccion.text);
     Parameters.ParamByName('Area').Value:= trim(CBTelefono.text);
     Parameters.ParamByName('Telefono').Value:= trim(METelefono.text);
     Parameters.ParamByName('Area1').Value:= trim(CBFax.text);
     Parameters.ParamByName('Fax').Value:= trim(MEFax.text);
     Parameters.ParamByName('Termino').Value:= trim(CBterminos.text);
     Parameters.ParamByName('Limite').Value:= trim(EDLimite.text);
     Parameters.ParamByName('Email').Value:= trim(EDEmail.text);
     try
             ExecSQL;
Application.MessageBox('Registro Eliminado con Exito','Registro Eliminado', MB_OK + MB_ICONINFORMATION);
     SuplidorModificar.Enabled := False;
     SuplidorEliminar.Enabled := False;
       except
        on E:EOleException do
         begin
          MessageDlg(Format('Error: %s    Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
         end;
       end;
  
     
    End;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Eliminar Registro agustin173 Varios 9 13-10-2010 06:32:41
eliminar un registro pronto7 SQL 1 21-06-2010 20:33:21
Eliminar registro sizne OOP 4 30-04-2010 15:17:58
Eliminar registro Zakio14 Firebird e Interbase 5 20-03-2008 07:07:07
Eliminar registro de un .mdb con ADO ¥0n1 Conexión con bases de datos 2 07-11-2007 11:29:12


La franja horaria es GMT +2. Ahora son las 19:25:28.


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
Copyright 1996-2007 Club Delphi