elitenet Posted October 18, 2012 Report Share Posted October 18, 2012 Caros Amigos Preciso de uma classe que eu consiga conectar a Firebird somente para ler varias tabelas. Ja tentei com os exemplos encontrados aqui no forum, o Todbc conecta mas da erro na tdbodbcdirect. Com adordd não consegui achar os .ch para compilar junto. Muriaé-MG FWH 2.6/XHARBOUR/C/C++/JAVA/DELPHI/MYSQL/FIREBIRD Quote Link to comment Share on other sites More sharing options...
elitenet Posted October 18, 2012 Author Report Share Posted October 18, 2012 Caros Amigos Preciso de uma classe que eu consiga conectar a Firebird somente para ler varias tabelas. Ja tentei com os exemplos encontrados aqui no forum, o Todbc conecta mas da erro na tdbodbcdirect. Com adordd não consegui achar os .ch para compilar junto. Muriaé-MG FWH 2.6/XHARBOUR/C/C++/JAVA/DELPHI/MYSQL/FIREBIRD Quote Link to comment Share on other sites More sharing options...
Alexandre Bassanezi Posted October 18, 2012 Report Share Posted October 18, 2012 elitenet, Veja o exemplo da TODBC que coloquei em dicas, é uma classe do [x]Harbour, não é a mesma do fivewin. Abs, Alexandre Quote Link to comment Share on other sites More sharing options...
elitenet Posted October 18, 2012 Author Report Share Posted October 18, 2012 Ale_bass Mas apartir de qual versão do xharbour? Pois quando executo aqui ele chama a do five! Muriaé-MG FWH 2.6/XHARBOUR/C/C++/JAVA/DELPHI/MYSQL/FIREBIRD Quote Link to comment Share on other sites More sharing options...
elitenet Posted October 19, 2012 Author Report Share Posted October 19, 2012 Alguém mais se habilita? Estou tentando com a rotina abaixo e da erro no todbcdirect. local aData := {} Local nFor,cCampo:=1,aNome:={} Local oLbx, cItem Local btnPrc, btnAdc, btnAlt, btnExc, btnImp, btnsai LOCAL cConStr := "HERMES;UID=sysdba;PWD=masterkey;DRIVER=Firebird/InterBase® driver" public oOdbc, oDbf, oDlg2 DEFAULT bPrc := { || RecPrc( oLbx ) },; bAdc := { || RecInc( oLbx ) },; bAlt := { || RecAlt( oLbx ) },; // C:\Progs\Exemplos_Five\MDB\mdb1 bExc := { || RecExc( oLbx ) },; bImp := { || RecImp( oLbx ) },; bSai := { || oDlg2:End() } SET 3D LOOK ON oOdbc := TOdbc():New( cConStr ) // "HERMES", "masterkey", "SYSDBA" ) // Conectando ao MDB // oODBC := TODBC():NEW( cConStr ) If !oOdbc:lSuccess oOdbc:ShowErrorList("Erro na conexão") oOdbc:End() return nil Endif oDbf := oOdbc:Query( 'SELECT * FROM BRINDE' ) //oDbf := TDbOdbcDirect():new( , oOdbc) if oOdbc:IsError() oOdbc:ShowErrorList() oOdbc:aErrors := {} oDbf:End() return nil endif id=code>id=code> Muriaé-MG FWH 2.6/XHARBOUR/C/C++/JAVA/DELPHI/MYSQL/FIREBIRD Quote Link to comment Share on other sites More sharing options...
Geraldo (gbsilva) Posted October 20, 2012 Report Share Posted October 20, 2012 Elitenet esse é um exemplo conectando ao access, voce chegou a testar a sua ODBC? #include "FiveWin.ch" #include "sql.ch" oOdbc := TOdbc():New("Amostra", " ", "") If !oOdbc:lSuccess oOdbc:ShowErrorList("ODBC session not successfully initialized, aborting...") oOdbc:End() return nil Else MsgWait("Aguarde conectando ao banco de dados!","Conexão",0.5) Endif id=code>id=code>No meu caso "Amostra" é o nome da ODBC e não tem usuário e senha se tiver tem que colocar como abaixo. oOdbc := TOdbc():New("odbc", "usuario", "senha") Sds, Geraldo B. Silva Fwh1202 Fev/2012, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib, Tdolphin e MySql. lucgera@terra.com.br São Paulo - SP Quote Link to comment Share on other sites More sharing options...
elitenet Posted October 22, 2012 Author Report Share Posted October 22, 2012 Ele conecta mas não consigo ler nenhuma tabela? Esta deste jeitinho ai!... Muriaé-MG FWH 2.6/XHARBOUR/C/C++/JAVA/DELPHI/MYSQL/FIREBIRD Quote Link to comment Share on other sites More sharing options...
wanderlei_rhemasys Posted October 25, 2012 Report Share Posted October 25, 2012 Olá, eu estou usando o exemplo do Rodrigo Moreno Rodrigo_moreno@yahoo.com * www - http://www.xharbour.org e faço conexão direta com o banco firebird, antes eu usava o SQLRDD, a classe está no contrib do xHarbour. Wanderlei Cardoso Analista / Programador (62)8171-3059 - Goiânia xHarbour 1.2.1 Fivewin 11.12 / FireBird Nativo Quote Link to comment Share on other sites More sharing options...
Geraldo (gbsilva) Posted October 25, 2012 Report Share Posted October 25, 2012 Elitenet abaixo uma rotina onde abro o access, jogo numa array e depois gero um relatório em excel. O Código não tá lá grande coisa, fiz apenas para uma necessidade especÃfica, mas funciona. Local lZona:=space(8),lSegmento:=space(50),lEmpresa:="" Local cSql,aLista:={},conta_terminal:=0,soma_avaliacao:=0,conta:=0 Local lTerminal := space(8),lAta:=space(8),aTeste:={},hHoras:=space(5),Dia:="",lNoturno:="" local lAcq:=space(10),nAnoBase:=0,nMesBase:=0 local nDiasOcorridos := 0,cRetorno:="" // 1 2 3 4 5 6 7 cSql := "SELECT a.ano,a.mes,b.id,a.acq,a.data_fisc,b.DATA_APROVACAO,right(b.DATA_APROVACAO,8) as Oito " if oCpo:nTipo = 1 //-> Serviços cSql += " FROM tab_dados_acq_ext a INNER JOIN CAD_INF_ADIC b ON a.acq = b.ACQ " elseif oCpo:nTipo = 2 //-> Imagem e Segurança cSql += " FROM tab_dados_acq_ext_img_seg a INNER JOIN CAD_INF_ADIC b ON a.acq = b.ACQ " elseif oCpo:nTipo = 3 //-> Obras Implantação cSql += " FROM tab_dados_acq_ext_obras_imp a INNER JOIN CAD_INF_ADIC b ON a.acq = b.ACQ " elseif oCpo:nTipo = 4 //-> Obras Manutenção cSql += " FROM tab_dados_acq_ext_obras_man a INNER JOIN CAD_INF_ADIC b ON a.acq = b.ACQ " endif IF !empty(oCpo:n_acq) lAcq := oCpo:n_acq cSql += " WHERE a.acq = '"+lAcq+"' AND (a.status=5 OR a.status=11 ) AND b.data_aprovacao IS NOT NULL" ELSEIF !empty(oCpo:ano_base) .AND. !empty(oCpo:mes_base) IF val(oCpo:ano_base) = 0 .AND. val(oCpo:mes_base) = 0 GbMsg("Favor Digitar ano e mês para gerar relatório!",,2) return(nil) ENDIF nAnoBase := oCpo:ano_base nMesBase := oCpo:mes_base cSql += " WHERE a.ano='"+nAnoBase+"' AND a.mes='"+nMesBase+"' AND (a.status=5 OR a.status=11 ) AND b.data_aprovacao IS NOT NULL" ELSEIF !empty(oCpo:data_inicio) IF empty(oCpo:data_fim) oCpo:data_fim := date() ENDIF cSql += " WHERE a.data_fisc >='"+GbDatag(oCpo:data_inicio)+"' AND a.data_fisc <='"+GbDatag(oCpo:data_fim)+"' AND (a.status=5 OR a.status=11 ) AND b.data_aprovacao IS NOT NULL" ELSE GbMsg("Seleção Inválida, verifique!",,2) return(nil) ENDIF cSql += " GROUP BY a.ano,a.mes,b.id,a.acq,a.data_fisc,b.DATA_APROVACAO " cSql += " ORDER BY a.acq ; " oDbf := TDbOdbcDirect():new( cSql,oOdbc) oDbf:Open() oDbf:Gotop() //-> Testa se há serviços aprovados no perÃodo if oDbf:RecCount() = 0 oDbf:End() GbMsg("Nenhuma Serviço/Obra foi aprovado no perÃodo selecionado!",,2) LimpaTela(oCad) GbFoco(oCad[2]) return(nil) endif While !oDbf:Eof() nDiasCorrido := DiasUteis(oDbf:FieldGet(5),oDbf:FieldGet(6)) if oCpo:nTipo <= 2 IF nDiasCorrido > 2 cRetorno := "Perdido" ELSE cRetorno := "Ok" ENDIF elseif oCpo:nTipo > 2 IF nDiasCorrido > 10 cRetorno := "Perdido" ELSE cRetorno := "Ok" ENDIF endif TrataHora(oDbf:FieldGet(7),@hHoras) DiaSemana(oDbf:FieldGet(6),@Dia) if val(left(hHoras,2)) > 18 lNoturno := "Noturno" else lNoturno := "Diurno" endif aAdd(aLista,{oDbf:FieldGet(3),oDbf:FieldGet(4),oDbf:FieldGet(5),oDbf:FieldGet(6),hHoras,; Dia,lNoturno,nDiasCorrido,cRetorno } ) hHoras := space(5) Dia := "" lNoturno := "" nDiasCorrido := 0 cRetorno := "" oDbf:Skip() End oDbf:End() RelatorioExcel(aLista) return(nil) id=code>id=code>Geraldo B. Silva Fwh1202 Fev/2012, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib, Tdolphin e MySql. lucgera@terra.com.br São Paulo - SP Quote Link to comment Share on other sites More sharing options...
elitenet Posted October 30, 2012 Author Report Share Posted October 30, 2012 Estou achando que o problema e a versao que estou usando que é aquela gratis. Acho que a todbcdirect dela ta com problema, ja tentei todos os exemplos e tudo da o mesmo erro que mencionei acima. Muriaé-MG FWH 2.6/XHARBOUR/C/C++/JAVA/DELPHI/MYSQL/FIREBIRD Quote Link to comment Share on other sites More sharing options...
lecojales Posted October 30, 2012 Report Share Posted October 30, 2012 Olá, boa noite. A sqlrdd, tem uma versão free, que você faz isso mais facilmente. www.xharbour.org. Leco Jales Five PPC Harbour 1.0.1 - 1999-2008 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.