[firebase-br] Como gerar um loop "for" dentro de um Stored Procedure?

William wbbenatti em yahoo.com.br
Sex Jul 22 13:56:08 -03 2005


Tenho uma tabela onde existem os seguintes campos: ID, NOME_IX. Onde: ID é um 
valor auto-incremento e NOME_IX é um nome indexado. O indexador do nome varia 
de acordo com a entrada de um novo registro. Ex.: Supondo que o nome seja "ABC" 
então o indexador irá diferenciar os nomes "ABC" em "ABC1", "ABC2", "ABC3" e 
assim por diante, até que mude o nome. Quando mudar o nome, o indexador volta 
a "1". Ex.: Eu estava incluindo o nome "ABC" e já estava no "ABC15", daí mudei 
o nome para "FFF". Então, a partir do primeiro "FFF" o indexador 
reinicia: "FFF1", "FFF2", "FFF3".... até mudar de "FFF" para outro nome 
qualquer. 
Hoje já tenho esse processo sendo executado via código do Delphi, porém está 
lento porque para saber se o nome "FFF7" (por exemplo) já existe, preciso fazer 
6 Select na tabela até encontrar o próximo nome indexado disponível.

Gostaria fazer o seguinte: Criar uma Stored Procedure que me retorne o nome 
indexado correto. Ex.: Envio um texto como parâmetro para Stored Procedure e 
ela me retorna "texto1", "texto2".... 
Imagino que seja feito usando um loop "for" ou "while" e atribuindo o resultado 
do Select a uma variável. Só que não estou conseguindo entender as sintaxes 
usadas pelo FireBird. Também não estou conseguindo entender como ele faz as 
atribuições de retono de um Select.

Alguém já fez algo parecido? Tem idéia de como fazer?

Valeu
wbb





Mais detalhes sobre a lista de discussão lista