rendered paste bodyWritten by blitzrage (untested):
func_odbc.conf:
[COUNT]
prefix=ROW
dsn=my_pgsql_connector
read=SELECT COUNT(*) FROM my_table WHERE foo = '${ARG1}'
[GET]
prefix=ROW
dsn=my_pgsql_connector
read=SELECT foo, bar FROM my_table WHERE foo = '${ARG1}' LIMIT 1 OFFSET ${ARG2}
extensions.conf:
[test]
exten => s,1,Set(X=0)
exten => s,n,Set(MAX=${ROW_COUNT(bar)}) ; will return number of rows
exten => s,n,GosubIf($[${ISNULL(${MAX})} | 0${MAX} < 1]?error_handler,s,1)
; Get the data
exten => s,n,While($[${X} <= ${MAX}])
exten => s,n,Set(ARRAY(FOO_${X},BAR_${X})=${ROW_GET(bar,${X})})
exten => s,n,Set(X=$[${X} + 1])
exten => s,n,EndWhile()
; View the data
exten => s,n,Set(Y=0)
exten => s,n,While($[${Y} <= ${MAX}])
exten => s,n,Verbose(1|FOO_${Y} VALUE: ${FOO_${Y}})
exten => s,n,Verbose(1|BAR_${Y} VALUE: ${BAR_${Y}})
exten => s,n,Set(Y=$[${Y} + 1])
exten => s,n,EndWhile()
exten => s,n,Verbose(1|All done!)
exten => s,n,Hangup()