Page 1 of 2

FiveWeb y Dolphin juntos!

Posted: Wed Apr 24, 2013 9:35 pm
by Antonio Linares
Aqui teneis un primer ejemplo de uso conjunto de FiveWeb y Dolphin. Probado en Windows con xampp y en Linux (DreamHost):

http://www.fivetechsoft.net/cgi-bin/myapp1 (Linux en Dreamhost hosting service)

myapp1.prg

Code: Select all

#include "FiveWeb.ch"

//----------------------------------------------------------------------------//

function Main( cParams )

   local aParams := If( cParams != nil, hb_aTokens( cParams, ":" ), nil )
   local cParam := If( aParams != nil, aParams[ 1 ], "" )

   SET BACKIMAGE TO "http://fiveweb.googlecode.com/svn/trunk/images/citynight.jpg"
   
   SetTheme( "flick" )
   
   do case
      case cParam == "login"
           CheckLogin( aParams )

      case cParam == "users"
           Users()

      case cParam == "clients"
           Clients()

      otherwise
           Login()

  endcase

return nil

//----------------------------------------------------------------------------//

function Login()

   local oDlg, oImg
   local oGetName, cUserName := Space( 30 )
   local oGetPass, cPassword := ""

   DEFINE DIALOG oDlg TITLE "Login" SIZE 650, 400

   @  30,  30 IMAGE oImg FILENAME "../images/user.png" SIZE 120, 120 OF oDlg

   @  69, 190 SAY "User" SIZE 110, 40 OF oDlg

   @ 124, 190 SAY "Password" SIZE 110, 40 OF oDlg

   @  66, 315 GET oGetName VAR cUserName SIZE 300, 40 OF oDlg

   @ 124, 315 GET oGetPass VAR cPassword SIZE 300, 40 OF oDlg PASSWORD

   @ 265, 189 BUTTON "Ok" SIZE 110, 40 OF oDlg ;
      ACTION ( "document.location = '" + AppName() + "?login:' + " ) + ;
             'oGetName.value + ":" + oGetPass.value'

   @ 265, 335 BUTTON "Cancel" SIZE 110, 40 OF oDlg ;
      ACTION ( oDlg:End() ) // Executed in the server in advance

   ACTIVATE DIALOG oDlg NOWAIT

return nil

//----------------------------------------------------------------------------//

function CheckLogin( aParams )

   // ? aParams[ 2 ]  username
   // ? aParams[ 3 ]  password 
   
   BuildMenu()

return nil

//----------------------------------------------------------------------------//

function BuildMenu()

   local oMenu
   
   MENU oMenu
      MENUITEM "About"
      MENU
         MENUITEM "This app..." ;
            ACTION MsgAbout( "My FiveWeb app", "(c) FiveTech Software" )
      ENDMENU
      
      MENUITEM "Files"
      MENU
         MENUITEM "Users" ;
            ACTION ( 'document.location = "' + AppName() + '?users"' ) 
            
         MENUITEM "Clients" ;
            ACTION ( 'document.location = "' + AppName() + '?clients"' ) 
      ENDMENU
      
      MENUITEM "Operations"
      MENUITEM "Help"
   ENDMENU
   
return oMenu

//----------------------------------------------------------------------------//

function Users()

   local oDlg, oServer, oBrw
   
   BuildMenu()
   
   oServer = TDolphinSrv():New( "mysql.fivetechsoft.net", "fiveweb", "fiveweb" )

   if oServer:hMySQL == nil
      MsgInfo( "can't connect to the database" )
      return nil
   endif
         
   oServer:SelectDB( "fiveweb" )
   
   DEFINE DIALOG oDlg TITLE "Users" SIZE 1000, 600
   
   @ 10, 10 BROWSE oBrw SIZE 900, 100 OF oDlg ;
      ARRAY oServer:Query( "SELECT * FROM users LIMIT 0, 30" )
   
   ACTIVATE DIALOG oDlg NOWAIT
   
   oServer:End()
   
return nil   

//----------------------------------------------------------------------------//

function Clients()

   local oDlg, oServer, oBrw
   
   BuildMenu()
   
   oServer = TDolphinSrv():New( "mysql.fivetechsoft.net", "fiveweb", "fiveweb" )

   if oServer:hMySQL == nil
      MsgInfo( "can't connect to the database" )
      return nil
   endif
         
   oServer:SelectDB( "fiveweb" )
   
   DEFINE DIALOG oDlg TITLE "Clients" SIZE 1200, 650
   
   @ 5, 2 BROWSE oBrw SIZE 1150, 100 OF oDlg ;
      ARRAY oServer:Query( "SELECT * FROM clients LIMIT 0, 30" )
   
   ACTIVATE DIALOG oDlg NOWAIT
   
   oServer:End()
   
return nil   

//----------------------------------------------------------------------------//   

Re: FiveWeb y Dolphin juntos!

Posted: Thu Apr 25, 2013 3:43 pm
by benjiben143
que bonito

saludos

Re: FiveWeb y Dolphin juntos!

Posted: Thu Apr 25, 2013 3:52 pm
by sysctrl2
Excelente, Antonio,
! Felicidades !
Para los que estamos ya familiarizados con Dolphin, nos gusta esto,

Como seria un ABC en FIVEWEB Y DOLPHIN?

Saludos.

Re: FiveWeb y Dolphin juntos!

Posted: Thu Apr 25, 2013 6:13 pm
by hmpaquito
Antonio,

Impresionante !

Felicidades.

Re: FiveWeb y Dolphin juntos!

Posted: Thu Apr 25, 2013 6:14 pm
by Antonio Linares
Cesar,

En mi mensaje anterior está publicado el código fuente y se puede ver que es muy simple la creación del browse:

1. Se conecta al servidor mysql:
oServer = TDolphinSrv():New( "mysql.fivetechsoft.net", "fiveweb", "fiveweb" )

2, Se selecciona la base de datos a usar:
oServer:SelectDB( "fiveweb" ) // casualmente la he llamado igual que el usuario "fiveweb"

3. Se realiza un query y el resultado se le dá al browse. La tabla usada es "users":

Code: Select all

   @ 10, 10 BROWSE oBrw SIZE 900, 100 OF oDlg ;
      ARRAY oServer:Query( "SELECT * FROM users LIMIT 0, 30" )
4. Se desconecta de la base de datos:
oServer:End()

Hay que entender que FiveWeb funciona cliente/servidor, luego cada vez que el usuario pide algo, se prepara y se le envia. ya implementaremos "sesiones" para que el servidor sepa con que usuario esta conversando :-)

Re: FiveWeb y Dolphin juntos!

Posted: Thu Apr 25, 2013 8:33 pm
by sysctrl2
Antonio, si se ve muy sencillo, gracias,

podriamos hacer una combinacion, FIVEWEB,DOLPHIN,PHP ?

es decir en la pantalla donde muestra el catalogo de usuarios o clientes

colocar un BOTON que ejecute un codigo PHP y con este dar de alta, consultar o modificar un u registro

y posteriormente refreascar el Browse. Es una idea,,

veo muy interesante esta combinacion ya que se puede usar FIVEWEB para darle una apariencia bonita

a nuestra APP. ya que en esta parte es donde normalmente los desarrolladores nos quejamos mucho,

y usar DOLPHIN, PHP para el manejo de nuestros datos.


saludos..

Re: FiveWeb y Dolphin juntos!

Posted: Thu Apr 25, 2013 8:39 pm
by ruben Dario
Antonio,

Excelente

Felicitdades

Re: FiveWeb y Dolphin juntos!

Posted: Thu Apr 25, 2013 8:42 pm
by Antonio Linares
Cesar,

Al usar Dolphin la idea es que no nos haga falta usar PHP y que todo el código de nuestra aplicación se implemente en nuestros PRGs.

Aún asi, FiveWeb permite usar PHP sin problemas. Aunque entendemos que muchos programadores lo que quieren es no tener que aprender otros lenguajes :-)

En el mundo web se pueden facilmente combinar datos que pueden proceder de orígenes distintos, y FiveWeb permite esa capacidad.

Re: FiveWeb y Dolphin juntos!

Posted: Thu Apr 25, 2013 9:03 pm
by Enrrique Vertiz
Antonio

Excelente !!!

De acuerdo contigo, lo ideal es que no sea necesario usar mas que FiveWeb, claro con Harbour y en este caso con TDolphin para la conexión MySQL, con eso debería bastar, nuevamente felicitaciones ...

Desde mi punto de vista, ya se pueden realizar las consultas, faltaría poder imprimirlas, directamente o a PDF y seria genial, espero que a eso se apunte a futuro ...

Re: FiveWeb y Dolphin juntos!

Posted: Thu Apr 25, 2013 10:25 pm
by sysctrl2
Deacuerdo Maestro,
ya vamos entendiendo un poco mas sobre las app.webs,
gracias.

Re: FiveWeb y Dolphin juntos!

Posted: Tue Apr 30, 2013 2:37 am
by cmsoft
Muy interesante realmente!!! Felicidades y gracias por el aporte!!
Antonio: Que versión de FW necesitamos para poder tener FiveWeb, o es un producto aparte?
Gracias!

Re: FiveWeb y Dolphin juntos!

Posted: Tue Apr 30, 2013 5:52 am
by Antonio Linares
Cmsoft,

FiveWeb es un producto aparte de FiveWin, aunque en su sintaxis se parecen mucho :-)

Re: FiveWeb y Dolphin juntos!

Posted: Tue Apr 30, 2013 1:01 pm
by Bayron
Probando en LocalHost, no logro conectarme a la base de datos y obtengo el siguiente error:

Code: Select all

FiveWeb error

Application 
=========== 
Path and name: C:\xampp\cgi-bin\myapp1.exe (32 bits) 
Time from start: 0 hours 0 mins 20 secs 
Error occurred at: 04/30/13, 06:53:53 
Error description: Error MYSQL/2013 
Lost connection to MySQL server at 'waiting for initial communication 
packet', system error: 0 

Stack Calls 
=========== 
Called from DOLPHIN_DEFERROR(2807) 
Called from TDOLPHINSRV:CHECKERROR(793) 
Called from TDOLPHINSRV:NEW(340) 
Called from USERS(109) 
Called from MAIN(19) 

Variables in use 
================ 
Procedure Type Value 
========================== 
DOLPHIN_DEFERROR 
Param 1: O Class: ERROR 
TDOLPHINSRV:CHECKERROR 
Param 1: O Class: TDOLPHINSRV 
Param 2: N 2013 
Param 3: L .F. 
Param 4: C "" 
Local 1: C "" 
Local 2: O Class: ERROR 
TDOLPHINSRV:NEW 
Local 1: N 2013 
Local 2: U nil 
Local 3: L .F. 
USERS 
Param 1: C "mysql.fivetechsoft.net" 
Param 2: C "fiveweb" 
Param 3: C "fiveweb" 
Local 1: N 3306 
Local 2: U nil 
Local 3: C "" 
Local 4: U nil 
Local 5: U nil 
Local 6: B {|| ... } 
MAIN 
Local 1: U nil 
Local 2: U nil 
Local 3: U nil 

Linked RDDs 
=========== 
DBF 
DBFFPT 
DBFBLOB 
DBFNTX 

DataBases in use 
================ 

Classes in use: 
=============== 
1 ERROR 
2 HBCLASS 
3 HBOBJECT 
4 TMENU 
5 TMENUITEM 
6 TDOLPHINSRV 

Memory Analysis 
=============== 
32 Static variables 

Dynamic memory consume: 
Actual Value: 0 bytes 
Highest Value: 0 bytes
Si coloco la dirección directamente en el browser, si logro entrar a phpMyAdmin...

Re: FiveWeb y Dolphin juntos!

Posted: Tue Apr 30, 2013 2:07 pm
by Antonio Linares
Bayron,

La base de datos está configurada para que solo se pueda acceder desde la aplicación que se ejecuta en dreamhost (el hosting en el que estamos publicando las demos de FiveWeb).

Consigues acceder a phpMyAdmin con la base de datos fiveweb ?

Re: FiveWeb y Dolphin juntos!

Posted: Tue Apr 30, 2013 6:47 pm
by Bayron
Desde el navegador conseguía hacerlo escribiendo:
mysql.fivetechsoft.net
y luego autenticandome, pero eso ya cambió....