Ver Mensaje Individual
  #2  
Antiguo 23-09-2003
Lmas Lmas is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 27
Reputación: 0
Lmas Va por buen camino
Hola, rafita.

Cita:
Tengo dos graves problemas: soy un novato autodidacta, y soy un inutil sin tiempo.
Jodó, parece que necesitas una cura de autoestima ; aunque todos hemos estado en alguna de esas etapas con esto de la programación.

La verdad es que del código que pones no sé lo que falla... , aunque me da la impresión que no se construye correctamente la consulta SQL al estar algún control de edición vacío. Aunque por otro lado, creo que la forma 3º que utilizas te tendría que funcionar...

Para ejecutar consultas de actualización yo utilizo el componente ADOConnection:
Código:
// Suponiendo que Cnt es un componente AdoConnection...
// Añadir un registro
  Cnt.Execute(Format('INSERT INTO tabla (numero,texto) VALUES (%d,%s);',
              [ANumero, QuotedStr(ATexto)]), cmdText, [eoExecuteNoRecords]);

// Modificar un registro
var
  RecordsAffected: Integer;
begin
  Cnt.Execute(Format('UPDATE tabla SET texto=%s WHERE numero=%d',
                   [QuotedStr(ATexto), ANumero]), RecordsAffected);
  if RecordsAffected = 0 then
    raise Exception.Create('No se ha modificado ningún registro...');

// Borrar registro
var
  RecordsAffected: Integer;
begin
  Cnt.Execute(Format('DELETE FROM tabla WHERE numero=%d',
              [ANumero]), RecordsAffected);
  if RecordsAffected = 0 then
    raise Exception.Create('No se ha borrado ningún registro.')
Como observación, no construyas la consulta de actualización de la forma ...Edit0.Text+', '+Edit1.Text+', ..., ya que si un usuario introduce en un control de edición alguna comilla, te fallará la consulta. En su lugar utiliza la función QuotedStr.

SalU2
__________________
Una cosa es una cosa, y otra cosa es otra cosa...
Responder Con Cita