Bhavikkumar Chaudhari Ответов: 0

Как вызвать функцию из классического ASP, которая возвращает курсор


У меня есть функция (хранимая процедура), которая возвращает refcursor из функции postgresql

Я хочу заполнить классический набор записей asp из результата refcursor.

PGSQL-функция
CREATE OR REPLACE FUNCTION getlisttest(IN i_list text, retcur refcursor)
  RETURNS refcursor AS
$BODY$
BEGIN
	
    IF i_list = 'pli' THEN

	open retcur for SELECT
            provider_name AS name, provider_id AS id
            FROM qf.rec_provider
            ORDER BY provider_name;

           return retcur; 
    
    ELSE
        RAISE USING ERRCODE := '20001', MESSAGE := CONCAT_WS('', 'Listname is invalid:', i_list);
    END IF;
 
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;



Если я выполняю выше SP с помощью консоли PGAdmin, это дает мне фактический результат, который мне нужен.

select getlisttest('pli');
fetch all in "<unnamed portal 1>";



Но когда я пытаюсь получить доступ к нему из классического кода asp, он не возвращает никаких строк.

Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "Driver=**************;"
    set cmd = Server.CreateObject("ADODB.Command")
    set cmd.ActiveConnection = Conn
	'cmd.CommandType = adCmdText
	cmd.CommandType = adCmdStoredProc
	Dim SQL
	
	SQL = "fida.getlisttest('pli','refcur');"
	'SQL = "select fida.getlisttest('pli'); 
	Response.write SQL
	cmd.CommandText = SQL

	Set rsGetHireID = Server.CreateObject("ADODB.RecordSet")
	set rsGetHireID = cmd.execute
	
	do until rsGetHireID.eof
		response.write ("<br/>"&rsGetHireID.fields(0).Name &"--"&rsGetHireID(0).value)
		rsGetHireID.movenext
	loop

	rsGetHireID.Close


Помощь будет очень признательна...!!!

Что я уже пробовал:

Я уже погуглил много сайтов, но безуспешно..:)

0 Ответов