[firebase-br] Estorno ***de loucos***

Carlos H. Cantu (TeamFB) listas em warmboot.com.br
Qui Ago 21 13:31:19 -03 2008


Eu ainda não consegui entender exatamente qual eh seu problema...
aparentemente vc reportou 2 mensagens de erro distintas.

A primeira diz que vc não pode inserir porque a tabela está em modo
readonly. Veja se te ajuda:

http://www.ibphoenix.com/main.nfs?a=ibphoenix&s=1154534295:6&page=ibp_60_ro_ext_fs

A segunda mensagem, "multiple rows in singleton select", indica que vc
tentou recuperar informações com um select que deveria retornar no
máximo uma linha, mas retornou mais. Não encontrei no código que vc
postou uma instrução que poderia causar esse erro, então acredito que
isso esteja sendo disparado em algum trigger associado a tabela, ou
então numa parte do código que vc não postou...

[]s
Cantu (Membro do TeamFB - FireBase)
http://www.warmboot.com.br
FireBase - http://www.FireBase.com.br
Blog - http://blog.firebase.com.br

MR> Descobri o problema. Talvez o Cantú ou alguém do TeamB tenha uma solução
MR> para ele
MR> ... "Cannot insert because the file is readonly or is on a read only 
MR> medium."}, /* 331, ext_readonly_err */ {335544652, "multiple rows in 
MR> singleton select"} ...
MR> usando uma Tabela/imagem funcion mas é uma soluçâo que não me agrada mesmo
MR> nada já que temos de criar uma
MR> para cada UserId diferente ou uma c/+ 1campo UserId.de.Trabalho e o cuidado
MR> de Deletar os registos desse user
MR> cada vez que corre a procedure ,e depois, é sempre mais um ficheiro pois ao
MR> que julgo saber o FB2 ainda não possui
MR> Create Temp. É que não funciona!  Nem mesmo com Aliáses diferentes o erro é
MR> sempre o mesmo 335544652
MR> Mas decerteza que já alguém precisou fazer isto antes!?!?!?

MR> Quem conhecer uma solução que não passe por um ficheiro
MR> De qq forma Obrigado

MR> "Mário Reis" <secretariadogeral em acra.pt> escreveu na 
MR> mensagem news:g8joqf$gjh$1 em ger.gmane.org...
>> Errado não estou a conseguir  embora me de erro apenas no 2.º insert
>> salta-me para When ANY Do ... End Nota desactivei todas a triggers etc..
>> Inclusive, criei agorinha mesmo um ficheiro imagem (trabalho) e nem nesse 
>> ficheiro
>> (s/triggers sem indices sem NOT NULL) se  estou a conseguir inserir esses 
>> registos
>> que coisa!' impressionante
>>
>> "Isael Faria Junior" <isael em stetika.com.br> 
>> escreveu na mensagem 
>> news:48AD5C9F.5000904 em stetika.com.br...
>> você so consegue rodar uma vez essa rotina ? ou Ela só executa para o
>> primeiro registro ?
>>
>> Mrio Reis escreveu:
>>> Bom dia,
>>>
>>> Estou há horas a tentar implementar o "Estorno de uma operação 
>>> financeira"
>>> coisa que é termo conceptuais é muito simples. Temos uma ou várias linhas
>>> com indicação de "pagas" por erro que afinal não estão e é preciso 
>>> corrigir.
>>> O fisco exige e até por razões de transparencia da propria
>>> empresa/associação etc que se não se apaguem linhas mas, antes, que 
>>> repitam
>>> as mesmas linhas cada uma com os Valores *-1 uma, e que a mesma se repita
>>> c/sinal positivo mas agora sem por exemplo Data de pagamento, N.º de 
>>> Recibo
>>> e N.ºOperação(controla todos os registos de uma transacção) e estou a 
>>> fazer
>>> assim
>>>
>>> FOR SELECT  CB1.COBRANCA_ID, CB1.VALOR_PG, CB1.VALOR_IVA, CB1.VALOR_DISC,
>>> CB1.DT_PG_EFECTIVO, CB1.NORECIBO, CB1.NOOPERACAO
>>> FROM COBRANCAS CB1
>>> WHERE CB1.DT_PG_EFECTIVO=:IN_DT_PG_EFT AND CB1.CLIENTE_ID=:IN_CLI_ID
>>> INTO :WCOBRANCA_ID, :WVLR_PG, :WVLR_IVA, :WVLR_DISC, :WDT_PG_EFECTIVO,
>>> :WNORECIBO,:NOOPERACAO
>>> DO
>>>  BEGIN
>>>    /*      1. NEGATIVAR VALORES */
>>>   WVLR_PG=WVLR_PG*-1;
>>>   WVLR_IVA=WVLR_IVA*-1;
>>>   WVLR_DISC=WVLR_DISC*-1;
>>>  /* 2.  NOTA: NO MESMO FICHEIRO */
>>>   /* 2.1 ---------------------------------------> INSERE UMA LINHA 
>>> NEGATIVA
>>> */
>>>  INSERT INTO COBRANCAS
>>> (COBRANCA_ID, VALOR_PG, VALOR_IVA, VALOR_DISC, DT_PG_EFECTIVO,
>>> NORECIBO,NOOPERACAO)
>>>   VALUES(:WCOBRANCA_ID, :WVLR_PG, :WVLR_IVA, :WVLR_DISC, 
>>> :WDT_PG_EFECTIVO,
>>> ORECIBO,:WNOOPERACAO);
>>>    /*     2.2 POSITIVAR VALORES DA MESMA LINHA E RE-INSERI-LOS*/
>>>    /* C/CONTROLOS DO PAGAMENTO A NULL INDICANDO O S/NÃO PAGAMENTO  */
>>>     WDT_PG_EFECTIVO=NULL;
>>>     WNORECIBO=NULL
>>>     WNOOPERACAO=NULL
>>>    WVLR_PG=WVLR_PG*-1;
>>>    WVLR_IVA=WVLR_IVA*-1;
>>>    WVLR_DISC=WVLR_DISC*-1;
>>>    /* NOTA: AINDA NO MESMO FICHEIRO */
>>>   /* 2.3------------------------------------------>INSERE UMA LINHA 
>>> POSITIVA
>>> MAS, NÃO PAGA  */
>>>   INSERT INTO COBRANCAS
>>> (COBRANCA_ID, VALOR_PG, VALOR_IVA, VALOR_DISC, DT_PG_EFECTIVO,
>>> NORECIBO,NOOPERACAO)
>>>   VALUES(:WCOBRANCA_ID, :WVLR_PG, :WVLR_IVA, :WVLR_DISC, 
>>> :WDT_PG_EFECTIVO,
>>> ORECIBO,:WNOOPERACAO);
>>>
>>> END
>>> suspend,
>>>
>>> Só consigo uma 1.ª vez o negativar o 1.º insert O que há de errado neste
>>> codigo?
>>> Alguém já passou por isto que possa ajudar.
>>> Obrigado
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> No virus found in this incoming message.
>>> Checked by AVG - http://www.avg.com
>>> Version: 8.0.138 / Virus Database: 270.6.6/1624 - Release Date: 20/8/2008 
>>> 19:11
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use: 
>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use: 
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>
>>
>>
>>


MR> --------------------------------------------------------------------------------


MR> ______________________________________________
MR> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
MR> Para saber como gerenciar/excluir seu cadastro na lista, use: 
MR> http://www.firebase.com.br/fb/artigo.php?id=1107
MR> Para consultar mensagens antigas: http://firebase.com.br/pesquisa 









Mais detalhes sobre a lista de discussão lista