[firebase-br] RES: Ajuda com SQL (Insert Into)

Diego Maccari diegomaccari em ig.com.br
Qua Fev 2 15:50:18 -03 2011


Prezado André

Primeiramente obrigado por sua disposição

Substitui a função GEN_ID pela função MAX() sendo assim
onde eu teria:

INSERT INTO TB_C170 (ID, CNPJ_IMP, MES_IMP, ANO_IMP, REG, NUM_ITEM, 
COD_ITEM, DESCR_COMPL, QTD, UNID, VL_ITEM, VL_DESC, IND_MOV, CST_ICMS, CFOP, 
COD_NAT, VL_BC_ICMS, ALIQ_ICMS, VL_ICMS, VL_BC_ICMS_ST, ALIQ_ST, VL_ICMS_ST, 
IND_APUR, CST_IPI, COD_ENQ, VL_BC_IPI, ALIQ_IPI, VL_IPI, CST_PIS, VL_BC_PIS, 
ALIQ_PIS, QUANT_BC_PIS, ALIQ_PIS_REAIS, VL_PIS, CST_COFINS, VL_BC_COFINS, 
ALIQ_COFINS, QUANT_BC_COFINS, ALIQ_COFINS_REAIS, VL_COFINS, COD_CTA, 
ID_C100) VALUES ((SELECT GEN_ID(GEN_TB_C170_ID, 1) FROM RDB$DATABASE), 
'00.000.000/0000-00', 'Janeiro', '2010', 'C170', 1, '42196', NULL, '16', 
'UN', '606.4', '0', '0', '060', '1403', '1403', '0', '0', '0', '0', '0', 
'0', '0', NULL, NULL, '0', '0', '0', '04', '0', '1.65', NULL, NULL, '0', 
'04', '0', '7.6', NULL, NULL, '0', '604', (SELECT GEN_ID(GEN_TB_C100_ID, 0) 
FROM RDB$DATABASE));

Passaria a ser:

INSERT INTO TB_C170 (ID, CNPJ_IMP, MES_IMP, ANO_IMP, REG, NUM_ITEM, 
COD_ITEM, DESCR_COMPL, QTD, UNID, VL_ITEM, VL_DESC, IND_MOV, CST_ICMS, CFOP, 
COD_NAT, VL_BC_ICMS, ALIQ_ICMS, VL_ICMS, VL_BC_ICMS_ST, ALIQ_ST, VL_ICMS_ST, 
IND_APUR, CST_IPI, COD_ENQ, VL_BC_IPI, ALIQ_IPI, VL_IPI, CST_PIS, VL_BC_PIS, 
ALIQ_PIS, QUANT_BC_PIS, ALIQ_PIS_REAIS, VL_PIS, CST_COFINS, VL_BC_COFINS, 
ALIQ_COFINS, QUANT_BC_COFINS, ALIQ_COFINS_REAIS, VL_COFINS, COD_CTA, 
ID_C100) VALUES ((SELECT GEN_ID(GEN_TB_C170_ID, 1) FROM RDB$DATABASE), 
'00.000.000/0000-00', 'Janeiro', '2010', 'C170', 1, '42196', NULL, '16', 
'UN', '606.4', '0', '0', '060', '1403', '1403', '0', '0', '0', '0', '0', 
'0', '0', NULL, NULL, '0', '0', '0', '04', '0', '1.65', NULL, NULL, '0', 
'04', '0', '7.6', NULL, NULL, '0', '604', (SELECT MAX(ID)FROM TB_C100));

Gostei do resultado ate porque com MAX() o maior ID da tabela e com GEN_ID 
poderia ter problemas caso por algum motivo o
INSERT da TB_C700 não fosse executado corretamente,
muito obrigado pela dica, fico te devendo uma, valeu...


--------------------------------------------------
From: "andre conrado" <acf.andre em gmail.com>
Sent: Wednesday, February 02, 2011 2:07 PM
To: "FireBase" <lista em firebase.com.br>
Subject: Re: [firebase-br] RES: Ajuda com SQL (Insert Into)

> Diego, ainda qto ao ID, vc não precisa usar o SELECT GEN_ID no INSERT,
> pode usar o GEN_ID sozinho como se faz com uma outra função qualquer.
>
> Agora, eu acredito q seria mais seguro se vc buscasse na tabela
> TB_C100 o último usando um SELECT MAX(ID) FROM TB_C100. Isso evitaria
> q numa possível manutenção futura (onde a forma de atualização do
> campo ID mudasse) a inserção ficasse inconsistente.
>
> Em 28/01/11, Carlos Alberto<cacgodinho em gmail.com> escreveu:
>> Diego,
>>
>> Tive problemas com inserção de datas no FB mas consegui resolver.
>> Faça da seguinte forma que funciona redondo...
>>
>> sqlstr="INSERT INTO TABELA (Codigo, Data) VALUES ('" & varCodigo & '", '" 
>> &
>> format(varData,"dd.mm.yyyy") & "')
>>
>> Espero que ajude...
>>
>> Carlos Alberto.
>>
>> ----- Original Message -----
>> From: "Diego Maccari" <diegomaccari em ig.com.br>
>> To: "FireBase" <lista em firebase.com.br>
>> Sent: Friday, January 28, 2011 9:13 AM
>> Subject: Re: [firebase-br] RES: Ajuda com SQL (Insert Into)
>>
>>
>> Julio muito obrigado pela dica mas este erro eu já consertei aqui o 
>> problema
>> estava na falta de uma coluna não era o SELECT GEN_ID
>> o firebird aceita varios select's dentro do insert.
>>
>> mas pra minha felididade agora estou com problema em um campo DATE que 
>> não
>> aceita um determinado valor exemplo = '10/01/2011'
>> como seria a maneira correta de inserir datas no fb  ?
>>
>> --------------------------------------------------
>> From: "Julio Cezar - Desenvolvimento" <juliocezarsilva em sfox.com.br>
>> Sent: Friday, January 28, 2011 8:17 AM
>> To: "'FireBase'" <lista em firebase.com.br>
>> Subject: [firebase-br] RES:  Ajuda com SQL (Insert Into)
>>
>>> Não sei se ajuda mas se ao inserir na tabela TB_C100_ID vc usar da
>>> seguinte
>>> forma.
>>>
>>> INSERT INT TB_C100_ID (SEUS CAMPOS) VALUES (OS VALORES) RETURNING O ID 
>>> DA
>>> TABELA
>>>
>>> Você têm o id que inseriu nessa tabela disponivel em seu recordset 
>>> depois
>>> basta fazer o insert na outra tabela, desta forma não funcionaria não?
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Nada substitui o ser humano! Inst. Faber Ludens
>>> -----Mensagem original-----
>>> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
>>> Em
>>> nome de Jeter Rabelo Ferreira
>>> Enviada em: quinta-feira, 27 de janeiro de 2011 17:52
>>> Para: FireBase
>>> Assunto: Re: [firebase-br] Ajuda com SQL (Insert Into)
>>>
>>> GEN_ID(GEN_TB_C100_ID, 1)
>>>
>>> 2011/1/27 Diego Maccari dos Santos <diegomaccari em ig.com.br>
>>>
>>>> Ajuda com SQL (Insert Into)
>>>>
>>>> Pessol estou tentando inserir um registro no BD (Firebird) onde o 1º
>>>> campo
>>>> ID é chave primaria que recebe o valor de um generator e o ultimo campo 
>>>> é
>>>> um
>>>> campo INTEIRO no qual estou inserindo o valor da chve primaria de outra
>>>> tabela porem este campo não é chave estrangeira estou tentando pegar o
>>>> valor
>>>> do generator e inserir no campo não está dando certo uso o seguinte 
>>>> SQL:
>>>>
>>>> INSERT INTO TB_C170 (ID, CNPJ_IMP, MES_IMP, ANO_IMP, REG, NUM_ITEM,
>>>> COD_ITEM, DESCR_COMPL, QTD, UNID, VL_ITEM, VL_DESC, IND_MOV, CST_ICMS,
>>>> CFOP,
>>>> COD_NAT, VL_BC_ICMS, ALIQ_ICMS, VL_ICMS, VL_BC_ICMS_ST, ALIQ_ST,
>>>> VL_ICMS_ST,
>>>> IND_APUR, CST_IPI, COD_ENQ, VL_BC_IPI, ALIQ_IPI, VL_IPI, CST_PIS,
>>>> VL_BC_PIS,
>>>> ALIQ_PIS, QUANT_BC_PIS, ALIQ_PIS_REAIS, VL_PIS, CST_COFINS, 
>>>> VL_BC_COFINS,
>>>> ALIQ_COFINS, QUANT_BC_COFINS, ALIQ_COFINS_REAIS, VL_COFINS, COD_CTA,
>>>> ID_C100) VALUES ((SELECT GEN_ID(GEN_TB_C170_ID, 1) FROM RDB$DATABASE),
>>>> '00.000.000/0000-00', 'Janeiro', '2010', 'C170', , '73695', NULL, '49',
>>>> 'UN', '269,5', '0', '0', '010', '1403', '1403', '0', '7', '0', '0', 
>>>> '0',
>>>> '0', '0', NULL, NULL, '0', '0', '0', '01', '269,5', '1,65', NULL, NULL,
>>>> '4,45', '01', '269,5', '7,6', NULL, NULL, '20,48', '604', (SELECT
>>>> GEN_ID(GEN_TB_C100_ID, 0) FROM RDB$DATABASE));
>>>>
>>>> Onde está o erro ???
>>>> Alguém pode ajudar?
>>>>
>>>> Acho que o erro está no ultimo SELECT GEN_ID que coloquei pra pegar o 
>>>> ID
>>>> atual da outra tabela, a tabela chama TB_C100 e o Generation
>>>> GEN_TB_C100_ID.
>>>> ______________________________________________
>>>> 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
>>>>
>>>
>>>
>>>
>>> --
>>> []'s
>>> Jéter Rabelo Ferreira
>>> ______________________________________________
>>> 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
>>
>>
>> ______________________________________________
>> 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
>>
>
>
> -- 
> Um Abraço,
> André Conrado.
>
> 055 21 9176-7013 - Claro
> 055 21 9896-5449 - Vivo (apenas mensagens SMS)
>
> ______________________________________________
> 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 





Mais detalhes sobre a lista de discussão lista