Clipper On Line • Ver Tópico - Firebird

Firebird

Discussão sobre SQL

Moderador: Moderadores

 

Firebird

Mensagempor JoséQuintas » 08 Jul 2020 12:13

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18161
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Firebird

Mensagempor leandrolinauer » 08 Jul 2020 16:08

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)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 377
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Firebird

Mensagempor Poka » 08 Jul 2020 19:19

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
Avatar de usuário

Poka
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 514
Data de registro: 25 Out 2004 21:26
Cidade/Estado: Leme/SP
Curtiu: 0 vez
Mens.Curtidas: 24 vezes

Firebird

Mensagempor leandrolinauer » 09 Jul 2020 16:33

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)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 377
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Firebird

Mensagempor JoséQuintas » 09 Jul 2020 19:23

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

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18161
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Firebird

Mensagempor Poka » 09 Jul 2020 21:02

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)

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 de usuário

Poka
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 514
Data de registro: 25 Out 2004 21:26
Cidade/Estado: Leme/SP
Curtiu: 0 vez
Mens.Curtidas: 24 vezes

Firebird

Mensagempor Vlademiro » 10 Jul 2020 03:31

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.
Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 749
Data de registro: 11 Jul 2005 02:46
Curtiu: 22 vezes
Mens.Curtidas: 62 vezes

Firebird

Mensagempor leandrolinauer » 10 Jul 2020 08:29

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.
      //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
      ....

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)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 377
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Firebird

Mensagempor Vlademiro » 10 Jul 2020 15:47

Qual cliente de firebird vcs estão usando ? Eu usava o IBExpert free, alguém tem uma outra sugestão ?
Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 749
Data de registro: 11 Jul 2005 02:46
Curtiu: 22 vezes
Mens.Curtidas: 62 vezes

Firebird

Mensagempor leandrolinauer » 10 Jul 2020 16:45

Boa tarde.
Estou usando o SQL Manager Lite
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 377
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Firebird

Mensagempor RamonXHB » 10 Jul 2020 16:54

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
Avatar de usuário

RamonXHB
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 152
Data de registro: 03 Mar 2007 14:55
Curtiu: 10 vezes
Mens.Curtidas: 3 vezes

Firebird

Mensagempor leandrolinauer » 13 Jul 2020 08:12

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)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 377
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Firebird

Mensagempor Vlademiro » 13 Jul 2020 08:25

Eu só uso para testes também.
Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 749
Data de registro: 11 Jul 2005 02:46
Curtiu: 22 vezes
Mens.Curtidas: 62 vezes

Firebird

Mensagempor RamonXHB » 13 Jul 2020 10:10

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
Avatar de usuário

RamonXHB
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 152
Data de registro: 03 Mar 2007 14:55
Curtiu: 10 vezes
Mens.Curtidas: 3 vezes

Firebird

Mensagempor leandrolinauer » 13 Jul 2020 11:48

"
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)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 377
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Anterior Próximo



Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro