Firebird

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Firebird

Mensagem por JoséQuintas »

leandrolinauer escreveu:Estou atualmente tentando criar alguma coisa genérica para usar em SELECT
Algo parecido com ADO ou igual (rsrsrs), algo que eu posso pegar o conteúdo de forma mais clara como fazia em DBF.
Quanto a ADO não consegui fazer funcionar e tbem ficaria preso ao windows.
Se tiver mais algo que possa me ajudar, fico grado
Talvez melhor verificar o SQLMIX.
Ele praticamente junta tudo, incluindo isso que já está usando, pra usar o resultado igual DBF.

Mas tenha certeza: comandos SQL é o que vão fazer a diferença, apenas trocar a base de dados não significa que vai ficar mais rápido.
E tanto faz se ADO, SQLMIX, etc... todos permitem comandos SQL.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Firebird

Mensagem por leandrolinauer »

Boa tarde, não me preocupo muito com a velocidade, apenas em relatorios, mas sim pela segurança e robustez dos SGDB.
Optei em usar o firebird e a contrib hbfbird.
Estou atualmente fazendo algo com SELECT para ficar mais intuitivo para programar com os comandos sql fixo em função, assim poderei até mudar de SGDB, bastando acrescentar na função os comandos.
Vamos ver no que vai dar, posto assim que surtir efeito deseja na minha função DB_SQL_SELECT().
Valeu
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Avatar do usuário
Poka
Usuário Nível 4
Usuário Nível 4
Mensagens: 563
Registrado em: 25 Out 2004 21:26
Localização: Leme/SP

Firebird

Mensagem por Poka »

Boa noite
Escolhi o firebird, enes motivos, dentre um deles, facil instalação.
Ótima escolha
Também optei pelo Firebird pelo mesmo motivo
Leandro, usa firerebird 2,5 + odbc.

nada contra o my_sql por exemplo. Mas tive que pegar dados do my_sql e passar para o firebird de um cliente.

Tive que instalar o my_sql no meu computador. DEUS ME LIVRE. chamei uma pessoa que mexe com rede para instalar pra mim pra poder testar aqui no meu computador. Já não chega o trabalho prá instalar o sistema no cliente e mais o my_sql ainda? Firebird e odbc dois minutos tá tudo instalado.

Além de ser um ARQUIVÃO só que tem todas as tabelas, não aguentava mais ver aquele monte de dbf e cdx.


Poka
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Firebird

Mensagem por leandrolinauer »

Boa tarde Poka.
Grato pelo retorno.
Poderia me enviar algum exemplo de como vc fez para trabalhar com as consultas "select" e tratar o retorno do conteudo, só para eu ter mais uns exemplos de como tratar os retornos das consultas.
Grato
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Firebird

Mensagem por JoséQuintas »

Se usar SQLMIX, que é do Harbour, grátis....
É algo mais ou menos assim:

Código: Selecionar todos

USE ( "SELECT * FROM ...." ) ALIAS consulta
DO WHILE ! EOf()
   ? consulta->Codigo
   ? consulta->Nome
   SKIP
ENDDO
Precisa pesquisar sobre os detalhes de uso/configuração, mas basicamente seria isso acima.
E provavelmente comandos SQL pra salvar (incluir/alterar/excluir)
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Poka
Usuário Nível 4
Usuário Nível 4
Mensagens: 563
Registrado em: 25 Out 2004 21:26
Localização: Leme/SP

Firebird

Mensagem por Poka »

Leandro, boa noite

Uso harbour + hmg extend

Leandro veja se vc consegue fazer funcionar esta rotininha
Ela retorna a quantidade de campos e uma matriz que que contém o nome dos campos
Só um teste pra ver se vai funcionar aí no seu.
Tambem não sei muito de FB mas fazendo aos poucos, a parte sobre relatorios
são mais complexos, mas a gente vai perguntando e todos vão ajudando.
mas tem muitas funções que facilitam na programação para não ficar toda hora executando SELECT
//
algumas explicações
Eu criei um prg FB_FUNCOES.PRG e coloquei todas as funções ref a FIREBIRD dentro dela
todo comando SELECT, UPDATE etc eu jogo na variavel STR
e logo após executo FB_EXECUTA()
fb_executa() vc dever ter a sua parecida aí.
fb_executa() sempre me retorna uma matriz M_SELECT que contém o resultado do comando executado
m_select já declaro como publ no inicio do sistema
//
mTotCampos:=fb_contacampos( xnomeTab) "cadcli" por exemplo ou uma variavel do nome da tabela

para ver o total de campos
msginfo(mTotCampos)
para ver a lista de campos
x:=""
for a:= 1 to len(m_select) //
x+=m_select[a,1] + chr(13) + chr(10)
next
msginfo(x)

Código: Selecionar todos

func fb_ContaCampos(xtab)
   local mx:={} , x,a , xarq:=""
   str:="SELECT RDB$FIELD_NAME   FROM RDB$RELATION_FIELDS  WHERE RDB$RELATION_NAME = 
   '"+upper(XTAB)+"'"
   Fb_executa()  
retu len(m_select)
Poka
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Firebird

Mensagem por Vlademiro »

Nunca trabalhei diretamente com Firebird, mas já trabalhei em uma empresa que tinha um sistema que usava. Nunca dava problema, muito estável. As vezes me chamavam para configurar a string de conexão quando tinha que instalar em uma máquina recém formatada. Nunca me aprofundei no assunto, porque lá na empresa sobrava trabalho com sistemas web. Nem me lembro mais como conecta. Na época era a versão 1.6 se não me engano. Se vcs quiserem compartilhar mais experiências eu agradeço. Principalmente trecho de fontes em Harbour.
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Firebird

Mensagem por leandrolinauer »

Bom dia a todos, grato pelos retornos.
Até ontem a tarde eu consegui fazer algo que me ajudou muito, bom acho eu que sim, agora não sei mais pra frente com pesquisas diferentes.
Veja o que eu produzi com as contribuições de todos, desta forma abaixo eu consigo pegar os valores de uma forma limpa, talvez tenha forma melhor de se fazer mas esta foi a forma que eu consegui montar e funcionou.
Esta parte seleciona as taxas do sistema ao entrar.

Código: Selecionar todos

      //parte principal do sistema
      .....
      oSQL_Temp := DB_SQL_SELECT("TB_TAXA","*","") //CADASTRO DE TAXAS
      If Len(oSQL_Temp) > 1 //se tiver retorno fica valendo SQL
         aDataTaxa := DB_SQL_Fields(oSQL_Temp,"DATA")
         wPJuros   := DB_SQL_Fields(oSQL_Temp,"JUROS")
         wG_JurosM := DB_SQL_Fields(oSQL_Temp,"JUROSM")
         wG_Multa  := DB_SQL_Fields(oSQL_Temp,"MULTA")
         wG_MultaM := DB_SQL_Fields(oSQL_Temp,"MULTAM")
      Else  //antigo
         //DBF
         NetUseFile("CDOC0900",{"CDOC0900"},.T.,,,,,,,wD_Geral) //CADASTRO DE TAXAS
         DbGoBottom()
         aDataTaxa:=DATA
         wPJuros  :=JUROS
         wG_JurosM:=JUROSM
         wG_Multa :=MULTA
         wG_MultaM:=MULTAM
         DbCloseArea()
      EndIf
      ....

Código: Selecionar todos

Function DB_SQL_Select(oTabela,oPesquisa,oCondicao) //MODIFICADA PARA FUNCIONAR PRA MIM
// retorna a matriz com os campos
local a , b , c
local  mx:={};	xtabela:=otabela ; xpesquisa:=oPesquisa; xcondicao:=ocondicao ; Mret:={} ; _erro:=""
acampos:=FB_PegaCampos(oTabela) //contribuição 

StrSql:="select &xpesquisa from &xtabela &xcondicao;"

If !Empty(oSQL_CnnDB) .And. Empty( _erro:=FB_Executa() )
   mx:=&(oSQL_Conect):aRecordSet
   If Len(mx)>0 //se nao tiver retorno nao consulta
      mRet:=Array(Len(mx)+1,Len(mx[1])) //DECLARA A ARRAY NO TAMANHO TOTAL DO RETORNO M +1, deixando a primeira linha para os campos
      For a:= 1 To Len(aCampos)
          mRet[1][a]:=aCampos[a] //PRIMEIRA LINHA DA ARRAY FICA PARA O NOME DOS CAMPOS
      Next
      For b:= 1 To Len(mx)
          For c:= 1 To Len(mx[b])
              mRet[b+1][c]:=mx[b,c] //atribui os conteudos na mesma sequencia
          Next
      Next
   EndIf
Else
   ShowMessage(,,_erro,5)
EndIf
Return Mret

Function DB_SQL_Fields(omSQL,oCampo,oNPos)
Local nPosCampo:=1
Local ia, oConteudo
oNPos:=If(oNPos=Nil,2,oNPos)
For ia:=1 To Len(omSQL[1])
    If Upper(AllTrim(omSQL[1,ia])) == oCampo
       nPosCampo:=ia
Exit
    EndIf
Next
Return omSQL[oNPos,nPosCampo]

Grato a todos.
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Firebird

Mensagem por Vlademiro »

Qual cliente de firebird vcs estão usando ? Eu usava o IBExpert free, alguém tem uma outra sugestão ?
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Firebird

Mensagem por leandrolinauer »

Boa tarde.
Estou usando o SQL Manager Lite
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Avatar do usuário
RamonXHB
Usuário Nível 3
Usuário Nível 3
Mensagens: 159
Registrado em: 03 Mar 2007 14:55

Firebird

Mensagem por RamonXHB »

Eu uso tanto a IBExpert Free como Sql Manager Lite.
Gostaria de comprar a versão Full, mas acho caro para o uso que dou.
Não compensaria.
Ramon A. Körber Jr.
Harbour 3.2 MiniGUI Extended Edition
xDevStudio v0.70 - BCC 5.82 - Lazarus FreePascal
Firebird
AdoDB - ODBC
Windows - Linux
Linux User Number 404280
MSN - ramon15061959@hotmail.com
Skype - ramon15061959
ICQ - UIN 82580595
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Firebird

Mensagem por leandrolinauer »

Bom dia, uma curiosidade.
Para que precisa usar o cliente firebird ?
Eu só estou usando para ver se o que o meu sistema esta fazendo esta correto ou não, para isto funciona muito bem a versão free, creio que não precisarei usar frequentemente depois de tudo feito no sistema mesmo.

Grato a todos
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Firebird

Mensagem por Vlademiro »

Eu só uso para testes também.
Avatar do usuário
RamonXHB
Usuário Nível 3
Usuário Nível 3
Mensagens: 159
Registrado em: 03 Mar 2007 14:55

Firebird

Mensagem por RamonXHB »

Para aqueles que como eu usam o Firebird, este grupo abaixo, no facebook, tem informações interessantes, vale a pena dar uma olhada.

https://www.facebook.com/groups/mqFirebirdSQL/

Bom proveito.
Ramon A. Körber Jr.
Harbour 3.2 MiniGUI Extended Edition
xDevStudio v0.70 - BCC 5.82 - Lazarus FreePascal
Firebird
AdoDB - ODBC
Windows - Linux
Linux User Number 404280
MSN - ramon15061959@hotmail.com
Skype - ramon15061959
ICQ - UIN 82580595
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Firebird

Mensagem por leandrolinauer »

"
Este grupo reunirá conteúdos sobre o banco de dados Firebird, incluindo muitas dicas da linguagem SQL.

Agora sim meu amigo, você vai aprender coisas importantes para cair de cabeça na área de sistemas!
"
Já solicitei participação, achei interessante.
Grato
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Responder