Tipo Mestre\Detalhe sc_exec_sql("UPDATE Erro:...

Olá, Formulário mestre único registro e detalhes grid editável(view),
Crie um evento PHP

atualizar_totais1

sc_lookup(dataset,“SELECT SUM(valor_investido)
FROM investimentos
WHERE cod_investidor = ‘{codigo}’”);

$total_invest ={dataset}[0][0];
sc_format_num($total_invest, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);

sc_master_value(‘total_investido’, $total_invest);

sc_exec_sql(“UPDATE investidores
SET total_investido = $total_invest
WHERE codigo = {cod_investidor}”);

No eventos
Incluir\modificar\Excluir
atualizar_totais1();

Ao tentar fazer modificação mensagem de erro na tabela detalhes:
Erro ao acessar o banco de dados
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘WHERE codigo = 2’ at line 1

Alguém já passou por isso,

Obrigado,
Leão

Experimentou trocar as aspas simples e duplas de lugar
ao invés de:
sc_lookup(dataset,“SELECT SUM(valor_investido)
FROM investimentos
WHERE cod_investidor = ‘{codigo}’”);
fazer assim:
sc_lookup(dataset,'SELECT SUM(valor_investido)
FROM investimentos
WHERE cod_investidor = “{codigo}” ');

Ou então verificar o conteúdo de $total_invest

Leão, acho que o erro está aqui:

$total_invest ={dataset}[0][0]; 

Não seria assim?

$total_invest ={dataset[0][0]}; 

Alexandre, acho que isso não daria certo pq o php não reconhece variaveis, no caso, {codigo} dentro de aspas simples. Por isso, a forma correta seria com aspas duplas e no where com aspas simples:

sc_lookup(dataset,'SELECT SUM(valor_investido)
                   FROM investimentos
               WHERE cod_investidor = "{codigo}" ');

Olá, fiz conforme sugestões e não deu certo continua o erro, mandei debugar e saiu assim:
(pdo-mysql): SELECT SUM(valor_investido) FROM investimentos WHERE cod_investidor =

quando coloco assim:
sc_lookup(dataset,“SELECT SUM(valor_investido)
FROM investimentos
WHERE cod_investidor = ‘{codigo}’”);

mostra assim:
(pdo-mysql): SELECT SUM(valor_investido) FROM investimentos WHERE cod_investidor = ‘’

por isso o erro, não aceita o ‘{codigo}’ nem codigo “{codigo}”,

para efeito de teste informo número 2, não ocorre o erro.

Vamos lá Thyago, Kleyber e Alexandre…

Simples,

O campo {codigo} não tem valor nenhum dentro dele.

É verdade tinha esquecido que:
$var=1
echo “$var” -> 1
echo ‘$var’ -> nulo, vazio.
Tente fazer assim Leão:

sc_lookup(dataset,“SELECT SUM(valor_investido)
FROM investimentos
WHERE cod_investidor = {codigo}”);

Somente com aspas duplas.

Outra coisa.
{codigo} é um campo que que existe no seu formulário?
ou é uma variável global [codigo]?

Olá, pensando bem, depois de sair de perto do computador raciocinando na verdade precisa de uma variável com o campo codigo
na aplicação no evento Onload mestre fiz assim:

$glo_codigo= {codigo};
sc_set_global($glo_codigo);

e na detalhe:

sc_lookup(dataset,“SELECT SUM(valor_investido)
FROM investimentos
WHERE cod_investidor =[glo_codigo]”);

$total_invest ={dataset}[0][0];
//$total_invest ={dataset[0][0]};

sc_trunc_num($total_invest, 2);
sc_master_value(‘total_investido’, $total_invest);

sc_exec_sql(“UPDATE investidores
SET total_investido = $total_invest
WHERE codigo = [glo_codigo]”);

Funcionou mas não atualiza quando confirmo a modificação na detalhes, somente depois que avanço registro
na mestre, qual evento na mestre devo informa a variável publica?

Detalhe na detalhes no informei no evento onApplicationinit
$cod_investidor = [glo_codigo];

Qual o melhor evento para informar?

Ao incluir e excluir funciona certinho, mas modificar não atualiza mestre, só se avançar ou voltar um registro no mestre,
isso é incrível…

obrigado,
Leão

Olá, Thyago Brasil, o que pode ser, não atualizar o total no mestre quando modifica no detalhe…