Browse pra ADO

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Browse pra ADO

Mensagem por Itamar M. Lins Jr. »

Ola!
O usuário apenas quer uma solução para o problema dele, mas tá difícil dele obter com tanta discussão.
Houve uma mistura neste tópico.
Vc respondeu agora rs:filter etc..

E ele perguntou para tbrowse, colocaram hwgui(não tem tbrowse) pelo meio... Mas no começo a postagem era outra.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Browse pra ADO

Mensagem por Itamar M. Lins Jr. »

Ola!
E o pessoal do XHarbour? Não tem SQLMIX, então ADO interessa.
Quem usa xHarbour e quer usar SQLMIX, deverá mudar(migrar) para o Harbour, igual estão fazendo até o "cidadão" lá do site que usava xHarbour(Mel Smith) já mudou para Harbour. Inclusive recompilou todo o CGI que era no xHarbour... Mudou bem pouca coisa...
Quem usa xHarbour e SQLRDD ai não tem nem ADO nem SQLMIX, nem Harbour que dê jeito.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

Browse pra ADO

Mensagem por MSDN »

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Browse pra ADO

Mensagem por asimoes »

Itamar M. Lins Jr. escreveu:Vai distorcer assim lá longe...
Perguntas:
Você já tem alguma aplicação usando SGBD ? queria saber qual é o peixe que você tá querendo vender ainda não entendi direito.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Browse pra ADO

Mensagem por Itamar M. Lins Jr. »

Ola!
Você já tem alguma aplicação usando SGBD ? queria saber qual é o peixe que você tá querendo vender ainda não entendi direito.
É pq vc não lê, nada do que escrevo, sempre com esse desprezo...

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Browse pra ADO

Mensagem por Itamar M. Lins Jr. »

Ola!
Já que o assunto é bom, pq não pensar tbem em Cloud !
Tem muita gente usando, até fiz umas aulas... Youtube... Depois de 1 ano tem que pagar 300 Dólares no pacote mínimo.
A Google te da 300 dolares de crédito para usar(testar) por 1 ano. Vc escolhe seu CPU virtual e qual SO vai colocar nele. Dai é só usar.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

Browse pra ADO

Mensagem por MSDN »

Sim, claro que depois tem que pagar, eles fazem isso para chamar cliente, mas é uma boa oportunidade para fazer teste !!
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Browse pra ADO

Mensagem por Itamar M. Lins Jr. »

Ola!
Sim, claro que depois tem que pagar, eles fazem isso para chamar cliente, mas é uma boa oportunidade para fazer teste !!
Eu achei super rápido, tudo de bom, tem backup etc...
O problema é começar a tirar do CLIENTE o processamento, e ele passar a pagar esses serviços, através de nossa intermediação.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Browse pra ADO

Mensagem por JoséQuintas »

Não faço a menor idéia do uso da HWGUI.
Minha tentativa foi esta, no chute.
Com certeza não funcionou.

Código: Selecionar todos

FUNCTION DlgGet

   LOCAL oModDlg, oBrw1, cn, Rs

   INIT DIALOG oModDlg TITLE "About" AT 190,10 SIZE 600,320

   @ 20,16 BROWSE oBrw1 DATABASE SIZE 500,220 ;
      STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL

   cn := ConexaoMySql()
   cn:Open()
   Rs := cn:Execute( "SELECT * FROM JPCIDADE" )
   oBrw1:AddColumn( HColumn():New( "um",{|v,o|Rs:Fields(1):Value},"C",30,0,.F.,DT_CENTER ) )
   oBrw1:AddColumn( HColumn():New( "dois",{|v,o|Rs:Fields(2):Value},"C",30,0,.F.,DT_CENTER ) )
   oBrw1:AddColumn( HColumn():New( "tres",{|v,o|Rs:FIelds(3):Value},"C",30,0,.F.,DT_CENTER ) )
   oBrw1:aColumns[2]:footing := "Age"
   oBrw1:aColumns[2]:lResizable := .F.
   oBrw1:bGoTop := { || rs:MoveFirst() }
   oBrw1:bGoBot := { || rs:MoveLast() }
   oBrw1:bSkip  := { | n | rs:Move( n ) }
   oBrw1:bEof   := { || rs:Eof() }
   oBrw1:bBof   := { || rs:Bof() }
   oBrw1:bGoto  := { | n | rs:Move( n ) }

   @ 210,260 OWNERBUTTON ON CLICK {|| hwg_EndDialog()} ;
      SIZE 180,36 FLAT                                ;
      TEXT "Close" COLOR hwg_ColorC2N("0000FF")

   ACTIVATE DIALOG oModDlg
   Rs:Close()
   cn:Close()

   RETURN NIL
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Browse pra ADO

Mensagem por JoséQuintas »

Faltou a conexão:

Código: Selecionar todos

FUNCTION ConexaoMySql()

   LOCAL oConexao := win_OleCreateObject( "ADODB.Connection" )
   LOCAL cPath := hb_cwd()

   oConexao:ConnectionString := "Provider=Advantage OLE DB Provider;" + ;
      "Mode=Share Deny None;" + ;
      "Show Deleted Records in DBF Tables with Advantage=False;" + ;
       "Data Source=" + cPath + ";Advantage Server Type=ADS_Local_Server;" + ;
       "TableType=ADS_CDX;Security Mode=ADS_IGNORERIGHTS;" + ;
       "Lock Mode=Compatible;" + ;
       "Use NULL values in DBF Tables with Advantage=True;" + ;
       "Exclusive=No;Deleted=No;"
   oConexao:CursorLocation := 3
   oConexao:CommandTimeOut := 20

   RETURN oConexao
Me limitei a isso.
Detesto LIB gráfica, porque tem que ficar corrigindo tudo que é arquivo.
Por isso deixando pra mexer depois do MySQL.
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/
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

Browse pra ADO

Mensagem por MSDN »

A grosso modo o problema não é a API do Windows que é utilizada pela HwGUI, MiniGUI, Delphi, etc, senão ninguém usava (o mundo todo), o ponto central é aceitar que programar um software só com caracteres na interface e um software com elementos gráficos na interface não muda o conceito que os dois são um "software", só que o software A é um carro que usa carburador, e o software B é um carro que usa injeção direta de combustível, tem turbo, start-stop, etc. Então, não precisa corrigir nada, só aceitar que é diferente !!
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Browse pra ADO

Mensagem por JoséQuintas »

MSDN escreveu: Então, não precisa corrigir nada, só aceitar que é diferente !!
Não é isso que comentam sobre HWGUI, que inclusive até a semana passada nem sequer compilava.
Comparar com Delphi... aí exagerou.
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Browse pra ADO

Mensagem por JoséQuintas »

Mas ok, não tem a ver com GUI ou não GUI.
HWGUI é limitada.
Pra ter acesso aos codeblocks, só definindo DATABASE, mas isso foi criado exclusivamente pra DBF.
Em HWGUI só há duas opções: DBF ou ARRAY
Removi HWGUI da minha lista de opções, só servia pro meu sistema velho em DBF.
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/
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

Browse pra ADO

Mensagem por MSDN »

A HwGUI na minha visão tem 4 coisas muito importantes :
1 - Usa os termos SAY e GET, além das validações e pictures associados, o que ajuda muito quem vem do Clipper, e o Browse é muito parecido com o TBrowse
2 - Ela é bem construída internamente, é muito leve e enxuta, e isso é bom !
3 - Compila e executa nos 2 maiores sistemas operacionais do mundo, Windows e Linux, isso é um grande diferencial !
4 - Tem o Designer, não é maravilhoso, mas se for comparar ele com a "IDE" (que não é IDE) da MiniGUI, dá um banho !
Porém, o que eu acho que falta pra ela ficar 100% é a parte dos exemplos, tem muito pouco, não mostra realmente o que se pode fazer com ela, dai desanima quem deseja adotá-la, e falo isso comparando com a MiniGUI Extended que eu uso, onde tem toneladas de exemplos, até o cego Jeremias consegue se achar !
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

Browse pra ADO

Mensagem por Fernando queiroz »

QUINTAS segue uma ideia de como funciona na HWGUI achei super fácil

Código: Selecionar todos

	cQuery := "SELECT ENTRADA_UFORNEC, ";
				   + "ENTRADA_c_xNome, ";
				   + "ENTRADA_b_serie, ";
				   + "ENTRADA_b_nNF, ";
				   + "ENTRADA_b_dhEmi, ";
				   + "ENTRADA_DATMOV, ";
				   + "ENTRADA_w_vNF, ";
				   + "ENTRADA_ST, ";
				   + "ENTRADA_b_natOp, ";
				   + "ENTRADA_a_Id, ";
				   + "ENTRADA_QUEM_BLOQ, ";
				   + "IF(ENTRADA_TIPOENTR=1,'DEPOSITO','LOJA') AS ENTRADA_TIPOENTR, ";
				   + "ENTRADA_ID ";
				   + "from ENTRADA ";
				   + cAlvo_Consulta

	oQuery := oServer:Execute(cQuery)

	DO WHILE ! oQuery:Eof()
		aAdd( aResult, {oQuery:Fields( "ENTRADA_UFORNEC" ):Value,;
						oQuery:Fields( "ENTRADA_c_xNome" ):Value,;
						oQuery:Fields( "ENTRADA_b_serie" ):Value,;
						oQuery:Fields( "ENTRADA_b_nNF" ):Value,;
						oQuery:Fields( "ENTRADA_b_dhEmi" ):Value,;
						oQuery:Fields( "ENTRADA_DATMOV" ):Value,;
						oQuery:Fields( "ENTRADA_w_vNF" ):Value,;
						oQuery:Fields( "ENTRADA_ST" ):Value,;
						oQuery:Fields( "ENTRADA_b_natOp" ):Value,;
						oQuery:Fields( "ENTRADA_a_Id" ):Value,;
						oQuery:Fields( "ENTRADA_QUEM_BLOQ" ):Value,;
						oQuery:Fields( "ENTRADA_TIPOENTR" ):Value,;
						oQuery:Fields( "ENTRADA_ID" ):Value} ) 

		oQuery:MoveNext()
	ENDDO
apos pegar os dados da SGDB é so usar o BROWSE assim

Código: Selecionar todos

	@ 4,70 BROWSE oBrowse1 ARRAY OF oDlg SIZE 1000,497 STYLE WS_BORDER + WS_VSCROLL +WS_HSCROLL ;
			ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS ;
			ON CLICK {|| oBrowse1_onClick( oServer, oDlg:oBrowse1:aArray[ oDlg:oBrowse1:nCurrent, 10] ), oBrowse1:aArray := CARREGA_ENTRADAS( oServer, "ORDER BY ENTRADA_ID DESC" ), obrowse1:Refresh()  } ;
			ON KEYDOWN {|oBrowse1,nKeyPress| oBrowse1_onKeyDown( oBrowse1,nKeyPress, oDlg, oServer ) };
			ON POSCHANGE {||IF(oDlg:oBrowse1:aArray[ oDlg:oBrowse1:nCurrent, 8] = 1,;
							(oToolbar1:oToolbutton4:DISABLE( ),oToolbar1:oToolbutton5:DISABLE( ),oToolbar1:oToolbutton7:ENABLE( ),oToolbar1:oToolbutton9:ENABLE( ))   ,;
							(oToolbar1:oToolbutton4:ENABLE( ),oToolbar1:oToolbutton5:ENABLE( ),oToolbar1:oToolbutton7:DISABLE( ),oToolbar1:oToolbutton9:DISABLE( ))  ) }

		oBrowse1:oStyleHead := HStyle():New( { 0xffffff, 0xbbbbbb }, 1,, 0.4, 16759929 )
		oBrowse1:oFont := HFont():Add( '',0,-15,700,,,)	
		oBrowse1:freeze := 2
		oBrowse1:aArray := CARREGA_ENTRADAS( oServer, "ORDER BY ENTRADA_ID DESC" ) 

		oBrowse1:AddColumn( HColumn():New('CÓDIGO', hwg_ColumnArBlock() ,'C',9, 0 ,.F.,1,2,,,,,,;
					{|| oBrowse1:aArray := CARREGA_ENTRADAS( oServer, "ORDER BY ENTRADA_UFORNEC" ), MEMVAR->cAlvo_Consulta:="ENTRADA_UFORNEC",obrowse1:Refresh(), hwg_WriteStatus( oDlg,3,"Ordem: CÓDIGO") } ,,,,))
					
		oBrowse1:AddColumn( HColumn():New('NOME FORNECEDOR', hwg_ColumnArBlock() ,'C',60, 0 ,.F.,1,,,,,,,;
					{|| oBrowse1:aArray := CARREGA_ENTRADAS( oServer, "ORDER BY ENTRADA_C_XNOME" ), MEMVAR->cAlvo_Consulta:="ENTRADA_C_XNOME",obrowse1:Refresh(), hwg_WriteStatus( oDlg,3,"Ordem: NOME FORNECEDOR") } ,,,,))

		oBrowse1:AddColumn( HColumn():New('Serie', hwg_ColumnArBlock() ,'C',5, 0 ,.F.,1,2,'999',,,,,,,,,))					
		oBrowse1:AddColumn( HColumn():New('DANFE', hwg_ColumnArBlock() ,'C',11, 0 ,.F.,1,2,,,,,,;
					{|| oBrowse1:aArray := CARREGA_ENTRADAS( oServer, "ORDER BY ENTRADA_b_nNF" ), MEMVAR->cAlvo_Consulta:="ENTRADA_b_nNF",obrowse1:Refresh(), hwg_WriteStatus( oDlg,3,"Ordem: DANFE") } ,,,,))
		
		oBrowse1:AddColumn( HColumn():New('Emissão', hwg_ColumnArBlock() ,'D',11, 0 ,.F.,1,2,'99-99-9999',,,,,,,,,))
					
		oBrowse1:AddColumn( HColumn():New('MOVIMENTO', hwg_ColumnArBlock() ,'D',14, 0 ,.F.,1,2,'99-99-9999',,,,,;
					{|| oBrowse1:aArray := CARREGA_ENTRADAS( oServer, "ORDER BY ENTRADA_DATMOV" ), MEMVAR->cAlvo_Consulta:="ENTRADA_DATMOV",obrowse1:Refresh(), hwg_WriteStatus( oDlg,3,"Ordem: MOVIMENTO") } ,,,,))
					
		oBrowse1:AddColumn( HColumn():New('Total da Nota', hwg_ColumnArBlock() ,'N',15, 2 ,.F.,1,2,'@E 99,999,999,999.99',,,,,,,,,))	
		oBrowse1:AddColumn( HColumn():New('ST', hwg_ColumnArBlock() ,'U',5, 0 ,.F.,0,,,,,,,,,,,))	
		oBrowse1:AddColumn( HColumn():New('Natureza Operação', hwg_ColumnArBlock(),'C',55, 0 ,.F.,0,,,,,,,,,,,))
		oBrowse1:AddColumn( HColumn():New('Chave Acesso', hwg_ColumnArBlock(),'C',55, 0 ,.F.,0,,,,,,,,,,,))
		oBrowse1:AddColumn( HColumn():New('OPERADOR/COMPUTADOR/DATA/HORA', hwg_ColumnArBlock(),'C',50, 0 ,.F.,0,,,,,,,,,,,))		
		oBrowse1:AddColumn( HColumn():New('ENTRADA', hwg_ColumnArBlock(),'C',12, 0 ,.F.,0,,,,,,,,,,,))
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Responder