|
Segue esquema geral simplificado de procedure Informix que retorna um
recorde set: (n�o esque�a que no Informix
os identificadores podem ter no m�ximo 18 caracteres): Create
procedure sp_ReturnRecordSet(P1� <datatype>, �P2 ��<datatype>, …, PN �<datatype>) ��� returning� ��<datatype1>,� <datatype2>, ...,� <datatypeM>; define l_INTO_1����� <datatype>; define l_INTO_2����� <datatype>; … define l_INTO_M�����
<datatype>; foreach cursor1 with hold for
��� Select …Into l_INTO_1, l_INTO_2, …, l_INTO_M ��� From … Where … ��� return l_INTO_1, l_INTO_2,
…, l_INTO_M with resume; end foreach End
procedure; Se voc� tiver mais de uma consulta, ter�
de montar foreach’s independentes, mas desde
que, � claro, os dados retornados mantenham compatibilidade com a qtde e tipos de
dados declarados na cl�usula returning. J� no SQLWindows/Centura voc� a executa fazendo basicamente
o seguinte: 1.
SqlRetrieve(SQLHandle,
"sp_ReturnRecordSet",":w_P1,w_P2,...,wPN","w_INTO_Ret1,w_INTO_Ret2,...,w_INTO_RetM") 2. SqlExecute(SQLHandle) 3.
While SqlFetchNext(SQLHandle, l_n_Fetch) ��������������� … ��������������� As vari�veis:
w_INTO_Ret1,w_INTO_Ret2,...,w_INTO_RetM ��������������� ter�o os dados de cada membro
do select em cada itera��o. ��������������� … Sds, F.L. -----Mensagem original----- Agrade�o a ajuda de todos, mas ainda n�o consegui resolver
o problema de sintaxe. Tentei criar um comando select
dentro de cada if, iniciando com o foreach e
terminando com o return pn_...... end foreach; mas por
algum motivo que n�o consigo descobrir, continua dando erro de sintaxe. Se algu�m puder me ajudar, me mandando algumas sintaxes de
informix, esquema de if, cursores, exception, etc... enfim, de tudo
um pouco, ficarei muito grato, pois n�o conhe�o a linguagem e estrutura procedural do informix....... Mais uma vez, grato a todos pela boa vontade. ---------- In�cio da mensagem original ----------- De: owner[EMAIL PROTECTED]net Para: [EMAIL PROTECTED]net Cc: Data: Mon, 2
May 2005 20:08:37 -0300 Assunto: RES: [sqlwin] Ajuda com
informix > Ja faz alguns anos que n�o
trabalho com Informix, mas numa das aplica��es > que desenvolvi com Informix
eu tinha um caso parecido com isto e resolvemos > criando um cursor para os diversos Select�s, sendo o nome do cursor era > sempre o mesmo e depois era so
executar sem problemas. > > Ab�s > -----Mensagem original----- > De: owner[EMAIL PROTECTED]net [mailto:[EMAIL PROTECTED] > nome de > Enviada em: segunda-feira, 2
de maio de 2005 19:14 > Para: [EMAIL PROTECTED]net > Assunto: RES: [sqlwin]
Ajuda com informix > > > Ol�. > > > > N�o � poss�vel montar dinamicamente um comando numa procedure, pois seu > c�digo � pr�-compilado. > > No fluxo do c�digo voc� tem de ter todas (se isso for
poss�vel) as > varia��es pr�-estabelecidas: > > > > If QuerExecutarCmd1 then > > Select ... from
... where ... > > Else > > Select ... from
... where ... > > End if; > > > > Sds, > > F.L. > > > > -----Mensagem original----- > De: owner[EMAIL PROTECTED]net [mailto:[EMAIL PROTECTED] Em > nome de rlarizzatti > Enviada em: segunda-feira, 2
de maio de 2005 16:20 > Para: sqlwin > Assunto: Re:[sqlwin] Ajuda com informix > > > > Pessoal, > > > > Estou desenvolvendo uma procedure
em informix que gera comandos de select > din�micos. Est� com erro de sintaxe, e n�o sei qual
seria o problema. > > � mais ou menos o seguinte, dependendo de alguns
par�metros que a > procedure receba, o select ter� aguns campos, tabelas
e cl�usulas where. > Fa�o isso atrav�s de 'if' e seto
os valores para para
vari�veis sSelect, > sFrom,
sInto e sWhere. > > Por algum motivo, est� com erro de sintaxe. > > Ser� que algu�m teria um script que fa�a algo
parecido, e que possa me > enviar para me ajudar? > > > > Agrade�o qualquer ajuda. > > > > Abra�o a todos > |
- Re:RES: RES: [sqlwin] Ajuda com informix Fabio Lopes
- Re:RES: RES: [sqlwin] Ajuda com informix rlarizzatti
- Re:RES: RES: [sqlwin] Ajuda com informix rlarizzatti
