From: | HERMES ZAMBRA <hermeszambra(at)yahoo(dot)com> |
---|---|
To: | "ARMIJO SEVERINO, CARLOS" <carmijo(at)sernapesca(dot)cl>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: EjecutarProcedimientos Almacenados desde VBasic 6 |
Date: | 2007-03-26 16:08:36 |
Message-ID: | 20070326160836.65857.qmail@web63710.mail.re1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
--- "ARMIJO SEVERINO, CARLOS" <carmijo(at)sernapesca(dot)cl>
escribió:
> > Buen dia, necesito de su ayuda.
> > Estoy en etapa experimental para migrar desde
> Microsoft Sql Server a Postgre.
> > Construí una Grilla y Levante una tabla. Le hice
> filtro y funciono, pero necesito utilizar
> procedimientos almacenados.
> > Hasta el momento no he logrado hacerlos funcionar.
> Le adjunto algo de codigo que he escrito, ojala me
> puedan
> > ayudar a salir adelante en este experimiento.
> >
> > Estoy desarrollando con Visaula Basic V6.0, debo
> ocupar la misma aplicación y migrar el Motor de Base
> de datos.
> >
> > 'Crea la Cadena de Consulta
> > Sql = "Select '*' From 'CartolaAfiliado' Where
> 'AfiliadoRut'=?"
> > 'Ajusta sentencia de acuerdo a sintaxis PostGre
> > Sql = Replace(Sql, Chr(39), Chr(34))
> > 'Pasa Parametro de Filtro
> > Sql = Sql & "'01944947-5'"
> > 'Crea Conexión
> >
> > Set Cnt = New ADODB.Connection
> > Cnt.Open "DSN=PostgreSQL30W"
> > 'Crea Recordset donde recibir los datos
> > Set Rst = New ADODB.Recordset
> > Rst.Open Sql, Cnt, adOpenStatic,
> adLockOptimistic, adCmdText
> > 'Asocia recordset a Grilla
> > Set DataGrid1.DataSource = Rst
> >
> > El Resultado OK y se muestra en la Grilla
> >
> > Necesito Ejecutar Procedimiento Almacenado que
> devuelva Set de Registros, Ejemplo...
> >
> > 'Crea Conexión
> > Cnt.Open "DSN=PostgreSQL30W"
> > Set Cmd = New ADODB.Command
> > Cmd.ActiveConnection = Cnt
> > Cmd.CommandType = adCmdText
> > Cmd.CommandText = "{Call
> sp_RecuperaRegistros(?)}"
> > Cmd.Parameters.Append Cmd.CreateParameter("Rut",
> adVarChar, adParamInput, 10,"08760213-3")
> > 'Crea Recordset donde recibir los datos
> > Set Rst = New ADODB.Recordset
> > Rst.Open Cmd
> > Rst.Open Sql, Cnt, adOpenStatic,
> adLockOptimistic, adCmdText
> > 'Asocia recordset a Grilla
> > Set DataGrid1.DataSource = Rst
> >
> > Esto funciona con Microsoft Sql Server, como lo
> ejecuto con PostGreSQl
> >
> > sp_RecuperaRegistros es el Procedimiento
> almacenado y (?) es el parametro de filtro
> >
> > Vi que en PostGreSQl hay Funcion y Funcion
> Disparadores. ¿ Estos se refienen a Procedimiento
> Almacenado y Triggers?
> >
> > Esta funcion es la que estoy tratando de ejecutar
> desde VBasic, el acceso a datos es con ADO
> >
> > CREATE OR REPLACE FUNCTION
> "Sp_RecuperaRegistros"()
> > RETURNS SETOF "Afiliado" AS
> > 'Select * From "Afiliado"'
> > LANGUAGE 'sql' STABLE;
> > GRANT EXECUTE ON FUNCTION "Sp_RecuperaRegistros"()
> TO public;
> > GRANT EXECUTE ON FUNCTION "Sp_RecuperaRegistros"()
> TO carmijo;
> >
> > Este procedimiento o funcion le he creado y no lo
> puedo ejecutar, ni en el panel de PgAdmin y tampoco
> por codigo de programa.
> >
> > Muchas gracias por su atención,
> >
> >
> >
> > Carlos Armijo Severino
> > Fono : 56 - 32 - 281.93.96
> > Celular: 09 416 12 79
> > UTIC - Sernapesca
> >
Aunque tu metodo es complicadito, (yo usaria el
dataenviroment, creando un dsr que me permita llamar
la funcion de esta manera select * from
funcion_a_llamar(var,var,var,var) y enlasaria la
grilla a la conexion definida en el dataenviroment.)
Para llamar la funcion desde ado o el dataenviroment o
desde el adodatacontrol, deberias llamarla
ado.source = 'select * from(var,var,var)'
ado.refresh
Saluda a Usted
Hermes Zambra
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2007-03-26 16:15:56 | Re: |
Previous Message | jeferson alvarez | 2007-03-26 16:05:13 | Re: ADODB.Recordset en .NET2005 con postgresql |