Ejecutar Procedimientos almacenados de PostgreSql con Delphi y ADO

Continuando con el artículo “Procedimientos almacenados en PostgreSql” ahora aprenderemos a ejecutar una función/procedimiento almacenado de PostgreSql desde una aplicación desarrollada con  Delphi. Para ello usaremos los componentes ADO  y haremos uso del controlador ODBC de Postgres. Si deseas saber cómo instalar los controladores de PostgreSql y configurar un DSN para conectar Delphi con este servidor de base de datos te recomiendo leer el artículo: Conectarse a PostgreSql con Delphi y ADO

Para iniciar crearemos el siguiente DataSource en nuestro administrador ODBC:

 

Una vez creado nuestro DataSource ejecutaremos Delphi y crearemos una nueva aplicación Vcl Forms. En el formulario principal colocaremos los siguientes componentes:

  • TAdoConnection
  • TAdoStoredProc
  • TDataSource
  • TDbGrid
  • TButton

Quedando nuestro formulario principal de la siguiente manera:

 

Ahora, estableceremos las propiedades de los componentes que hemos colocado en nuestro formulario:

AdoConnection1:

  • ConnectionString: Provider=MSDASQL.1;Persist Security Info=False;Data Source=pruebas
  • LoginPrompt: false

ADOStoredProc1:

  • Connection: ADOConnection1

DataSource1:

  • Dataset: ADOStoredProc1

DBGrid1:

  • DataSource: DataSource1

Button1:

  • Caption: EjecutaSp

Una vez que hemos establecido las propiedades de nuestros componentes daremos doble click al botón para editar su evento OnDblClick y codificaremos la llamada a la función:

procedure TForm3.Button1Click(Sender: TObject);
begin
  ADOStoredProc1.ProcedureName := 'sp_damepaises';
  ADOStoredProc1.Parameters.CreateParameter('PV_OPCION',ftString,pdInput,10,'DAMETODOS');
  ADOStoredProc1.Open;
end;

El código es muy sencillo. Definimos el nombre de la función a ejecutar, después declaramos solo el parámetro de entrada pv_opción pues no es necesario declarar los parámetros de salida columna1 y columna2 pues los usaremos para dar salida al recordset y terminamos con el método Open, pues la función nos devuelve un recordset.

Una vez que hemos editado el código, ejecutamos nuestra aplicación y presionamos el botón “ejecuta sp” obteniendo el siguiente resultado:

Sencillo ¿verdad?.  Si deseas descargar el código fuente del programa aquí lo he colocado:

http://www.delphiaccess.com/forum/downloads/?sa=view;down=93

Todo comentario o sugerencia será apreciado.

Sé el primero en comentar

Deja un comentario