Ver Mensaje Individual
  #18  
Antiguo 12-03-2025
navbuoy navbuoy is offline
Miembro
 
Registrado: mar 2024
Posts: 280
Reputación: 2
navbuoy Va por buen camino
realmente creo que no hace falta si usas la propiedad SQL del componente, porque la propia "sentencia SQL" que implementes ya resuelve eso

pero aqui te doy la informacion relativa a eso:

Las propiedades ModifySQL, InsertSQL y DeleteSQL en TIBQuery (de IBObjects) permiten definir manualmente las sentencias SQL para las operaciones de actualización, inserción y eliminación, en lugar de depender de la generación automática de IBObjects.

�� Uso de ModifySQL, InsertSQL y DeleteSQL en TIBQuery
1️⃣ Configuración en tiempo de diseño
Abre el diseñador de Delphi.
Agrega un componente TIBQuery al formulario.
Configura la propiedad SQL con la consulta SELECT.
Expande la propiedad UpdateSQL en el Inspector de Objetos.
Define las sentencias en ModifySQL, InsertSQL y DeleteSQL.
2️⃣ Configuración en código
Puedes definir las sentencias manualmente en tiempo de ejecución:

Código Delphi [-]
IBQuery1.SQL.Text := 'SELECT id, nombre, telefono FROM clientes WHERE id = :id';

// Configuración de Update (ModifySQL)
IBQuery1.ModifySQL.Text :=
  'UPDATE clientes SET nombre = :nombre, telefono = :telefono WHERE id = ld_id';

// Configuración de Insert (InsertSQL)
IBQuery1.InsertSQL.Text :=
  'INSERT INTO clientes (id, nombre, telefono) VALUES (:id, :nombre, :telefono)';

// Configuración de Delete (DeleteSQL)
IBQuery1.DeleteSQL.Text :=
  'DELETE FROM clientes WHERE id = ld_id';

�� Ejemplo de Uso
Después de configurar las sentencias, puedes utilizar ApplyUpdates para aplicar los cambios:

Código Delphi [-]
IBQuery1.Open;  // Abrimos la consulta

// Modificar un registro
IBQuery1.Edit;
IBQuery1.FieldByName('nombre').AsString := 'Juan Pérez';
IBQuery1.FieldByName('telefono').AsString := '987654321';
IBQuery1.Post;

IBQuery1.ApplyUpdates; // Aplica los cambios en la base de datos

// Insertar un registro
IBQuery1.Append;
IBQuery1.FieldByName('id').AsInteger := 100;
IBQuery1.FieldByName('nombre').AsString := 'Nuevo Cliente';
IBQuery1.FieldByName('telefono').AsString := '123456789';
IBQuery1.Post;

IBQuery1.ApplyUpdates;

// Eliminar un registro
IBQuery1.Delete;
IBQuery1.ApplyUpdates;

�� ¿Cuándo usar ModifySQL, InsertSQL y DeleteSQL?

Si la tabla no tiene una clave primaria bien definida.
Si necesitas consultas personalizadas (ejemplo: manejar registros de auditoría).
Si hay restricciones específicas en la base de datos que requieren manejar los cambios manualmente.



Creo que asi lo vas a tener ya claro del todo..... te pasare mi bizum, 100 euros bastaran (jajajaj es broma)

Última edición por navbuoy fecha: 12-03-2025 a las 16:44:49.
Responder Con Cita