Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Actualizacion en Oracle usando una Query (https://www.clubdelphi.com/foros/showthread.php?t=96731)

lgarcia 05-06-2024 20:38:13

Actualizacion en Oracle usando una Query
 
Hola:
Estoy trabajando contra la BD de Oracle y con Deplhi 7 utilzando los componentes de conexion a BD Unidac, como usando una query de Unidac puedo actualizar los registros de una tabla en Oracle, o sea como conformar la consulta usando parametros.

Saludos
Luis Garcia

Suave para que se te de

Neftali [Germán.Estévez] 06-06-2024 09:26:28

Tal vez no he entendico bien la pregunta, pero la mayoría de componentes tipo "Query" (ADOQuery, FDQuery, IBQuery,...) tienen una propiedad parameters o similar para definir parámetros en la consulta. La que tú estás usando debe tenerlos también.

Puede variar el nombre, pero el uso es similar en todos.

En el caso de TADOQuery es la propiedad Parameters:
https://docwiki.embarcadero.com/Libr...Set.Parameters

En el caso de TFDQuery de FireDAC es Params:
https://docwiki.embarcadero.com/Libr...DataSet.Params

En el caso de TIBQuery es Params:
https://docwiki.embarcadero.com/Libr...IBQuery.Params

Aquí tienes un ejemplo de ADo usando la propiedad, que es similar en el resto:
https://docwiki.embarcadero.com/Code...OQuery_(Delphi)

lgarcia 06-06-2024 22:21:11

Actualizacion en Oracle usando una Query
 
Muchas gracias Nefatly por tu respuesta voy a revisar la documentación que me enviaste.

Saludos
Luis García

aposi 07-06-2024 13:26:40

Hola

revisando la documentación de unidac:
https://docs.devart.com/unidac/work_macros.htm


Código Delphi [-]
Query1.SQL.Text := 'SELECT * FROM &TableName';
Query1.MacroByName('TableName').Value := 'Dept';
Query1.Open;

esto ejecutaria la sentencia
Código SQL [-]
SELECT * FROM Dept

Casimiro Notevi 07-06-2024 15:37:19

Pero eso no es un parámetro para ejecutar el select, eso es una especie de invento para crear sentencias interactivas.

aposi 07-06-2024 16:33:13

Cita:

Empezado por Casimiro Notevi (Mensaje 556004)
Pero eso no es un parámetro para ejecutar el select, eso es una especie de invento para crear sentencias interactivas.


Por lo que entiendo en la documentación es exactamente que los parametros de los otros componentes.


para simular el ejemplo de has puesto seria el query:
Código SQL [-]
SQLStr = 'SELECT * FROM customer WHERE customer_id = &AnId;';


Código Delphi [-]
Query1.MacroByName('&AnId').Value := '1';

Casimiro Notevi 07-06-2024 19:29:11

Tal y como dice en el enlace que has puesto, es un invento para sustituir cualquier "macro" con el valor que pongas.
Que puede servir para lo que has dicho, sí, pero que no está pensado para ello.
Para los parámetros "normales" ya tienen "ParamsByName", por ejemplo:
Código Delphi [-]
Edit1.Text := Query1.ParamsByName('Contact').AsString;


La franja horaria es GMT +2. Ahora son las 02:06:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi