Autor Tópico: Troca de conexão de banco de dados  (Lida 594 vezes)

pchavesfilho

  • Novato
  • *
  • Mensagens: 4
    • Email
Troca de conexão de banco de dados
« Online: Setembro 14, 2015, 12:10:11 pm »
Prezado(s),
Estou iniciando na ferramenta SC e gostaria de retirar uma dúvida com vocês.

Ambiente:
1. Criei duas conexões no meu projeto:
Conexão 1: servidor remoto com acesso remoto
Conexão 2: servidor local
PS: todas as 2 conexões foram testados com sucesso.

2. Criei um campo-extra na aplicação app_Login:
Campo-extra: codigo_cliente
PS: já criei, testei e setei para que essa variável seja global.

3. No evento onValidade, gostaria de checar:
1. Campo-extra: no servidor remoto (Conexão 1)
2. Login/Senha: no servidor local.
PS:
Não consegui fazer a troca de conexão, pois a macro sc_lookup(rs,$sql,"conexao"), não aceita a conexão. Estou achando que é problema de sintaxe, não sei... Por isso, gostaria de uma ajuda.
Queria setar a conexão para o servidor remoto, checar o campo_cliente e depois fechar e setar a conexão para o servidor local e continuar o sistema normalmente....

Alguém pode me ajudar ??

Fico no aguardo.

Abraços.
Paulo Chaves.


pchavesfilho

  • Novato
  • *
  • Mensagens: 4
    • Email
Re:Troca de conexão de banco de dados
« Responder #1 Online: Setembro 14, 2015, 01:48:55 pm »
bem simples, basta vc definir qual conexão usar.

//conexão padrão do app_login para validar o login
$sql = "SELECT
        active,
        name,
        email,
        priv_admin
          FROM users
          WHERE login = $slogin
        AND pswd = ".$spswd;
sc_lookup(rs, $sql, "nome_da_conexao_local");

if(count({rs}) == 0)
{
    sc_log_add('login Fail', {lang_login_fail} . {login});
    sc_error_message({lang_error_login});
    sc_error_exit();
}
else if({rs[0][0]} == 'Y'){
    $usr_login        = {login};
    $usr_name        = {rs[0][1]};
    $usr_email        = {rs[0][2]};
    $usr_iadmin        = {rs[0][3]};
    sc_set_global($usr_login);
    sc_set_global($usr_name);
    sc_set_global($usr_email);
    sc_set_global($usr_iadmin);
}
else
{
    sc_error_message({lang_error_not_active});
    sc_error_exit();
}

//conexão remota do campo extra no servidor remoto
$sql1 = "SELECT
        campo_extra
          FROM tabela_remoto;
sc_lookup(rs1, $sql1, "nome_da_conexao_remota");

if(count({rs1}) == 0)
{
    sc_error_message("nao retornou nada do servidor remoto");
}
elseif({rs1[0][0]}){
    $usr_campo_extra        = {rs1[0][0]};
    sc_set_global($usr_campo_extra);
}
else{
    sc_error_message("nao foi possivel conectar ao servidor remoto");
}

O problema está sendo este. No projeto a conexão se chama conn_mysql1, conn_mysql2.
Quando coloco, por exemplo, sc_lookup(rs1,$sql1,"conn_mysql1");  o sistema dá erro. Não sei se é sintaxe.
Fico no aguardo,
Abraços.

pchavesfilho

  • Novato
  • *
  • Mensagens: 4
    • Email
Re:Troca de conexão de banco de dados
« Responder #2 Online: Setembro 15, 2015, 12:53:32 pm »
colca aqui o q vc tem no onValidate pra eu analisar.

usa: o botão # acima pra inserir codigos.

pra não ficar um post muito grande.

Prezado Leandro,
O meu problema é simples mas acho que depois de várias tentativas o SC começou a gerar muitos erros. Provavelmente terei que reinstalá-lo.
Mas vou tentar explicar:

Quando iniciei meu projeto, criei 2 conexões de banco de dados: conn_mysql1 e conn_mysql2 no SC.
Já tentei diversas sintaxes na macro:  sc_lookup(rs, $sql, "nome_da_conexao_local");

1. sc_lookup(rs1, $sql1, "conn_mysql1");
2. sc_lookup(rs1, $sql1, "{conn_mysql1}");
3. sc_lookup(rs1, $sql1, "[conn_mysql1]");

Foi aí que o SC começou a enviar alertas de erros...
Queria saber se a sintaxe está correta.
Att.
Paulo Chaves Filho.

pchavesfilho

  • Novato
  • *
  • Mensagens: 4
    • Email
Re:Troca de conexão de banco de dados
« Responder #3 Online: Setembro 15, 2015, 11:24:14 pm »
somente essa: 1. sc_lookup(rs1, $sql1, "conn_mysql1");

1. Criei uma conexão em um projeto Teste:
conn_mysql


2. Ee-editei o código do evento onValidade do app_Login:

$slogin = sc_sql_injection({login});
$spswd = sc_sql_injection(md5({pswd}));
$sql = "SELECT ........";

// Coloquei o nome da conexão na macro:   
sc_lookup(rs, $sql,"conn_mysql");

E o ScriptCase me gerou o seguinte erro:

Fatal error: Call to a member function GetTag() on null in /opt/NetMake/v81/wwwroot/scriptcase/devel/class/generator/nmFontePHPForm.class.php on line 13400