|
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.
O parâmetro de conexão não aceita variável. Você deve digitar o nome da conexão que o comando SQL irá executar.
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
|