Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabianoSouza

Campos da tabela com alias

Recommended Posts

Bom o script que estou construindo lista o nome dos campos da tabela e coloca num loop (até aqui está funfando).

O alias dos campos é construindo manualmente (por um array), que também está funfando.

 

 

Agora preciso de ajuda para pegar um item do loop (nome verdadeiro do campo) e associar com um item do array (o "alias" para o campo).

 

<%
'conecto BD e gero RS
set conn = server.createobject("adodb.connection")
conn.open "dsn=;uid=;pwd=;"
sSQL="select * from SIS_MUNICIPIOS"
set rs=conn.execute(sSQL)

Dim myFixedArray(3) 'Fixed size array
myFixedArray(0) = "Código do município"
myFixedArray(1) = "Município"
myFixedArray(2) = "UF"
myFixedArray(3) = "Região"


'nomes dos campos como cabecalho da tabela
response.write "<table border='1'>" 
For i = 0 to rs.fields.Count - 1
' For Each item In myFixedArray


   response.write "<tr>" 
   response.write "<td align='left' bgcolor='#eeeeee'>" 
   response.write rs.fields(i).name
   response.write "</td>"
   response.write "<td align='left' bgcolor='#eeeeee'>"   

' Response.Write(item & "<br />")
'Next

   response.write "</td>"


next
response.write "</tr>"

'fecho o bd e o recordset
rs.close 
conn.Close
%> 

 

Quero obter o seguinte resultado:

 

MunicipioID = Código do município

MunicipioNome= Município

MunicipioUF= UF

MunicipioCodRegiao= Região

 

 

Help por caridade!

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz uma concatenação do rs.fields(i).name com os itens do array...

 

seu code esta gerando algum número de erro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz uma concatenação do rs.fields(i).name com os itens do array...

 

seu code esta gerando algum número de erro ?

 

Olá xanburzum. Fiz algumas tentativas concatenando e mudando o ponto de inserção do array e loop para ver o resultado.

 

No geral sempre gera duplicidades. Preciso de algo "um para um". Como isso:

 

MunicipioID = Código do município

MunicipioNome= Município

MunicipioUF= UF

MunicipioCodRegiao= Região

 

 

Minhas tentativas retornaram coisas assim

 

MunicipioID = Código do município

MunicipioID= Município

MunicipioID= UF

MunicipioID= Região

 

MunicipioNome = Código do município

MunicipioNome= Município

MunicipioNome= UF

MunicipioNome= Região

 

E variações disso.

 

 

tentei isso:

response.write rs.fields(i).name&myFixedArray - Tipos incompatíveis

response.write rs.fields(i).name&myFixedArray - Subscrito fora do intervalo linha 22 (que esta linha mesmo)

 

 

Um help por caridade heheh

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara não sei se entendi bem o que você precisa fazer, mas vamos lá.

Se as colunas da tua query estão na mesma posição do array então você pode fazer direto:

   response.write "<td align='left' bgcolor='#eeeeee'>" 
   response.write myFixedArray(i) & ": " & rs.fields(i).name
   response.write "</td>"

 

Isso retornaria um HTML mais ou menos assim:

 

...
<td align='left' bgcolor='#eeeeee'>Código do município: 10</td>
<td align='left' bgcolor='#eeeeee'>Município: São Paulo</td>
...

 

É essa a idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

como você fez o loop ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara não sei se entendi bem o que você precisa fazer, mas vamos lá.

Se as colunas da tua query estão na mesma posição do array então você pode fazer direto:

   response.write "<td align='left' bgcolor='#eeeeee'>" 
   response.write myFixedArray(i) & ": " & rs.fields(i).name
   response.write "</td>"

 

Isso retornaria um HTML mais ou menos assim:

 

...
<td align='left' bgcolor='#eeeeee'>Código do município: 10</td>
<td align='left' bgcolor='#eeeeee'>Município: São Paulo</td>
...

 

É essa a idéia?

 

 

 

Oi Rafael. O que preciso é algo diferente. O objetivo final é popular um combo com o nome das colunas de uma tabela. Até aqui tudo bem. Agora o desafio é que para cada item preciso que seja exibido (no select do combo) um espécio de apelido para o item em questão.

 

A ideia é oferecer um nome mais "amigável" para o nome do campo da tabela. Tendeu? E a saída que encontrei foi criar um array com os nomes "amigáveis" e depois associar com o verdadeiro nome do campo da tabela que está no recordset.

 

E finalmente colocar tudo num combo.

 

Hmm..estou vendo que faz mais sentido fazer isso no próprio recordset. Como SELECT SisMunCod AS Código, SisMunTitulo AS Município e assim por diante. Depois coloco no loop e pronto. Acho que ser´´a um pouco mais trabalhoso...mas vou tentar.

 

 

Se tiver outra sugestão será bem vinda.

 

 

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

como você fez o loop ?

 

 

Veja o loop com o item do array concatenado

For i = 0 to rs.fields.Count - 1
   response.write "<tr>" 
   response.write "<td align='left' bgcolor='#eeeeee'>" 
   response.write rs.fields(i).name&myFixedArray(0)

next

Com está lógica o item do array se repete para cada item do recordset.

Preciso que Cada item do recordset seja concatenado com um item do array. Se isso der certo aí mexo no array para que os itens dele sejam correspondentes aos itens do rs.

 

Como falei acima para o outro colega a ideia é dar um nome mais amigável para os items do recordset. Até poderia fazer isso usando o SELECT AS (um apelido para o campo). Mas assim poderei escolher os campos que serão exibidos (pelo array) e dá menos trabalho do que mexer no SELECT da tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

recupere os names dos fields e faça o loop apenas nos valores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.