Dúvida referente ao uso de Aspas Simples, Conchetes, etc...

(Paulo (ClickInformatica)) #1

Olá a todos
estou tentando fazer um INSERT into conforme abaixo

/* Macro sc_lookup */

sc_lookup(dadoscheque, "
SELECT
prazo_pagamento.banco,
prazo_pagamento.agencia,
prazo_pagamento.num_conta,
prazo_pagamento.num_cheque,
prazo_pagamento.dt_vencimento,
prazo_pagamento.valor,
venda_veiculos.venda_cliente
FROM
venda_veiculos INNER JOIN prazo_pagamento ON venda_veiculos.venda_id = prazo_pagamento.pz_venda_veiculos
WHERE
(pz_venda_veiculos = ‘{pz_venda_veiculos}’)
");
/* Erro no lookup /
if (empty({dadoscheque})) { /
EOF */
sc_error_message(“Nenhum valor foi retornado pelo banco.
”);
} else {
$banco = {resultado[0][0]};
$agencia = {resultado[0][1]};
$num_conta = {resultado[0][2]};
$num_cheque = {resultado[0][3]};
$dt_vencimento = {resultado[0][4]};
$valor = {resultado[0][5]};
$cliente = {resultado[0][6]};

{dt_vencimento} = sc_date_conv({dt_vencimento},“dd/mm/aaaa”,“aaaa-mm-dd”);
sc_exec_sql(“INSERT INTO cheques (chq_banco,chq_agencia,chq_num_conta,chq_num_cheque,chq_valor, ,chq_vecto, chq_cliente, chq_observacao, chq_status)
VALUES ($banco,$agencia, $num_conta, $num_cheque, $valor, ‘{dt_vencimento]’, ‘$cliente’, ‘Lançamento Venda Veiculo’,‘N’)”
);
}

A questão é :
Coloquei uma echo e exibe todas as váriaveis, sem problemas
mas estou sem saber quando devo utilizar $variavel ou ‘{variavel}’ ou ‘variavel’, creio que por isso não estou conseguindo gravar os registro na tabela CHEQUES

Alguém pode me esclarecer isso ?

Grato

(rayfcrols) #2

Click, verifique seu script, onde esta “resultado” o não é “dadoscheque”??

(Cleyton Euler) #3

Sua echo não pode esta retornando os dados das variáveis pelo fato que o fayfcrols citou. Sua variável de lookup é dadoscheque e vc está atribuindo as variávies resultado.

Vc está fazendo isso: $banco = {resultado[0][0]};
o correto, pela definição do sc_lookup, seria: $banco = {dadoscheque[0][0]};

$variável - Isto é uma variável local
[variavel] - Isto é uma variável global
{variavel} - Isto é um nome de campo do sc

As aspas simples vc deve utilizar em sentenças SQL para valores numéricos.

Acho que é isso.

(George Carvalho) #4

Tente assim:

/* Macro sc_lookup */

sc_lookup(dadoscheque, "
SELECT
prazo_pagamento.banco,
prazo_pagamento.agencia,
prazo_pagamento.num_conta,
prazo_pagamento.num_cheque,
prazo_pagamento.dt_vencimento,
prazo_pagamento.valor,
venda_veiculos.venda_cliente
FROM
venda_veiculos INNER JOIN prazo_pagamento ON venda_veiculos.venda_id = prazo_pagamento.pz_venda_veiculos
WHERE
(pz_venda_veiculos = ‘{pz_venda_veiculos}’)
");
/* Erro no lookup /
if (empty({dadoscheque})) { /
EOF */
sc_error_message(“Nenhum valor foi retornado pelo banco.
”);
} else {
$banco = {dadoscheque[0][0]};
$agencia = {dadoscheque[0][1]};
$num_conta = {dadoscheque[0][2]};
$num_cheque = {dadoscheque[0][3]};
$valor = {dadoscheque[0][5]};
$cliente = {dadoscheque[0][6]};

$dt_vencimento = sc_date_conv({dadoscheque[0][4]},“dd/mm/aaaa”,“aaaa-mm-dd”);

sc_exec_sql(“INSERT INTO cheques (chq_banco,chq_agencia,chq_num_conta,chq_num_cheque,chq_valor, ,chq_vecto, chq_cliente, chq_observacao, chq_status)
VALUES (’$banco’,’$agencia’,’$num_conta’,’$num_cheque’, ‘$valor’, ‘$dt_vencimento’, ‘$cliente’, ‘Lançamento Venda Veiculo’,‘N’)”);
}

George Carvalho

(rayfcrols) #5

Pessoal no final do script na sessão do Insert a penultima variavel (‘Lançamento Venda Veiculo’) é possivel de usar assim?

(George Carvalho) #6

Amigo rayfcrols

Funciona, é a mesma coisa da variavel ‘N’ que vem logo após, não importa os espaços a variavel é limitada por aspas simples.

George Carvalho

(Marco Sabo) #7

O que vc quis dizer é que está sem o $, correto?

(rayfcrols) #8

Pus,grilo… que mancada … num lé as coisas direito e faz merda… desculpe ai pessoal…

(George Carvalho) #9

Só corrigindo, ‘Lançamento Venda Veiculo’ e ‘N’ são constantes.

George Carvalho