Autor Tópico: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?  (Lida 4783 vezes)

andreguimas

  • Novato
  • *
  • Mensagens: 12
Usando o SC-5.2 estou tentando fazer uma Consulta onde o nome da tabela seria uma variável e não encontrei nenhum exemplo de como usar "Variavel para Tabela" em "Configuração do SQL"

George Carvalho

  • Expert
  • *****
  • Mensagens: 1369
    • Email
Re: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #1 Online: Abril 20, 2011, 06:59:19 am »
sc_select_where(add)
 
É possível, em tempo de execução da aplicação de consulta, adicionar um campo/condição à cláusula WHERE da consulta.

 

Ex. 1: Adiciona tudo que estra dentro das aspas duplas ao where do select da consulta.
if (empty({sc_where_atual})){
     sc_select_where(add) = "where campoX > [variavel_global]";
}
else{
     sc_select_where(add) = "AND campoX > [variavel_global]";
}

 

Obs: Este comando deve estar no contexto de "processar antes do select".

George Carvalho
Porto de Galinhas/PE

andreguimas

  • Novato
  • *
  • Mensagens: 12
Re: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #2 Online: Abril 20, 2011, 09:08:49 am »
Caro George
Eu preciso alterar em tempo de execução o nome da "Tabela" que fica na clausura "From" e não as condições de filtro que ficam na clausura "Where".
Agradeço a sua atenção em ajudar.
Abçs
Andre Guimaraes

Arquimedes

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 559
  • Ajudar para ser ajudado
Re: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #3 Online: Abril 20, 2011, 09:41:47 am »
ola, so por curiosidade, qual a utilizada-de de se alterar o nome de uma tabela, nao seria o caso de se criar as tabelas auxiliares e fazer um vinculo por consulta

  porem as modificações, alterações e inserções podem ser utilizadas com a macro sc_exec_sql.
« Última modificação: Abril 20, 2011, 09:55:56 am por coema »

andreguimas

  • Novato
  • *
  • Mensagens: 12
Re: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #4 Online: Abril 20, 2011, 10:20:20 am »
Coema
É na definição do select da grid. Não é em nenhum evento onde possa usar a macro sc_exec_sq.
O uso?
Tenho um aplicativo de atualização de sites com metodologia CMS que desejo usar para vários sites diferentes onde os nomes das tabelas são diferentes para cada site (questão de segurança) embora as estruturas das tabelas sejam as mesmas.
Como na seção "Configuração SQL" da "Consulta" tem a opção "Variavel para Tabela" estou supondo que posso criar uma variável onde entraria com o nome da tabela (que tem nomes diferentes embora tenham estruturas iguais).
Gostaria de saber se alguem já usou "Variável para Tabela".
Abçs
Andre Guimaraes

Arquimedes

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 559
  • Ajudar para ser ajudado
Re: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #5 Online: Abril 20, 2011, 11:50:53 am »
         Perfeito companheiro agora entendi, sugiro porem que voce crie um tabela com o nome de site, onde identifique que site é esse, em todas as outras tabelas voce colocar de a ID dessa nova tabela, ai depois é so fazer uma where pela tabela site. Dessa maneira seria mais prudente e iria obedecer as normas de banco.
« Última modificação: Abril 20, 2011, 11:53:42 am por coema »

andreguimas

  • Novato
  • *
  • Mensagens: 12
Re: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #6 Online: Abril 20, 2011, 12:14:40 pm »
Coema
Mais uma vez eu agradeço a sua atenção em resolver o meu problema, só que, eu acho que não estou me fazendo entender.
A forma de variar o nome da Tabela eu já tenho através de um Aplicativo "Control".
O eu preciso é no select da grid chamada passar essa variável global com o nome da Tabela no "from".
A minha dúvida é como usar "Variavel para Tabela" dentro de "Configuração do SQL" na "Consulta".
Abçs
Andre Guimaraes

Arquimedes

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 559
  • Ajudar para ser ajudado
Re: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #7 Online: Abril 20, 2011, 03:17:07 pm »
qual o banco que voce estar utilizando?

andreguimas

  • Novato
  • *
  • Mensagens: 12
Re: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #8 Online: Abril 20, 2011, 03:22:17 pm »
Coema
Acho que não é relevante essa informação uma vez que tudo se passa na interface do SC5 que então irá gerar o código independentemente de DBs.
Mas, estou usando MySql.
Abçs
Andre Guimaraes

Arquimedes

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 559
  • Ajudar para ser ajudado
Re: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #9 Online: Abril 20, 2011, 03:50:37 pm »
ai é que voce se engana, o sc nao possue uma macro para colocar o nome da tabela como global, voce tera que fazer uma consulta sql dentro da rais do banco, tipo de for no postgres voce tera que fazer uma consulta dentro do catalogo e na pg_ onde ficar as tabelas voce selecionar o nome da tabela e colocala como global, eu irei pesquisa onde fica e colocarei o codigo abaixo
« Última modificação: Abril 20, 2011, 04:26:52 pm por coema »

Arquimedes

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 559
  • Ajudar para ser ajudado
Re: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #10 Online: Abril 20, 2011, 04:19:44 pm »
 voce deve colocar uma clausura where identificar qual nome de tabela voce quer receber como global utilizando o codigo abaixo

sc_lookup(ds, "SELECT table_name FROM information_schema.TABLES ");


   $table_name  = {table_name };   
   sc_set_global($table_name);

andreguimas

  • Novato
  • *
  • Mensagens: 12
Re: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #11 Online: Abril 20, 2011, 05:59:10 pm »
Coema
Mais uma vez agradeço a seu esforço em colaborar com as dúvidas desse Forum, mas, o que eu preciso é bem mais simples e não passa por acessar a "information_schema".
Vou tentar explicar de outra forma:
Imagine que eu vou criar uma grid (do zero).
Depois de criada eu quero usar essa grid (sem ter que duplica-la) para várias tabelas que tem a mesma estrutura e nomes diferentes (cada cliente usou prefixo+nomes de Tabela diferentes e eu nao posso mudar isso).
Na "Consulta" na seção "Configuração de SQL" existe um campo "Variável para Tabela" (ver imagem). Para que serve esse campo? Posso usar uma variável para mudar o nome da Tabela no Select??

Abçs
Andre Guimaraes

Arquimedes

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 559
  • Ajudar para ser ajudado
Re: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #12 Online: Abril 20, 2011, 09:36:21 pm »
 companheiro, infelizmente nunca utilizei essa funcionalidade do sc, e nao sei responder essa pergunta, vou ficar te devendo e espero que alguem possa sanar sua duvida. vai desculpando ai.

  
« Última modificação: Abril 20, 2011, 09:38:31 pm por coema »

andreguimas

  • Novato
  • *
  • Mensagens: 12
Re: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #13 Online: Abril 20, 2011, 10:58:21 pm »
Coema
Eu só tenho que lhe agradecer por todo o seu interesse em ajudar...
Um grande abraço
Andre Guimaraes

Cleyton Euler

  • Expert
  • *****
  • Mensagens: 1149
    • Associação de Usuários Scriptcase
    • Email
Re: Alguem já usou "Variavel para Tabela" dentro de "Configuração do SQL"?
« Responder #14 Online: Abril 28, 2011, 09:25:16 am »
Rapaz, tinha alguém há algum tempo no fórum passando pelo mesmo problema. Acho que a solução dele foi fazer um banco para cada cliente, mudando a conexão de acordo com o cliente.
Associação de Usuários Scriptcase
http://www.auscriptcase.com.br

Consultoria Scriptcase Versão 5
http://www.infinitusweb.com.br