xHarbour 1.2.3 e MySQL

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

leonardoServinn
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 12 Jan 2021 09:08
Localização: Eunápolis/BA

xHarbour 1.2.3 e MySQL

Mensagem por leonardoServinn »

Boa tarde pessoal,

Estou iniciando como desenvolvedor numa empresa que trabalha com o xHarbour 0.99 mais sqllib, e ainda com muitas funções utilizando comandos de DBF para manipular o MySQL. Estamos querendo atualizar o nosso ambiente, então gostaria de saber, atualmente com o xHarbour 1.2.3 que baixei do xharbour.org, quais opções eu tenho, pagas ou não, para conectar com o MySQL. Se possível com um pequeno exemplo.

Agradeço desde já
jelias
Usuário Nível 3
Usuário Nível 3
Mensagens: 260
Registrado em: 27 Ago 2008 11:32
Localização: Minas Gerais

xHarbour 1.2.3 e MySQL

Mensagem por jelias »

Amigo Leonardo,

Uma solução paga é o SQLRDD. https://www.xharbour.com/store/p34/sqlrdd.html

Todavia, acredito que a melhor solução, caso ambiente seja windows, seja o ADO.

https://pctoledo.org/forum/viewto ... 43&t=15019
https://pctoledo.org/forum/viewto ... ial+de+ado

Saudações,

Júlio.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Avatar do usuário
jairfab
Usuário Nível 3
Usuário Nível 3
Mensagens: 252
Registrado em: 21 Mai 2007 09:43
Localização: São Paulo, Região Leste - Suzano

xHarbour 1.2.3 e MySQL

Mensagem por jairfab »

Eu preferia utilizar xharbour 1.23 ou harbour 3.2 com fivewin + maridb ou mysql que vem nativo no fivewin

Agora tudo depende do sistema que voce estar fazendo as alterações, porem já que vai fazer alterações eu passaria para fivewin com banco de dados nativo ( mariadb ou mysql )! eu utilizava o sqlrdd e estou mudando tudo para mariadb nativo do fivewin.
este exemplo pode ser compilado com xharbour e também com harbour neste caso expecifico o banco de dado estar nas nuvens!

Código: Selecionar todos

function Main()

   local oCn, oRs , oDlg, oBrw

   FWNumFormat( "A", .t. )

   oCn       := FW_DemoDB(1) 
// Faz a conexão com o banco de dados nas nuvens mas você apontar para o ip desejado. 
// outra coisa pode embutir o sql no executável e assim dispensar a instalação do sql. 
// Pra usar basta copiar em uma pasta 

   aStates  := oCn:Execute( "SELECT CODE,NAME FROM states" )
   oRs        := oCn:RowSet( "SELECT ID,FIRST,CITY,SALARY FROM customer" )

   DEFINE DIALOG oDlg SIZE 500,600 PIXEL TRUEPIXEL      TITLE "Editar Registros "

   @ 70,20 XBROWSE oBrw SIZE -20,-20 PIXEL OF oDlg ;
      DATASOURCE oRs AUTOCOLS   COLSIZES -4, -20, -20    CELL LINES NOBORDER FOOTERS

   WITH OBJECT oBrw
      :Salary:nFooterType  := AGGR_SUM
      :MakeTotals()
      :CreateFromCode()
   END

   @ 20, 20 BTNBMP PROMPT "Adicionar"  SIZE 100,30 PIXEL FLAT OF oDlg     ACTION oRs:EditBaseRecord( nil, .t., { |oRec| MyEditDlg( oRec ) }, oBrw )

   @ 20,130 BTNBMP PROMPT "Alterar" SIZE 100,30 PIXEL FLAT OF oDlg     ACTION oRs:EditBaseRecord( nil, .f., { |oRec| MyEditDlg( oRec ) }, oBrw )

   ACTIVATE DIALOG oDlg CENTERED

return nil

static function MyEditDlg( oRec )

   local lNew     := ( oRec:RecNo == 0 )
   local oDlg, oFont

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-15
   DEFINE DIALOG oDlg SIZE 400,470 PIXEL TRUEPIXEL FONT oFont    TITLE If( lNew, "Adicionar ", "Alterar" ) + " RECORD"

   @ 030,020 SAY "ID :"          SIZE 80,20 PIXEL OF oDlg RIGHT
   @ 060,020 SAY "First"         SIZE 80,20 PIXEL OF oDlg RIGHT
   @ 090,020 SAY "Last"          SIZE 80,20 PIXEL OF oDlg RIGHT
   @ 120,020 SAY "Street"       SIZE 80,20 PIXEL OF oDlg RIGHT
   @ 150,020 SAY "City"          SIZE 80,20 PIXEL OF oDlg RIGHT
   @ 180,020 SAY "State"        SIZE 80,20 PIXEL OF oDlg RIGHT
   @ 210,020 SAY "Zip"           SIZE 80,20 PIXEL OF oDlg RIGHT
   @ 240,020 SAY "HireDate"   SIZE 80,20 PIXEL OF oDlg RIGHT
   @ 270,020 SAY "Married"     SIZE 80,20 PIXEL OF oDlg RIGHT
   @ 300,020 SAY "Age"           SIZE 80,20 PIXEL OF oDlg RIGHT
   @ 330,020 SAY "Salary"        SIZE 80,20 PIXEL OF oDlg RIGHT
   @ 360,020 SAY "Notes"         SIZE 80,20 PIXEL OF oDlg RIGHT

   @ 030,120 GET oRec:ID         SIZE 100,22 PIXEL OF oDlg READONLY RIGHT
   @ 060,120 GET oRec:First      SIZE 240,22 PIXEL OF oDlg VALID !Empty( oRec:First )
   @ 090,120 GET oRec:Last       SIZE 240,22 PIXEL OF oDlg VALID !Empty( oRec:Last )
   @ 120,120 GET oRec:Street     SIZE 240,22 PIXEL OF oDlg VALID !Empty( oRec:Street )
   @ 150,120 GET oRec:City       SIZE 240,22 PIXEL OF oDlg VALID !Empty( oRec:City )
   @ 180,120 DBCOMBO oRec:State  SIZE 240,300 PIXEL OF oDlg   ALIAS aStates ITEMFIELD "1" LISTFIELD "2"
   @ 210,120 GET oRec:Zip        SIZE 240,22 PIXEL OF oDlg VALID !Empty( oRec:Zip )
   @ 240,120 GET oRec:HireDate   SIZE 240,22 PIXEL OF oDlg VALID !Empty( oRec:HireDate )
   @ 270,120 CHECKBOX oRec:Married PROMPT "" SIZE 22,22 PIXEL OF oDlg
   @ 300,120 GET oRec:Age        SIZE 240,22 PIXEL OF oDlg PICTURE "99" RIGHT VALID ( oRec:Age >= 20 )
   @ 330,120 GET oRec:Salary     SIZE 240,22 PIXEL OF oDlg PICTURE "999,999.99" RIGHT VALID ( oRec:Salary > 0 )
   @ 360,120 GET oRec:Notes      SIZE 240,22 PIXEL OF oDlg

   @ 420,020 BTNBMP PROMPT "Salvar"   SIZE 150,30 PIXEL FLAT OF oDlg ACTION ( If( oRec:Modified(), oRec:Save(), nil ), oDlg:End() )
   @ 420,240 BTNBMP PROMPT "Cancelar" SIZE 150,30 PIXEL FLAT OF oDlg ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED     ON PAINT oDlg:Box( 15, 10, 395, 390 )

return nil
Delpji 7, harbour 3.2, xharbour 1.2.3, Bcc7, Minigw, Minigui 19.11, hwgui 2.20, FiveWin 19.05 Gtwvw, Gtwvg, C# VS 2017
Responder