Mostrando postagens com marcador firebird. Mostrar todas as postagens
Mostrando postagens com marcador firebird. Mostrar todas as postagens

terça-feira, agosto 27, 2013

Algumas operações com data no Firebird

HI,

Algumas operações que uso. Hoje mesmo precisei retornar a semana do ano de uma data, saber a data do primeiro e último dia da semana.

Por exemplo, hoje são 27/08/2013. O dia da semana é 35. A data do primeiro dia da semana 35 é 25/08/2013 e o último é 31/08/2013.

Para retornar a semana do ano com base em uma data
trunc((EXTRACT(YEARDAY FROM (data - EXTRACT(WEEKDAY FROM data-1) + 3)) - EXTRACT(WEEKDAY FROM (data - EXTRACT(WEEKDAY FROM data-1) + 3)-1) + 7) / 7e0) + 1

Se quiser a data Atual: current_date
Se quiser converter uma string para data: cast('08/27/2013' as date)

Data do primeiro dia da semana:
(current_date - EXTRACT(WEEKDAY FROM current_date))

Data do último dia da semana:
(current_date + (6 - EXTRACT(WEEKDAY FROM current_date)))


Base da lógica para pegar a semana do ano
http://www.volny.cz/iprenosil/interbase/ip_ib_code_timestamp.htm

Funções
Day of Week
First/last day of month
Number of days in month
Week of year
Is Leap Year ?



Fiquem na Paz!!!

sexta-feira, setembro 28, 2012

Commit em uma procedure no firebird

HI,

Vou explicar primeiro a situação.

Em uma procedure para retornar o resultado de uma query, precisei primeiro popular a tabela com um select/insert. A procedure executou sem problemas, mostrou o resultado no grid do ibexpert, mas quando fui olhar na tabela, não tinha registro. Deduzi que era a falta do commit, mas aí não foi possível executar a procedure, dizia que o comando não era entendido. Pesquisando no google encontrei a solução.

How do I use transactions in Firebird?
http://stackoverflow.com/questions/6256678/how-do-i-use-transactions-in-firebird

Tive que colocar esse comando no começo da procedure

IN AUTONOMOUS TRANSACTION
DO


Fiquem na Paz!!!

sexta-feira, dezembro 02, 2011

Mais um erro ao restaurar backup do Firebird

HI,

Precisei pegar um banco de dados de um cliente, e deixar a base vazia, excluir todos os registros, mas não de todas as tabelas.

Fiz o backup, e na hora de restaurar deu o seguinte erro: Invalid token. Malformed string.

Procurando no google, achei essa solução

[firebase-br] Problema ao restaurar backup na versão FB 2.5
http://firebase.com.br/pipermail/lista_firebase.com.br/2010-February/066318.html

aqui tem um help sobre backup/restore
http://www.destructor.de/firebird/gbak.htm

meu comando ficou assim
gbak -c -v -fix_fss_m win1252 -user SYSDBA -password masterkey C:\vazio_backup.fbk C:\vazio.gdb


Fiquem na Paz!!!

sexta-feira, novembro 04, 2011

Erro ao restaurar backup do Firebird

HI,

Mais uma aventura com o Firebird.

Recebi o backup de um cliente e acredito que a versão do banco dele seja menos atualizada que a minha. Estou usando o Firebird 2.5

Ao restaurar recebi essa mensagem quando tava em uma tabela:

IBE: Invalid token.
     Malformed string.

Pesquisando, achei a solução, graças a Deus e aqueles que disponibilizam seus conhecimentos e... valeu google.

Esse foi o comando que usei para conseguir restaurar o banco

gbak -r -p 8192 -create -v -user SYSDBA -password masterkey -FIX_FSS_METADATA WIN1252 -REP banco.fbk banco.gdb

links que achei

http://tech.groups.yahoo.com/group/firebird-support/message/110416
http://firebirdpt.wordpress.com/2008/06/28/backup-e-restore-com-gbak-em-linha-de-comando/
http://firebase.com.br/pipermail/lista_firebase.com.br/2010-February/066318.html


Fiquem na Paz!!!!

sexta-feira, outubro 31, 2008

Erro executando Procedure - "unknown ISC error 0"

HI,

Ontem me deparei com o erro "unknown ISC error 0". Depois de muito procurar no google não encontrei uma solução, talvez não tenha me dedicado, hehehe.

Mas ficava lembrando que a única que vez que tive problema com uma procedure no Firebird utilizando Delphi 7, foi por causa do tamanho do nome. Se não me engano o erro indicava que o problema era o tamanho, não me recordo muito bem.

Desconfiei que poderia ser esse o motivo, mas continuei no google. Estava desconfiado por que no Windows Vista as mensagens de erro nem sempre indicam o verdadeiro motivo, hehehe. Sem falar que as outras procedures estavam ok.

Foi só apagar a procedure e criá-la de novo com um nome menor que deu certo. Deveria ter tentado isso logo, hehehe.

A procedure é bem simples, serve para pegar o próximo valor de um Generator. Por isso sabia que o erro num era nela, hehehe.

Até a próxima.