Autor Tópico: Problemas com controle  (Lida 667 vezes)

gleisonrgf

  • Novato
  • *
  • Mensagens: 15
    • Email
Problemas com controle
« Online: Março 03, 2016, 04:14:02 pm »
Boa Tarde Criei uma controle para verificar se existe cadastro ou não de um usuário no sistema, no tal controle adicionei dois campos sendo o primeiro o CPF e o outro a matricula.

No onValidate adicionei o código abaixo para verificar se existe  o cadastro ou não.

$sql_consulta = mysql_query("SELECT * FROM `filiacao`
WHERE `filiacao`.`FIL_CPF` = {cpf}
AND `filiacao`.`FIL_MATRICULA`= {matricula}");
$result = mysql_num_rows($sql_consulta);

echo $result;

if($result > 0){
   sc_commit_trans();
   sc_redir(menu_socio, cpf={cpf};);

}
if($result < 1){
   sc_error_message("Dados Invalidos, Caso seja associado por favor entre em contato para atualizar seu cadastro...");

}

Quando execulto a aplicação e digito o CPF e matricula mostra a mensagem abaixo:

mysql_query(): Access denied for user ''@'localhost' (using password: NO)
mysql_query(): A link to the server could not be established
mysql_num_rows() expects parameter 1 to be resource, boolean given


Preciso de ajuda pois não sei mesmo resolver o problema

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Problemas com controle
« Responder #1 Online: Março 03, 2016, 04:20:53 pm »
Utillize as macros do scriptcase destinadas a busca em tabelas do banco de dados.

Verifique no web help: sc_lookup.


Jailton

  • Expert
  • *****
  • Mensagens: 2041
Re:Problemas com controle
« Responder #2 Online: Março 03, 2016, 05:11:34 pm »
Adapta seu código para o uso do sc_lookup é a macro do SC para fazer esse tipo de consulta:
Código: [Selecionar]
sc_lookup(Dataset, "Comando SQL", "Conexão")
Esta macro permite que o usuário execute comandos SQL e tenha acesso ao "dataset" proveniente do comando. O "dataset" fica disponível, em forma de array (linha/coluna).

O parâmetro "conexão" é opcional, sendo necessário, apenas, se o comando for executado em uma base de dados diferente da especificada para a aplicação.

Ex. 1:
sc_lookup(dataset, "select clienteid, nomecliente, limitecred from clientes" );


Para ter acesso à primeira linha (dataset), teremos:
{clienteid} = {dataset[0][0]};
{nomecliente} = {dataset[0][1]};
{limitecred} = {dataset[0][2]};

Para ter acesso à segunda linha (dataset), teremos:
{clienteid} = {dataset[1][0]};
{nomecliente} = {dataset[1][1]};
{limitecred} = {dataset[1][2]};

Caso ocorra erro na execução do comando sql, a variável atribuida ao dataset retornará como "false" e a mensagem de erro estará disponível na variável "dataset_erro".
É importante, também, verificar se o select retornou dados, para evitar o acesso a variáveis inexistentes, uma vez que o array de saída só será criado se o comando select retornar dados.

Ex. 2:
sc_lookup(meus_dados, "select clienteid, nomecliente, limitecred from clientes");
if ({meus_dados} === false)
{
echo "Erro de acesso. Mensagem = " . {meus_dados_erro};
}
elseif (empty({meus_dados}))
{
echo "Comando select não retornou dados ";
}
else
{
{clienteid} = {meus_dados[0][0]};
{nomecliente} = {meus_dados[0][1]};
{limitecred} = {meus_dados[0][2]};
}

Ex. 3 : O comando SQL também pode ser composto de campos da aplicação (variáveis locais) ou de variáveis globais:
sc_lookup(dataset, "select valor pedido from pedidos where clienteid = '{clienteid} ' and cod_vendedor = [var_glo_vendedor]");


Obs: Em qualquer circunstância, o comando tem que ser encerrado com ponto e vírgula ";".

Obs2: Não recomendamos o uso da macro sc_lookup com retornos muito grandes, para esse tipo de ocasião recomendamos o uso da macro sc_select
http://www.scriptcase.com.br/docs/pt_br/v81/manual_mp.htm#macros-scriptcase/macros-scriptcase
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

gleisonrgf

  • Novato
  • *
  • Mensagens: 15
    • Email
Re:Problemas com controle
« Responder #3 Online: Março 03, 2016, 05:54:07 pm »
Funcionou perfeitamente, muito obrigado