Ver Mensaje Individual
  #6  
Antiguo 09-12-2004
MiguelC MiguelC is offline
Miembro
 
Registrado: oct 2003
Ubicación: República Dominicana
Posts: 15
Reputación: 0
MiguelC Va por buen camino
Query1 cannot mod...

Hola.
Bueno yo uso los Objetos Querys Standard incluso para hacer un mantenimiento completo a una tabla en específico (SELECT, INSERT, UPDATE, DELETE) y funcionan bien. Por la parte del código que publicas veo que quieres hacer un open (Query2.open), pero estas utilizando una sentencia SQL para actualización, como el Delete, y tanto el Delete, como el Insert y el UpDate, cuando se usan en Objetos Querys, lo correcto es ejecutar un “ExecSQL”, osea, tendrías (Query2.ExecSQL) porque usas un Delete, si fuerea un Select, entonces si deberias hacer un “Open”.
Por otra parte y en el mismo orden , veo que estás utilizando un “Where” como condición del borrado que quieres hacer, pero por lo menos en el código que enviaste noto el siguiente error:

Tu código Incorrecto:
Query2.SQL.Text:='DELETE * FROM agenda WHERE Nombre');

Lo correcto:
Ejemplo: Quieres Borrar Un Registro que tiene entre otras cosas un campo llamado Nombre que tiene almacenado --> ‘Juan’…
Entonces para que tengas la idea, podría ser:
VariableNombre:= ‘Juan’;
y sustituye tu línea de código por esta:

Query2.SQL.Text:='DELETE * FROM agenda WHERE Nombre = ' + QuotedStr(VariableNombre) );

En Resumen yo utilizaría los Querys Standar, y sería algo como esto:

Query2.Close;
Query2.Clear;
Query2.SQL.Text:='DELETE * FROM agenda WHERE Nombre = ' + QuotedStr(VariableNombre) );
Query2.ExecSQL; // Borramos el registro activo.

Y si lo quieres un poco más decente:

With Query2 Do
Begin
Close;
Sql.Clear;
Sql.Text:='DELETE * FROM agenda WHERE Nombre = ' + QuotedStr(VariableNombre));
ExecSQL;
End;

Suerte...
__________________
"La unión del Código hace la Fuerza" LMCV
Responder Con Cita