Andre.. ajudou bastante..
porem tinha "algumas linhas amais".
Não precisava do "for".... o valor de result já vinha como tuple.
O código ficou assim:

 class Conteudo(BaseContent):
 ...
       def consultaSQL(self):
             listVocabulary = []
             conn = MySQLdb.connect (host = "localhost",
                            user = "testuser",
                            passwd = "testpass",
                            db = "test")
             cursor = conn.cursor ()
             cursor.execute ('SELECT * FROM tabela')
             result = cursor.fetchall()
             return result

Obrigado.
João P. Sinieghi





--- Em zope-pt@yahoogrupos.com.br, André F Silva <[EMAIL PROTECTED]>
escreveu
>
> Opa, João.
> 
> No seu SelectField, você coloca o argumento palavra-chave para
vocabulary apontando para um método da classe do seu conteúdo, por
exemplo:
> 
> SelectField('qualquer',required=1,vocabulary='consultaSQL', ....)
> 
> No corpo da sua classe, você define o método. Como você quer que a
lista venha do banco, você deverá fazê-lo via python. No caso do SQL,
você deve importar o MySQLdb e o corpo da classe ficaria mais ou menos
assim:
> 
> import MySQLdb
> .
> .
> .
> class Conteudo(BaseContent):
> ...
>       def consultaSQL(self):
>             listVocabulary = []
>             conn = MySQLdb.connect (host = "localhost",
>                            user = "testuser",
>                            passwd = "testpass",
>                            db = "test")
>             cursor = conn.cursor ()
>             cursor.execute (query)
>             result = cursor.fetchall()
>             for i in result:
>                 listVocabulary.append(result[0])
>             return listVocabulary
> 
> Espero que ajude.
> 
> André FS
> 
> João Paulo Sinieghi <[EMAIL PROTECTED]> escreveu:    Bom dia a todos..
>  
>  Criei um Produto no Archetypes com vários campos. Agora quero que um
>  destes campos (que é select) busque seus valores em uma tabela
>  específica no MySQL. Alguém sabe como posso fazer isto?
>  
>  Obs.: Todos este campos são gravados em uma tabela do MySQL usando o
>  "storage=MySQLSQLStorage()"
>  
>  Obrigado.
>  João Paulo Sinieghi
>  
>  
>  
>  
>    
> 
>               
> ---------------------------------
>  Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu
celular. Registre seu aparelho agora!
>







Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/zope-pt/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a