Usar macros em bibliotecas externas

Pessoal, uma dúvida: tenho uma ´serie de classes que anexo como bibliotecas do meu projeto. É possível usar as macros SC dentro delas? Se sim, poderiam colocar um exemplo? Teria que fazer include de algum arquivo na biblioteca. Vou postar o codigo que estou usando, mas não está funcionando…

<?php /** * Classe DAL base para camada de acesso a dados * @name Dao * @author Tecnologia Anderson Szalai * @package Dao * @subpackage Dao */ class Dao { /* atributos */ private $sql; /* propriedades */ public function set_sql($value) { $this->sql = $value; } public function get_sql() { return $this->sql; } /** * Efetua o retorno de dados com base no lookup do ScriptCase * @name getSCLookup * @access public * @return array[] ou string caso haja erro */ public function getSCLookup() { /// verifica se há comando if($this->get_sql()=="") return "Informe um comando para execucao"; /* Macro sc_lookup */ sc_lookup(retorno, $this->get_sql()); /* Erro no lookup */ if (FALSE === $retorno) { return "Ocorreu um erro no acesso ao banco de dados"; } elseif (empty($retorno)) { return "Nao ha valores na base de dados."; } else { return $retorno; } } } ?>

Abraços

Bom Dia,

Em todas as bibliotecas é possível sim, integrar com as macros do ScriptCase normalmente. Não é necessário fazer nenhum include para funcionar as macros do ScriptCase, para você testar poderá só colocar a macro sc_lookup (utilizado no seu código) e ver o que é retornado e depois ir verificando o código que está sendo utilizado por você. Quando executa acontece algum erro? Ou chega em qual ponto? O interessante é ir debugando mesmo o seu código. Lembrando também que o que vai ser chamado na aplicação é o nome da função que pelo seu código seria o getSCLookup.

Um último lembrete é de habilitar o uso da biblioteca na aplicação desejada, através do menu “Programação --> Bibliotecas”, seria como se fosse o include da biblioteca na aplicação.

Espero ter ajudado.

Rodrigo Lins.

da erro mesmo instânciar uma classe dentro de outra (interna do sc), pelo menos tentei várias vezes e não obtive resultados, na v5 em aplicação do tipo blank vc consegue usar classes próprias.

Usar macros, apenas em bibliotecas que são iniciadas com uma única Function, pois o sc incorpora essa function e traduz as macros ao gerar o código fonte.

Sobre este tópico
Estou recebendo um erro ao usar a macro sc_lookup() numa biblioteca externa.
Ele não reconhece o “{” do record set.

Veja o código:

function mg_email_locaweb_obter_ambiente() { $sql = " select ambiente from parametro where id_empresa = '1'"; sc_lookup(ds_ambiente,$sql); [b] if (isset({ds_ambiente[0][0]}))[/b] { return {ds_ambiente[0][0]}; } else { return "T"; } }

O erro ocorre na linha 17 em negrito:

Parse error: syntax error, unexpected ‘{’ in /home/mgsistemas/www/toptst/form_ocorrencia/mg_utils.php on line 17

Na aplicação está habilitado o uso da biblioteca

utilize:

function mg_email_locaweb_obter_ambiente()
{
$sql = "select ambiente
from parametro
where id_empresa = ‘1’ ";

sc_lookup(ds_ambiente,$sql);
    if (!empty({ds_ambiente}))
{
            $tmp = {ds_ambiente[0][0]};
	return $tmp;
}
else
{
	return "T";
}

}

Rodrigo
Continua dando o mesmo erro!
Parece que não reconhece o “{” do recordset.
Ele tenta abrir um novo bloco.
Marcelo

Informe sua conexão também para testar:

sc_lookup(ds_ambiente,$sql,“aqui a conexão”);

Rodrigo
Desisto.
Continua o mesmo erro!

Rodrigo
Mesmo assim, obrigado!
Marcelo