Ver Mensaje Individual
  #15  
Antiguo 12-03-2025
navbuoy navbuoy is offline
Miembro
 
Registrado: mar 2024
Posts: 280
Reputación: 2
navbuoy Va por buen camino
En Delphi usando TIBOQuery (de IBObjects), puedes ejecutar una sentencia SQL de varias maneras dependiendo del tipo de consulta que deseas hacer.

�� Para consultas de selección (SELECT)
Si necesitas recuperar datos de la base de datos:

Código Delphi [-]
IBOQuery1.SQL.Text := 'SELECT * FROM clientes WHERE ciudad = :ciudad';
IBOQuery1.ParamByName('ciudad').AsString := 'Madrid';
IBOQuery1.Open;  // O usar IBOQuery1.Active := True;

Aquí se usa ParamByName para evitar SQL Injection y mejorar rendimiento.

�� Para consultas de acción (INSERT, UPDATE, DELETE)
Si necesitas ejecutar una consulta que modifique datos:

Código Delphi [-]
IBOQuery1.SQL.Text := 'UPDATE clientes SET telefono = :telefono WHERE id = :id';
IBOQuery1.ParamByName('telefono').AsString := '123456789';
IBOQuery1.ParamByName('id').AsInteger := 10;
IBOQuery1.ExecSQL;

�� ExecSQL se usa en sentencias que no devuelven datos.

�� Para ejecutar una consulta sin parámetros
Si la consulta es fija y sin parámetros, puedes ejecutarla directamente:

Código Delphi [-]
IBOQuery1.SQL.Text := 'DELETE FROM pedidos WHERE estado = ''cancelado''';
IBOQuery1.ExecSQL;

�� Para recorrer los datos después de ejecutar un SELECT
Si necesitas procesar los resultados de una consulta:

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

while not IBOQuery1.Eof do
begin
  ShowMessage('Cliente: ' + IBOQuery1.FieldByName('nombre').AsString);
  IBOQuery1.Next;
end;

IBOQuery1.Close; // Cerrar consulta al finalizar



en concreto Cdamer, lo que ParamByName te permite es con ayuda de la "cadena de texto" construir sentencias SQL para el TQuery asi digamos "personalizadas" como con variables y tal que podrian tomar ciertos valores en el transcurso del programa o bien por ejemplo si tenemos alguna especie de "Constructor" (en nuestra app) para que el usuario digamos "pregunte (via SQL)" cosas que le vengan en gana (al usuario) a la BD variando esos valores de la consulta SQL me refiero mediante algun sistema que tu mismo elabores para el usuario por ejemplo un desplegable con opciones relativas a cierto campo o bien un Editbox donde el usuario meteria numeros para por ejemplo listar registros cuyo "salario" sea de tanto ..... entiendes no?? eso le da mucha mas flexibilidad y customizacion potente que si por ejemplo solo estableces en el codigo la sentencia SQL pre-fijada.

Espero que asi te quede mas claro todo, un saludo amigo

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