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.
Sal
U2