Re: [Zope-pt] Construir ZSQL dinamicamente
Além da maior segurança proporcionada pelo ZSQL methods, o Zope Book apresenta ainda outras vantagens: Generated SQL will take care of special characters that may need to be quoted or removed from the query. This speeds up code development.If the underlying database is changed (for example, from Postgres to Oracle), then the generated SQL will, in some cases, automatically change too, making the application more portable.Results from the query are packaged into an easy to use object which will make display or processing of the response very simple.Transactions are mediated. Quando esse assunto é tratado na lista internacional do Zope, há um consenso entre os mais experientes que, para manipulação de dados relacionais, deve-se usar ZSQL methods e não comandos SQL embutidos em código Python. Zénrique.Em 17/11/05, alexandre <[EMAIL PROTECTED]> escreveu: vivendo e aprendendo, vou pesquisar melhor o assunto. Na breve olhada que eu dei no zope book não encontrei nada sobre segurança dos zsqls, daí a controvérsia. Em 17/11/05, Rodrigo Braga <[EMAIL PROTECTED] > escreveu: Mais uma característica interessante essa do "cacheamento"!As TAG's SQLGROUP, TEST e etc. provêem muitas alternativas, eu consegui alcançar meu objetivo usando apenas ZSQL!Acredito que o interesante é armazenar as regras nos PythonScripts e deixar o acesso aos dados por conta dos ZSQL! Dorneles Treméa <[EMAIL PROTECTED]> escreveu: Opa Alexandre,> eu particularmente prefiro montar o sql através de python script e> chamar a query com: > > sql = "select * from tabela"> r = context.bd.manage_test(sql)este foi um exemplo sem interação com dados do usuário, mas supondoque tivesse um 'where' na jogada:sql = "select * from tabela where usuario = '%s'" % user_id Dá pra perceber o tamanho do rombo que isso representa caso um usuário'esperto' passar como user_id o seguinte conteúdo:foo'; drop table 'tabelaA questão aqui é que o ZSQLMethod inteligentemente barra esse tipo de SQL Injection.Se você ainda achar 'pouco' esse benefício, não esqueça que acessandoo banco diretamente você está ignorando completamente os recursos decacheamento (existe isso? :-D) também nativamente implementado pelo ZSQLMethod. DTML ainda tem longa vida nessa parte do Zope... ;-)HTH,-- Dorneles TreméaX3ng Web TechnologyPara enviar uma mensagem: zope-pt@yahoogrupos.com.brPara 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 Yahoo! Acesso Grátis: Internet rápida e grátis.Instale o discador agora! Para enviar uma mensagem: zope-pt@yahoogrupos.com.brPara desistir envie uma mensagem em branco para: [EMAIL PROTECTED] Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE 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 Termos do Serviço do Yahoo!. -- :?) Para enviar uma mensagem: zope-pt@yahoogrupos.com.br Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE 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 Termos do Serviço do Yahoo!. Para enviar uma mensagem: zope-pt@yahoogrupos.com.br Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE 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 Termos do Serviço do Yahoo!.
Re: [Zope-pt] Construir ZSQL dinamicamente
vivendo e aprendendo, vou pesquisar melhor o assunto. Na breve olhada que eu dei no zope book não encontrei nada sobre segurança dos zsqls, daí a controvérsia. Em 17/11/05, Rodrigo Braga <[EMAIL PROTECTED]> escreveu: Mais uma característica interessante essa do "cacheamento"!As TAG's SQLGROUP, TEST e etc. provêem muitas alternativas, eu consegui alcançar meu objetivo usando apenas ZSQL!Acredito que o interesante é armazenar as regras nos PythonScripts e deixar o acesso aos dados por conta dos ZSQL! Dorneles Treméa <[EMAIL PROTECTED]> escreveu: Opa Alexandre,> eu particularmente prefiro montar o sql através de python script e> chamar a query com: > > sql = "select * from tabela"> r = context.bd.manage_test(sql)este foi um exemplo sem interação com dados do usuário, mas supondoque tivesse um 'where' na jogada:sql = "select * from tabela where usuario = '%s'" % user_id Dá pra perceber o tamanho do rombo que isso representa caso um usuário'esperto' passar como user_id o seguinte conteúdo:foo'; drop table 'tabelaA questão aqui é que o ZSQLMethod inteligentemente barra esse tipo de SQL Injection.Se você ainda achar 'pouco' esse benefício, não esqueça que acessandoo banco diretamente você está ignorando completamente os recursos decacheamento (existe isso? :-D) também nativamente implementado pelo ZSQLMethod. DTML ainda tem longa vida nessa parte do Zope... ;-)HTH,-- Dorneles TreméaX3ng Web TechnologyPara enviar uma mensagem: zope-pt@yahoogrupos.com.brPara 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 Yahoo! Acesso Grátis: Internet rápida e grátis.Instale o discador agora! Para enviar uma mensagem: zope-pt@yahoogrupos.com.brPara desistir envie uma mensagem em branco para: [EMAIL PROTECTED] Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE 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 Termos do Serviço do Yahoo!. -- :?) Para enviar uma mensagem: zope-pt@yahoogrupos.com.br Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE 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 Termos do Serviço do Yahoo!.
Re: [Zope-pt] Construir ZSQL dinamicamente
Mais uma característica interessante essa do "cacheamento"!As TAG's SQLGROUP, TEST e etc. provêem muitas alternativas, eu consegui alcançar meu objetivo usando apenas ZSQL!Acredito que o interesante é armazenar as regras nos PythonScripts e deixar o acesso aos dados por conta dos ZSQL!Dorneles Treméa <[EMAIL PROTECTED]> escreveu: Opa Alexandre,> eu particularmente prefiro montar o sql através de python script e> chamar a query com:> > sql = "select * from tabela"> r = context.bd.manage_test(sql)este foi um exemplo sem interação com dados do usuário, mas supondoque tivesse um 'where' na jogada:sql = "select * from tabela where usuario = '%s'" % user_idDá pra perceber o tamanho do rombo que isso representa caso um usuário'esperto' passar como user_id o seguinte conteúdo:foo'; drop table 'tabelaA questão aqui é que o ZSQLMethod inteligentemente barra esse tipo deSQL Injection.Se você ainda achar 'pouco' esse benefício, não esqueça que acessandoo banco diretamente você está ignorando completamente os recursos decacheamento (existe isso? :-D) também nativamente implementado peloZSQLMethod. DTML ainda tem longa vida nessa parte do Zope... ;-)HTH,-- Dorneles TreméaX3ng Web TechnologyPara enviar uma mensagem: zope-pt@yahoogrupos.com.brPara 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 Yahoo! Acesso Grátis: Internet rápida e grátis.Instale o discador agora! Para enviar uma mensagem: zope-pt@yahoogrupos.com.br Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE 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 Termos do Serviço do Yahoo!.
Re: [Zope-pt] Construir ZSQL dinamicamente
Opa Alexandre, > eu particularmente prefiro montar o sql através de python script e > chamar a query com: > > sql = "select * from tabela" > r = context.bd.manage_test(sql) este foi um exemplo sem interação com dados do usuário, mas supondo que tivesse um 'where' na jogada: sql = "select * from tabela where usuario = '%s'" % user_id Dá pra perceber o tamanho do rombo que isso representa caso um usuário 'esperto' passar como user_id o seguinte conteúdo: foo'; drop table 'tabela A questão aqui é que o ZSQLMethod inteligentemente barra esse tipo de SQL Injection. Se você ainda achar 'pouco' esse benefício, não esqueça que acessando o banco diretamente você está ignorando completamente os recursos de cacheamento (existe isso? :-D) também nativamente implementado pelo ZSQLMethod. DTML ainda tem longa vida nessa parte do Zope... ;-) HTH, -- Dorneles Treméa X3ng Web Technology 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
Re: [Zope-pt] Construir ZSQL dinamicamente
desconhecia o fato de scripts python serem menos seguros que zsql methods. Certamente que se o progamador errar no código pode abrir brechas de segurança, mas fica a pergunta, erros na construção dos zsql methods não poderiam abrir falhas também? prefiro o python porque ele é mais fácil e flexivel de trabalhar, além do que tenho o presentimento que python terá uma vida mais longa que dtml. Em 15/11/05, Rodrigo Braga <[EMAIL PROTECTED]> escreveu: Alexandre Inicialmente eu havia pensado em contruir as instruções desta forma, mas como foi ratificado pelo José Henrique usar ZSQL Méthods implica em usar intrinsicamente recursos de segurança nativos do Zope, acho isso um ponto interessante a ser levado em conta; não discordo que ter várias alternativas é "saudável", porém em casos de querys que dependem de interação do usuário os ZSQL são uma escolha robusta, segura e fácil!Quais vantagens você aponta em usar exclusivamente esta forma?!alexandre < [EMAIL PROTECTED]> escreveu: eu particularmente prefiro montar o sql através de python script e chamar a query com:sql = "select * from tabela"r = context.bd.manage_test(sql)Em 14/11/05, José Henrique escreveu:> Exatamente, usando as tags próprias para os zsql methods você evita> problemas como "sql injection", que é uma técnica que tenta inserir> comandos SQL que podem apagar ou corromper dados ou dar acesso a dados> críticos. >> Zénrique>> Em 14/11/05, Rodrigo Braga escreveu:> > Valeu Zé!> >> > Consegui deixar minha instrução bem elegante (apesar> > de ter algumas cláusulas "loucas"), me vi desesperado > > quando pensei que teria que escrever a instrução> > baseado em if's, for's e afins :-D> >> > E pelo o que pude ver usar as tag's DTML-SQL... ainda> > tem a vantagem de em relação a segurança e etc. > > procede?!> >> > --- José Henrique escreveu:> >> > > Rodrigo,> > >> > > Você pode obter o resultado que deseja usando as > > > tags:> > > - dtml-sqlgroup> > > - dtml-sqltest> > > - dtml-and ou dtml-or> > >> > > Um exemplo:> > >> > > select * from tabela> > > > > > > > > > > > > > > > > >> > > Caso seja fornecido apenas nome, o resultado será:> > > select * from tabela where nome='bla' > > >> > > Se fornecer nome e cpf o resultado será:> > > select * from tabela where nome='bla' and> > > cpf='09909098898'> > >> > > Você pode obter mais informações sobre a programação > > > dos zsql methods> > > no Zope Book.> > >> > > Zénrique> > > Em 13/11/05, Rodrigo Braga> > > escreveu:> > > > Pessoal> > > >> > > > Estou com o seguinte dilema, em uma janela de > > > busca> > > > "detalhada" ou usuário poderá preencher N campos> > > para> > > > refinar a busca, e pra isso seria interessante> > > montar > > > > o ZSQL dinamicamente, por exemplo:> > > >> > > > No formulário existe o campo nome, cpf e endereço> > > e se> > > > o usuário preencher os três o zsql será montado > > > com:> > > >> > > > select * from tabela where nome=bla and cpf ...> > > >> > > > caso ele preencha apenas nome ... o WHERE terá> > > apenas > > > > o nome ... algo assim.> > > >> > > > Alguém pode me dar uma idéia de como solucionar> > > isso,> > > > ou estou pensando em montar essa busca detalhada> > > com o> > > > pior método possível :-)> > > > > > > > Obrigado a todos!> > > >> > > >> > > >> > > >> > > >> > > >> > > >> > > > > > > >> > >> > ___> > > > Yahoo! Acesso Grátis: Internet rápida e grátis.> > > > Instale o discador agora! > > > > http://br.acesso.yahoo.com/> > > >> > > >> > > > > > > > Para enviar uma mensagem:> > > zope-pt@yahoogrupos.com.br> > > > Para desistir envie uma mensagem em branco para: > > > [EMAIL PROTECTED]> > > > Links do Yahoo! Grupos > > > >> > > >> > > >> > > >> > > >> > > >> > > >> > > >> > >> > >> > > Para enviar uma mensagem: zope-pt@yahoogrupos.com.br> > > Para desistir envie uma mensagem em branco para:> > > [EMAIL PROTECTED]> > > Links do Yahoo! Grupos> > > > > >> > >> > > http://br.yahoo.com/info/utos.html> > > > > >> > >> > >> > >> >> >> >> >> >> >> >> >> >> > ___ > > Yahoo! Acesso Grátis: Internet rápida e grátis.> > Instale o discador agora!> > http://br.acesso.yahoo.com/> >> >> > > > Para enviar uma mensagem: zope-pt@yahoogrupos.com.br> > Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED]> > Links do Yahoo! Grupos> > > >> >> >> >> >> >> Para enviar uma mensagem: zope-pt@yahoogrupos.com.br> Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] > Links do Yahoo! Grupos--:?)Para enviar uma mensagem: zope-pt@yahoogrupos.com.brPara 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 Yahoo!
Re: [Zope-pt] Construir ZSQL dinamicamente
AlexandreInicialmente eu havia pensado em contruir as instruções desta forma, mas como foi ratificado pelo José Henrique usar ZSQL Méthods implica em usar intrinsicamente recursos de segurança nativos do Zope, acho isso um ponto interessante a ser levado em conta; não discordo que ter várias alternativas é "saudável", porém em casos de querys que dependem de interação do usuário os ZSQL são uma escolha robusta, segura e fácil!Quais vantagens você aponta em usar exclusivamente esta forma?!alexandre <[EMAIL PROTECTED]> escreveu: eu particularmente prefiro montar o sql através de python script echamar a query com:sql = "select * from tabela"r = context.bd.manage_test(sql)Em 14/11/05, José Henrique escreveu:> Exatamente, usando as tags próprias para os zsql methods você evita> problemas como "sql injection", que é uma técnica que tenta inserir> comandos SQL que podem apagar ou corromper dados ou dar acesso a dados> críticos.>> Zénrique>> Em 14/11/05, Rodrigo Braga escreveu:> > Valeu Zé!> >> > Consegui deixar minha instrução bem elegante (apesar> > de ter algumas cláusulas "loucas"), me vi desesperado> > quando pensei que teria que escrever a instrução> > baseado em if's, for's e afins :-D> >> > E pelo o que pude ver usar as tag's DTML-SQL... ainda> > tem a vantagem de em relação a segurança e etc.> > procede?!> >> > --- José Henrique escreveu:> >> > > Rodrigo,> > >> > > Você pode obter o resultado que deseja usando as> > > tags:> > > - dtml-sqlgroup> > > - dtml-sqltest> > > - dtml-and ou dtml-or> > >> > > Um exemplo:> > >> > > select * from tabela> > > > > > > > > > > > > > > > > >> > > Caso seja fornecido apenas nome, o resultado será:> > > select * from tabela where nome='bla'> > >> > > Se fornecer nome e cpf o resultado será:> > > select * from tabela where nome='bla' and> > > cpf='09909098898'> > >> > > Você pode obter mais informações sobre a programação> > > dos zsql methods> > > no Zope Book.> > >> > > Zénrique> > > Em 13/11/05, Rodrigo Braga> > > escreveu:> > > > Pessoal> > > >> > > > Estou com o seguinte dilema, em uma janela de> > > busca> > > > "detalhada" ou usuário poderá preencher N campos> > > para> > > > refinar a busca, e pra isso seria interessante> > > montar> > > > o ZSQL dinamicamente, por exemplo:> > > >> > > > No formulário existe o campo nome, cpf e endereço> > > e se> > > > o usuário preencher os três o zsql será montado> > > com:> > > >> > > > select * from tabela where nome=bla and cpf ...> > > >> > > > caso ele preencha apenas nome ... o WHERE terá> > > apenas> > > > o nome ... algo assim.> > > >> > > > Alguém pode me dar uma idéia de como solucionar> > > isso,> > > > ou estou pensando em montar essa busca detalhada> > > com o> > > > pior método possível :-)> > > >> > > > Obrigado a todos!> > > >> > > >> > > >> > > >> > > >> > > >> > > >> > > >> > > >> > >> > ___> > > > Yahoo! Acesso Grátis: Internet rápida e grátis.> > > > Instale o discador agora!> > > > http://br.acesso.yahoo.com/> > > >> > > >> > > >> > > > Para enviar uma mensagem:> > > zope-pt@yahoogrupos.com.br> > > > Para desistir envie uma mensagem em branco para:> > > [EMAIL PROTECTED]> > > > Links do Yahoo! Grupos> > > >> > > >> > > >> > > >> > > >> > > >> > > >> > > >> > >> > >> > > Para enviar uma mensagem: zope-pt@yahoogrupos.com.br> > > Para desistir envie uma mensagem em branco para:> > > [EMAIL PROTECTED]> > > Links do Yahoo! Grupos> > >> > >> > >> > > http://br.yahoo.com/info/utos.html> > >> > >> > >> > >> > >> >> >> >> >> >> >> >> >> >> > ___> > Yahoo! Acesso Grátis: Internet rápida e grátis.> > Instale o discador agora!> > http://br.acesso.yahoo.com/> >> >> >> > Para enviar uma mensagem: zope-pt@yahoogrupos.com.br> > Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED]> > Links do Yahoo! Grupos> >> >> >> >> >> >> >> Para enviar uma mensagem: zope-pt@yahoogrupos.com.br> Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED]> Links do Yahoo! Grupos--:?)Para enviar uma mensagem: zope-pt@yahoogrupos.com.brPara 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 Yahoo! Acesso Grátis: Internet rápida e grátis.Instale o discador agora! Para enviar uma mensagem: zope-pt@yahoogrupos.com.br Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE 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
Re: [Zope-pt] Construir ZSQL dinamicamente
eu particularmente prefiro montar o sql através de python script e chamar a query com: sql = "select * from tabela" r = context.bd.manage_test(sql) Em 14/11/05, José Henrique<[EMAIL PROTECTED]> escreveu: > Exatamente, usando as tags próprias para os zsql methods você evita > problemas como "sql injection", que é uma técnica que tenta inserir > comandos SQL que podem apagar ou corromper dados ou dar acesso a dados > críticos. > > Zénrique > > Em 14/11/05, Rodrigo Braga<[EMAIL PROTECTED]> escreveu: > > Valeu Zé! > > > > Consegui deixar minha instrução bem elegante (apesar > > de ter algumas cláusulas "loucas"), me vi desesperado > > quando pensei que teria que escrever a instrução > > baseado em if's, for's e afins :-D > > > > E pelo o que pude ver usar as tag's DTML-SQL... ainda > > tem a vantagem de em relação a segurança e etc. > > procede?! > > > > --- José Henrique <[EMAIL PROTECTED]> escreveu: > > > > > Rodrigo, > > > > > > Você pode obter o resultado que deseja usando as > > > tags: > > > - dtml-sqlgroup > > > - dtml-sqltest > > > - dtml-and ou dtml-or > > > > > > Um exemplo: > > > > > > select * from tabela > > > > > > > > > > > > > > > > > > > > > Caso seja fornecido apenas nome, o resultado será: > > > select * from tabela where nome='bla' > > > > > > Se fornecer nome e cpf o resultado será: > > > select * from tabela where nome='bla' and > > > cpf='09909098898' > > > > > > Você pode obter mais informações sobre a programação > > > dos zsql methods > > > no Zope Book. > > > > > > Zénrique > > > Em 13/11/05, Rodrigo Braga<[EMAIL PROTECTED]> > > > escreveu: > > > > Pessoal > > > > > > > > Estou com o seguinte dilema, em uma janela de > > > busca > > > > "detalhada" ou usuário poderá preencher N campos > > > para > > > > refinar a busca, e pra isso seria interessante > > > montar > > > > o ZSQL dinamicamente, por exemplo: > > > > > > > > No formulário existe o campo nome, cpf e endereço > > > e se > > > > o usuário preencher os três o zsql será montado > > > com: > > > > > > > > select * from tabela where nome=bla and cpf ... > > > > > > > > caso ele preencha apenas nome ... o WHERE terá > > > apenas > > > > o nome ... algo assim. > > > > > > > > Alguém pode me dar uma idéia de como solucionar > > > isso, > > > > ou estou pensando em montar essa busca detalhada > > > com o > > > > pior método possível :-) > > > > > > > > Obrigado a todos! > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ___ > > > > Yahoo! Acesso Grátis: Internet rápida e grátis. > > > > Instale o discador agora! > > > > http://br.acesso.yahoo.com/ > > > > > > > > > > > > > > > > Para enviar uma mensagem: > > > zope-pt@yahoogrupos.com.br > > > > Para desistir envie uma mensagem em branco para: > > > [EMAIL PROTECTED] > > > > Links do Yahoo! Grupos > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Para enviar uma mensagem: zope-pt@yahoogrupos.com.br > > > Para desistir envie uma mensagem em branco para: > > > [EMAIL PROTECTED] > > > Links do Yahoo! Grupos > > > > > > > > > > > > http://br.yahoo.com/info/utos.html > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ___ > > Yahoo! Acesso Grátis: Internet rápida e grátis. > > Instale o discador agora! > > http://br.acesso.yahoo.com/ > > > > > > > > Para enviar uma mensagem: zope-pt@yahoogrupos.com.br > > Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] > > Links do Yahoo! Grupos > > > > > > > > > > > > > > > > > > > Para enviar uma mensagem: zope-pt@yahoogrupos.com.br > Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] > Links do Yahoo! Grupos > > > > > > > > -- :?) 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
Re: [Zope-pt] Construir ZSQL dinamicamente
Exatamente, usando as tags próprias para os zsql methods você evita problemas como "sql injection", que é uma técnica que tenta inserir comandos SQL que podem apagar ou corromper dados ou dar acesso a dados críticos. Zénrique Em 14/11/05, Rodrigo Braga<[EMAIL PROTECTED]> escreveu: > Valeu Zé! > > Consegui deixar minha instrução bem elegante (apesar > de ter algumas cláusulas "loucas"), me vi desesperado > quando pensei que teria que escrever a instrução > baseado em if's, for's e afins :-D > > E pelo o que pude ver usar as tag's DTML-SQL... ainda > tem a vantagem de em relação a segurança e etc. > procede?! > > --- José Henrique <[EMAIL PROTECTED]> escreveu: > > > Rodrigo, > > > > Você pode obter o resultado que deseja usando as > > tags: > > - dtml-sqlgroup > > - dtml-sqltest > > - dtml-and ou dtml-or > > > > Um exemplo: > > > > select * from tabela > > > > > > > > > > > > > > Caso seja fornecido apenas nome, o resultado será: > > select * from tabela where nome='bla' > > > > Se fornecer nome e cpf o resultado será: > > select * from tabela where nome='bla' and > > cpf='09909098898' > > > > Você pode obter mais informações sobre a programação > > dos zsql methods > > no Zope Book. > > > > Zénrique > > Em 13/11/05, Rodrigo Braga<[EMAIL PROTECTED]> > > escreveu: > > > Pessoal > > > > > > Estou com o seguinte dilema, em uma janela de > > busca > > > "detalhada" ou usuário poderá preencher N campos > > para > > > refinar a busca, e pra isso seria interessante > > montar > > > o ZSQL dinamicamente, por exemplo: > > > > > > No formulário existe o campo nome, cpf e endereço > > e se > > > o usuário preencher os três o zsql será montado > > com: > > > > > > select * from tabela where nome=bla and cpf ... > > > > > > caso ele preencha apenas nome ... o WHERE terá > > apenas > > > o nome ... algo assim. > > > > > > Alguém pode me dar uma idéia de como solucionar > > isso, > > > ou estou pensando em montar essa busca detalhada > > com o > > > pior método possível :-) > > > > > > Obrigado a todos! > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ___ > > > Yahoo! Acesso Grátis: Internet rápida e grátis. > > > Instale o discador agora! > > > http://br.acesso.yahoo.com/ > > > > > > > > > > > > Para enviar uma mensagem: > > zope-pt@yahoogrupos.com.br > > > Para desistir envie uma mensagem em branco para: > > [EMAIL PROTECTED] > > > Links do Yahoo! Grupos > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Para enviar uma mensagem: zope-pt@yahoogrupos.com.br > > Para desistir envie uma mensagem em branco para: > > [EMAIL PROTECTED] > > Links do Yahoo! Grupos > > > > > > > > http://br.yahoo.com/info/utos.html > > > > > > > > > > > > > > > > > > > > ___ > Yahoo! Acesso Grátis: Internet rápida e grátis. > Instale o discador agora! > http://br.acesso.yahoo.com/ > > > > Para enviar uma mensagem: zope-pt@yahoogrupos.com.br > Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] > Links do Yahoo! Grupos > > > > > > > > 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
Re: [Zope-pt] Construir ZSQL dinamicamente
Valeu Zé! Consegui deixar minha instrução bem elegante (apesar de ter algumas cláusulas "loucas"), me vi desesperado quando pensei que teria que escrever a instrução baseado em if's, for's e afins :-D E pelo o que pude ver usar as tag's DTML-SQL... ainda tem a vantagem de em relação a segurança e etc. procede?! --- José Henrique <[EMAIL PROTECTED]> escreveu: > Rodrigo, > > Você pode obter o resultado que deseja usando as > tags: > - dtml-sqlgroup > - dtml-sqltest > - dtml-and ou dtml-or > > Um exemplo: > > select * from tabela > > > > > > > Caso seja fornecido apenas nome, o resultado será: > select * from tabela where nome='bla' > > Se fornecer nome e cpf o resultado será: > select * from tabela where nome='bla' and > cpf='09909098898' > > Você pode obter mais informações sobre a programação > dos zsql methods > no Zope Book. > > Zénrique > Em 13/11/05, Rodrigo Braga<[EMAIL PROTECTED]> > escreveu: > > Pessoal > > > > Estou com o seguinte dilema, em uma janela de > busca > > "detalhada" ou usuário poderá preencher N campos > para > > refinar a busca, e pra isso seria interessante > montar > > o ZSQL dinamicamente, por exemplo: > > > > No formulário existe o campo nome, cpf e endereço > e se > > o usuário preencher os três o zsql será montado > com: > > > > select * from tabela where nome=bla and cpf ... > > > > caso ele preencha apenas nome ... o WHERE terá > apenas > > o nome ... algo assim. > > > > Alguém pode me dar uma idéia de como solucionar > isso, > > ou estou pensando em montar essa busca detalhada > com o > > pior método possível :-) > > > > Obrigado a todos! > > > > > > > > > > > > > > > > > > > ___ > > Yahoo! Acesso Grátis: Internet rápida e grátis. > > Instale o discador agora! > > http://br.acesso.yahoo.com/ > > > > > > > > Para enviar uma mensagem: > zope-pt@yahoogrupos.com.br > > Para desistir envie uma mensagem em branco para: > [EMAIL PROTECTED] > > Links do Yahoo! Grupos > > > > > > > > > > > > > > > > > > > Para enviar uma mensagem: zope-pt@yahoogrupos.com.br > Para desistir envie uma mensagem em branco para: > [EMAIL PROTECTED] > Links do Yahoo! Grupos > > > > http://br.yahoo.com/info/utos.html > > > > > ___ Yahoo! Acesso Grátis: Internet rápida e grátis. Instale o discador agora! http://br.acesso.yahoo.com/ 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
Re: [Zope-pt] Construir ZSQL dinamicamente
Rodrigo, Você pode obter o resultado que deseja usando as tags: - dtml-sqlgroup - dtml-sqltest - dtml-and ou dtml-or Um exemplo: select * from tabela Caso seja fornecido apenas nome, o resultado será: select * from tabela where nome='bla' Se fornecer nome e cpf o resultado será: select * from tabela where nome='bla' and cpf='09909098898' Você pode obter mais informações sobre a programação dos zsql methods no Zope Book. Zénrique Em 13/11/05, Rodrigo Braga<[EMAIL PROTECTED]> escreveu: > Pessoal > > Estou com o seguinte dilema, em uma janela de busca > "detalhada" ou usuário poderá preencher N campos para > refinar a busca, e pra isso seria interessante montar > o ZSQL dinamicamente, por exemplo: > > No formulário existe o campo nome, cpf e endereço e se > o usuário preencher os três o zsql será montado com: > > select * from tabela where nome=bla and cpf ... > > caso ele preencha apenas nome ... o WHERE terá apenas > o nome ... algo assim. > > Alguém pode me dar uma idéia de como solucionar isso, > ou estou pensando em montar essa busca detalhada com o > pior método possível :-) > > Obrigado a todos! > > > > > > > > > ___ > Yahoo! Acesso Grátis: Internet rápida e grátis. > Instale o discador agora! > http://br.acesso.yahoo.com/ > > > > Para enviar uma mensagem: zope-pt@yahoogrupos.com.br > Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] > Links do Yahoo! Grupos > > > > > > > > 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