Harbour

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

Moderador: Moderadores

Avatar do usuário
Antonio
Usuário Nível 3
Usuário Nível 3
Mensagens: 347
Registrado em: 14 Ago 2003 17:33
Localização: Sao Paulo - SP
Contato:

Harbour

Mensagem por Antonio »

Pessoal, no código abaixo em negrito:

Public CNN

Try
CNN:=createObject("ADODB.Connection")
CNN:Open("Driver={PostgreSQL UNICODE};" + "Server=localhost;" + "Port=5432;" + "Database=agendacontatos;" + "Uid=postgres;" + "Pwd=crisen2384;")
Catch e
Error Connection CNN
ExitProcess(0)
End

A instrução é do harbour ou de alguma LIB grafica?
Antonio Carlos
Harbour 3.2 (20180213)
Hwgui 2.20 3b | PostGresql 9.5 | ADO/ODBC
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Harbour

Mensagem por janio »

Do Harbour NAO é.

hbmk2 -find ExitProcess

No fonte windows.c da hwgui consta essa função

Código: Selecionar todos

HB_FUNC( EXITPROCESS )
{
   ExitProcess( 0 );
}
Deve ser da hwgui
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
Antonio
Usuário Nível 3
Usuário Nível 3
Mensagens: 347
Registrado em: 14 Ago 2003 17:33
Localização: Sao Paulo - SP
Contato:

Harbour

Mensagem por Antonio »

Obrigado Janio!

Sabem qual seria o comando que substitui esse ExitProcess( 0 ) ou qual sua finalidade? Deve ser para abandonar algum processo, talvez.
O que substituiria esse comando em harbour?

Grato
Antonio Carlos
Harbour 3.2 (20180213)
Hwgui 2.20 3b | PostGresql 9.5 | ADO/ODBC
Avatar do usuário
acelconsultoria
Usuário Nível 3
Usuário Nível 3
Mensagens: 231
Registrado em: 10 Jan 2006 17:05
Localização: Itápolis-SP

Harbour

Mensagem por acelconsultoria »

Olá, Antônio

Precisava identificar de qual linguagem você extraiu esse trecho de código. Tem um TRY / CATCH aí no meio, que inicialmente tinha apenas no xHarbour, e só algum tempo depois foi implementado no Harbour.

Se for levar em consideração como funciona o ExitProcess na API do Windows, seria para SAIR do processo, zerando todas as dependências dele (threads).
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Avatar do usuário
Antonio
Usuário Nível 3
Usuário Nível 3
Mensagens: 347
Registrado em: 14 Ago 2003 17:33
Localização: Sao Paulo - SP
Contato:

Harbour

Mensagem por Antonio »

Ola Maickon Sato

Eu acho que isso tem relação com um arquivo adodb.ch que roda pela net a principio nos exemplos na minigui.
Antonio Carlos
Harbour 3.2 (20180213)
Hwgui 2.20 3b | PostGresql 9.5 | ADO/ODBC
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Harbour

Mensagem por JoséQuintas »

Se não me engano vi isso na HMG.

Mas a pergunta melhor é: Pra que precisa disso?
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

Harbour

Mensagem por JoséQuintas »

HMG 3 e HMG Extended
exitprocess.png
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
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Harbour

Mensagem por asimoes »

Se for hwGui:

Hwg_ExitProcess()

Essa função mata a aplicação do processo windows, o mesmo caso para HMG - ExitProcess()
►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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Harbour

Mensagem por JoséQuintas »

é uma função da API do Windows.

https://msdn.microsoft.com/pt-br/librar ... s.85).aspx

Não é pra ser usada à vontade.
Calling ExitProcess in a DLL can lead to unexpected application or system errors. Be sure to call ExitProcess from a DLL only if you know which applications or system components will load the DLL and that it is safe to call ExitProcess in this context.
Exiting a process does not cause child processes to be terminated.
Exiting a process does not necessarily remove the process object from the operating system. A process object is deleted when the last handle to the process is closed.
Vamos pensar....

Colocar no fonte uma rotina de tratamento de erro...
Pra encerrar tudo no caso de erro, talvez nem mostrando mensagem de erro.
Isso não é tratamento, é extermínio mesmo.... rs
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
Antonio
Usuário Nível 3
Usuário Nível 3
Mensagens: 347
Registrado em: 14 Ago 2003 17:33
Localização: Sao Paulo - SP
Contato:

Harbour

Mensagem por Antonio »

Bom dia!!

Eu observei sobre o assunto dentro de um fragmento de codigo:

Código: Selecionar todos

/*
* Agenda de Contatos
* Humberto Fornazier - Março/2003
* hfornazier@brfree.com.br
*
* xHarbour Compiler Build 0.73.26 (SimpLex )
* Copyright 1999-2002, http://www.xharbour.org http://www.harbour-project.org/
*
* MINIGUI - Harbour Win32 GUI library - Release 60
* Copyright 2002 Roberto Lopez <roblez@ciudad.com.ar>
* http://www.geocities.com/harbour_minigui/
*
*/
/*
   Conversao para utilizacao de banco de dados,utilizando a tecnologia ADO
   ivanil Marcelino
   ivanilm@ig.com.br
   Minigui x Harbour
*/
/*
   Conversao para utilizacao de banco de dados Firebird ,utilizando a tecnologia ADO
   Ramon A. Körber Jr
   ramonkorberjr@yahoo.com.br
   Minigui Extend 1.59 x Harbour 1.1.0

   Necessidades minimas do firebird para rodar este programa

   Firebird 1.55 - Baixar de: http://prdownloads.sourceforge.net/firebird/Firebird-1.5.5.4926-3-Win32.exe
   Driver ODBC   - Baixar de: http://www.praktik.km.ua/downloads/Firebird_ODBC_2.0.0-Win32.exe

   Instalar os dois, não é necessário mais nenhuma configuração pois usa-se uma conexão dnsless.
   Copiar a dll fbclient.dll do diretório C:\Arquivos de programas\Firebird\Firebird_1_5\bin para a pasta raiz do sistema

   O Arquivo Ado210.chm é um Help dos comandos do ADODB

   Este programa poderá usar qualquer banco de dados, apenas trocando a string de conexão ao banco, não
   é específico só para o Firebird
*/

#Include "minigui.ch"
#Include "winprint.ch"
#Include "ADODB.CH"

#define BLUE { 0, 0, 128 }

Function Main()
   Local i := 0

   ****Criar a Conexao

   Public CNN

   Try
       CNN:=CreateObject("ADODB.Connection")
       CNN:Open("DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME=.\agenda.fdb;CHARSET=WIN1252;DIALECT=3;CLIENT=fbclient.dll")
     Catch e
       Error Connection CNN
       ExitProcess(0)
    End

    ****

   SET CENTURY ON

   Private lNovo := .F.

   DEFINE WINDOW Form_Principal       ;
        AT 0,0                        ;
        WIDTH 450                     ;
        HEIGHT 470                    ;
        TITLE "Agenda de Contatos"    ;
        MAIN                          ;
        ICON "AGENDA"                 ;
        NOMAXIMIZE                    ;
        NOSIZE                        ;
        ON RELEASE Finaliza_Sistema() ;
        BACKCOLOR BLUE
...

Eu gostaria de saber o que é o ExitProcess() e se poderia ser substituido por algum comando harbour para tentar utilizar banco de dados em modo console com o uso do ADO.

Ja sei que trata-se de algo relacionado com a API do Windows.
Parece que a logica que implementa esse metodo tambem esta equivocada.

Eu compilei o harbour 3.4 e la é possivel trabalhar com a tela fullscreen.
Pretendo como disse, trabalhar com banco de dados em modo console.
A intenção ao final é tentar utilizar a visual lib em tela cheia, acessando banco de dados.

Obrigado
Antonio Carlos
Harbour 3.2 (20180213)
Hwgui 2.20 3b | PostGresql 9.5 | ADO/ODBC
Avatar do usuário
acelconsultoria
Usuário Nível 3
Usuário Nível 3
Mensagens: 231
Registrado em: 10 Jan 2006 17:05
Localização: Itápolis-SP

Harbour

Mensagem por acelconsultoria »

Então esse ExitProcess() é da MiniGUI com xHarbour.

Parece que o programa aborta todos os processos caso haja uma falha na conexão. A MiniGUI é uma lib gráfica e pelo que vejo o pessoal já baixa ela com uma outra versão do Harbour junto, apropriado pra trabalhar com essa lib.

Já que você quer continuar em console e com o Harbour 3.4, eu tentaria reescrever esse código aí, colocando uma mensagem de erro e saindo do sistema caso haja problemas de conexão com o BD.

Mas também nada impede que você utilize a MiniGUI, em modo console. Aí você já aproveita o mesmo código. Você pode muito bem utilizar a HMG, vem com o Harbour 3.2 e dá pra trabalhar em modo console também.
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Avatar do usuário
Antonio
Usuário Nível 3
Usuário Nível 3
Mensagens: 347
Registrado em: 14 Ago 2003 17:33
Localização: Sao Paulo - SP
Contato:

Harbour

Mensagem por Antonio »

Obrigado Maickon Sato
Antonio Carlos
Harbour 3.2 (20180213)
Hwgui 2.20 3b | PostGresql 9.5 | ADO/ODBC
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Harbour

Mensagem por JoséQuintas »

Não sei porque insistir nisso.
Deixando a "miniguada" de lado...

Código: Selecionar todos

lOk := .F.
BEGIN SEQUENCE WITH __BreakBlock()
   cn := win_OleCreateObject( "ADODB.Connection" )
   cn:Open( "Driver={PostgreSQL UNICODE};" + "Server=localhost;" + "Port=5432;" + "Database=agendacontatos;" + "Uid=postgres;" + "Pwd=crisen2384;" )
   lOk := .T.
ENDSEQUENCE
IF ! lOk
   ? "Não foi possível conectar"
ENDIF
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
Antonio
Usuário Nível 3
Usuário Nível 3
Mensagens: 347
Registrado em: 14 Ago 2003 17:33
Localização: Sao Paulo - SP
Contato:

Harbour

Mensagem por Antonio »

Obrigado José Quintas!

A toda regra cabe uma exceção.
Neste caso, como o sistema é para atender a uma necessidade minha e eu tenho preferencia pelo modo console por inúmeros motivos, então estou optando pelo modo console.

A minigui é legal? É, e tanto é que posso optar por usar ela hibrida embora com o sistema em console e aderir totalmente a mesma no decorrer dos trabalhos.

Obrigado.
Antonio Carlos
Harbour 3.2 (20180213)
Hwgui 2.20 3b | PostGresql 9.5 | ADO/ODBC
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Harbour

Mensagem por JoséQuintas »

posso optar por usar ela hibrida embora com o sistema em console e aderir totalmente a mesma no decorrer dos trabalhos
Também pensava assim, até colocar em prática.
Ficar reiniciando o computador pro Windows voltar ao normal é muito chato.

Mas, talvez dependa da forma de uso.
Qualquer novidade, avise.
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/
Responder