Jump to content
Fivewin Brasil

OT: EXE rodando pelo navegador?


oribeiro

Recommended Posts

Oribeiro,

a fiveweb do Lailton e a wxweb se não me engano é isto do Vailton faz exatamente isto.

a fiveweb que não deve estar mais a venda eu uso a 3 anos e ainda funciona. Mas como dizem existe ferramentas melhores para fazer isto.

a vantagem é usar o padrão xbase.

Daniel Segura

Link to comment
Share on other sites

Abaixo um bat exemplo de compilação,

set path=c:\bcc582\bin;c:\cgi_web\harbour\bin;%path%

rem excluindo os arquivos compilados
del c:\cgi_web\FiveWeb\samples\login.exe
rem no site
del C:\inetpub\wwwroot\ciaweb\login.exe
rem compilando os arquivos e publicando o executável
hbmk2 win.hbm c:\cgi_web\FiveWeb\samples\login.prg -oC:\inetpub\wwwroot\ciaweb\login.exe > clip.log
rem abrindo o executável no navegador -> pode acessar pelo celular/tablet...
c:\progra~1\Mozill~1\firefox.exe http://localhost/ciaweb/login.exe
pause
Link to comment
Share on other sites

Amiguinhos,

Em primeiro lugar é necessário que o servidor web possua a característica de execução de CGI executáveis.

Por padrão os CGIs executados nos servidores web que conhecemos só podem ser ASP, PHP, Perl, ColdFusion e mais uns dois ou três, mas nenhum deles são executáveis.

Os executáveis feitos com Fivewin, ficam muito grandes e consomem demais o servidor, pois eles não ficam ativos e sim são executados, processados e terminados, pois o que vemos no browser é somente a resposta destes CGIs.

Os servidores Apache permitem de forma linda esta característica e você deverá colocar todo o seu website disponivel para acesso pela web, já que nenhum provedor irá permitir este tipo de ação.

Exemplo de um CGI:

#include "FiveWin.ch"
#include "common.ch"
#include "inkey.ch"

FUNCTION main(cIniFile)

   ************************************************
   * Required in every FiveWeb CGI...
   ************************************************
   CgiInit()

   ************************************************
   * Create a cgi object based on the passed file name...
   ************************************************
   IF cIniFile != Nil
      nHOut := cgiForm("mycgi.ini")             && create a cgi object
   else
      return 
   ENDIF

   ************************************************
   * Find the proper record..
   ************************************************
   use customer.dbf alias Customers NEW
   select Customers

   locate for upper(Customers->Name) = upper(aFieldArray[1, 2])

   putBeginHTML()
   putTitle("FiveWeb Field Update")
   putBeginBody()

   IF eof()
      ************************************************
      * Build a response error file...
      ************************************************
      //putHeader(Upper(trim(aFieldArray[1, 2])),1)
      putLine()
      putParagraph()
      putItalics("<B>Unable to find the information you requested!</B>")
      putParagraph()
   else
      ************************************************
      * Build a response success file...
      ************************************************
      putItalics("This record is ready to be updated:")
      putLine()
      putHeader(trim(Customers->name), 1)

      putBeginPreFormat()
      putBeginForm("POST", "rocha.htm")
      putEntryField("          Name:", "Name", trim(Customers->name), 32)
      PutLineBreak()
      putEntryField("       Address:", "Street", trim(Customers->street), 32)
      PutLineBreak()
      putEntryField("          City:", "City", trim(Customers->city), 32)
      PutLineBreak()
      putEntryField("         State:", "State_Prov", trim(Customers->state_prov), 2)
      PutLineBreak()
      putEntryField("      Zip Code:", "Zip_Postal", trim(Customers->zip_postal), 16)
      putEndPreFormat()
      putParagraph()
      putSubmitButton("Submit", "Submit this change")
      putResetButton("Clear", "Clear this form")
      putEndForm()
   ENDIF

   putLineBreak()
   put("For more information, contact: ")
   putAddrLink(wtEMailName, wtEMailAddress)
   putLineBreak()
   putLastUpdate()
   putEndBody()
   putEndHTML()

   ************************************************
   * Close the cgi session...
   ************************************************
   closeCGISession() && close the cgi session (optional - closed automaticaly unless trace is on)

RETURN(Void)

Perceba que neste tipo de código você programa o percurso do script, gera o executável e transfere ele para a pasta habilitada a correr CGIs pelo servidor web. O executável irá desenhar todo o código que será apresentado no browse e a interação deverá ser feita por FORM e seus eventos.

#INCLUDE "FiveWin.ch"
                     
FUNCTION main(cIniFile)
   local nStartTime := seconds()
   local nStopTime := 0

   CgiInit()

   ESTRU_DBF := {}
   AADD( ESTRU_DBF, { ALLTRIM("OBJETIVO  "), "C",  30, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("NOME      "), "C",  45, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("IDADE     "), "N",   2, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("NACIONALID"), "C",  20, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("ESTADOCIVI"), "C",  20, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("ENDERECO  "), "C",  45, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("BAIRRO    "), "C",  25, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("CEP       "), "C",   9, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("TELEFONE  "), "C",  14, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("FAX       "), "C",  14, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("GRAU      "), "C",  20, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("CURSOS    "), "M",  10, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("HISTORICO "), "M",  10, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("QUALIDADES"), "M",  10, 0 } )
   IF ! FILE("curiculo.DBF")
      DBCREATE( "curiculo", ESTRU_DBF )
   ENDIF

   IF cIniFile != Nil
      nHOut := cgiForm(cIniFile)
   else
      return Void
   ENDIF

   set date brit

   use curiculo alias curiculo NEW SHARED
   select curiculo
   m->operacao := upper(alltrim(CGIField("ACAO")))
   m->registro := val(CGIField("REGISTRO"))
   m->erro     := .t.
   if     m->operacao = 'NOVO'
          EditFile := memoread( "curiculo.HTM" )
          m->tam_memo := MLCOUNT( EditFile, 132 )
          EditFile := strtran(EditFile,"<!-- BLOCO DE MANUTENCAO -->",;
                              '<input type="hidden" name="ACAO"     value="INCLUSAO">')
          for i = 1 to m->tam_memo
              put(ALLTRIM(memoline( EditFile, 132 ,i))+CHR(13)+CHR(10)) 
          next
          closeCGISession()
          CLOSE DATA
          RETURN(Void)
   elseif m->operacao = 'INCLUSAO'
          append blank
          IF Rlock()
             curiculo_SV()
             COMMIT
             m->erro := .f.
          ENDIF
   elseif m->operacao = 'SALVAR'
          go m->registro // val(CGIField("RECNO()"))
          IF Rlock()
             curiculo_SV()
             COMMIT
             m->erro := .f.
          ENDIF
   elseif m->operacao = 'EXCLUSAO'
          go m->registro // val(CGIField("RECNO()"))
          IF Rlock()
             DELETE
             COMMIT
             m->erro := .f.
          ENDIF
   elseif m->operacao = 'ALTERAR'
          go m->registro // val(CGIField("RECNO()"))
          EditFile := memoread( "curiculo.HTM" )
          m->tam_memo := MLCOUNT( EditFile, 132 )
          EditFile := strtran(EditFile,"<!-- BLOCO DE MANUTENCAO -->",;
                              '<input type="hidden" name="ACAO"     value="SALVAR">'+;
                              '<input type="hidden" name="REGISTRO" value="'+STRZERO(m->registro,6)+'">')
          for i = 1 to len(ESTRU_DBF)
              EditFile := strtran(EditFile,'text" name="'+ESTRU_DBF[i,1]+'" size="',;
                                           'text" name="'+ESTRU_DBF[i,1]+'" value="'+ALLTRIM(REQUEST(&(ESTRU_DBF[i,1])))+'"')
              EditFile := strtran(EditFile,'<option selected value="">'+ESTRU_DBF[i,1]+'<',;
                                           '<option selected value="'+ALLTRIM(REQUEST(&(ESTRU_DBF[i,1])))+'">'+ALLTRIM(REQUEST(&(ESTRU_DBF[i,1])))+'<')
              EditFile := strtran(EditFile,'text" name="'+ESTRU_DBF[i,1]+'"></textarea>',;
                                           'text" name="'+ESTRU_DBF[i,1]+'">'+ALLTRIM(REQUEST(&(ESTRU_DBF[i,1])))+'</textarea>')
          next
          for i = 1 to m->tam_memo
              put(ALLTRIM(memoline( EditFile, 132 ,i))+CHR(13)+CHR(10)) 
          next
          m->erro := .f.
          closeCGISession()
          CLOSE DATA
          RETURN(Void)
   elseif m->operacao = 'LISTAGEM'
          IF RECCO() > 0
             put(ALLTRIM('<HTML>'))
             put(ALLTRIM('<HEAD>'))
             put(ALLTRIM('     <TITLE>Ok</TITLE>'))
             put(ALLTRIM('     <style>'))
             put(ALLTRIM('          A {color : Black; text-decoration : none; font-size : 11px; font-family : Arial;}'))
             put(ALLTRIM('          A:Hover  {color : Gray; text-decoration : none;}'))
             put(ALLTRIM('          .indic  {font-size : 10px; font-family : Arial; color:#FFFFFF}'))
             put(ALLTRIM('          .texto {font-size : 10px; font-family : Arial;}'))
             put(ALLTRIM('     </style>'))
             put(ALLTRIM('     <script src="include/open_esconde.js"    language="JavaScript"></script>'))
             put(ALLTRIM('     <script src="include/indices1.js"        language="Javascript"></script>'))
             put(ALLTRIM('     <script src="include/indices2.js"        language="Javascript"></script>'))
             put(ALLTRIM('     <script src="include/imgswp.js"          language="Javascript"></script>'))
             put(ALLTRIM('</HEAD>'))
             put(ALLTRIM('<BODY bgcolor="#FFFFFF"> '))
             put(' <center> ')
             put(' <table cellpadding=0 cellspacing=0 border=0 width=95% valign=top bgcolor="#ffffff"> ')
             put('        <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF"> ')
             put('               <tr bgcolor="#386898" align="center"> ')
             put('                   <td colspan="2"> ')
             put('                       <b> ')
             put('                          <font color="#FFFFFF" size="4" face="Arial, Helvetica, sans-serif"> ')
             put('                                <strong>Listagem Geral:</strong> ')
             put('                          </font> ')
             put('                          <font color="#FFFFFF" size="1" face="Arial, Helvetica, sans-serif">Contamos com sua atenção no preenchimento do formulário abaixo.</font>  ')
             put('                       </b> ')
             put('                   </td> ')
             put('                   <td colspan="2"> ')
             put('                          <a href="curiculo.DLL?ACAO=NOVO"> ')
             put('                             <img src="imagens/novo.gif" alt="Incluir novo registro" border="0"> ')
             put('                          </a> ')
             put('                           ')
             put('                          <a href="javascript:location.reload();"> ')
             put('                             <img src="imagens/icone_refresh.gif" alt="Recarregar a pagina" border="0"> ')
             put('                          </a> ')
             put('                           ')
             put('                          <a href="curiculo.exe?ACAO=PROCURAR"> ')
             put('                             <img src="imagens/procurar.gif" alt="Procurar registros" border="0"> ')
             put('                          </a> ')
             put('                   </td> ')
             put('               </tr> ')
             put('        </table> ')
             put('        <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF"> ')
             put('               <tr bgcolor="#A8C8E8" align="center"> ')
*************************************************
             put('                   <!-- ------------- INICIO DO BLOCO DE CABECALHOS -------- -->')
             put('                      <td align=left width=30% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Objetivo    </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=45% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Nome        </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=2% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Idade       </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=20% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Nacionalid  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=20% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Estadocivi  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=45% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Endereco    </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=25% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Bairro      </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=9% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Cep         </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=14% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Telefone    </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=14% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Fax         </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=20% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Grau        </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=10% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Cursos      </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=10% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Historico   </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=10% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Qualidades  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                   <!-- ------------- FINAL DO BLOCO DE CABECALHOS -------- -->')
*************************************************
             put('                   <td align=left width=16 valign="top"> ')
             put('                       <FONT FACE="Arial" size="1"><B>ST</b>  </FONT> ')
             put('                   </td> ')
             put('                   <td align=left width=50 valign="top"> ')
             put('                       <FONT FACE="Arial" size="1"><B>Manutencao</b>  </FONT> ')
             put('                   </td> ')
             put('               </tr> ')
             go top
             PU_LAR := 0
             DO WHILE .NOT. eof()
                put(' <TR width="100%" align="center" ')
                IF PU_LAR = 0
                   PU_LAR = 1
                   if deleted()
                      put('     bgcolor="RED" ')
                   else
                      put('     bgcolor="#E8F0FF" ')
                   endif
                else
                   PU_LAR = 0
                   if deleted()
                      put('     bgcolor="RED" ')
                   else
                   endif
                endif
                put(' > ')
*************************************************
                put('           <!-- ------------- INICIO DO BLOCO DE CAMPOS ------------ -->')
                put('           <td align=left width=30% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+curiculo->OBJETIVO  +'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=45% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+curiculo->NOME      +'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=2% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+STR(curiculo->IDADE     ,  2,  0)+'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=20% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+curiculo->NACIONALID+'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=20% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+curiculo->ESTADOCIVI+'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=45% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+curiculo->ENDERECO  +'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=25% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+curiculo->BAIRRO    +'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=9% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+curiculo->CEP       +'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=14% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+curiculo->TELEFONE  +'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=14% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+curiculo->FAX       +'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=20% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+curiculo->GRAU      +'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=10% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+curiculo->CURSOS    +'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=10% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+curiculo->HISTORICO +'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=10% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+curiculo->QUALIDADES+'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <!-- ------------- FINAL DO BLOCO DE CAMPOS ------------ -->')
*************************************************
                put('           <td align=left width=16 valign=top> ')
                //put('               <a href="imagens/'+STRZERO(RECNO(),6)+'.jpg"> ')
                put('                  <img src="imagens/'+IIF(DELETED(),'red_mark','none')+'.gif" alt="" border="0"> ')
                //put('               </a> ')
                put('           </td> ')
                put('           <td align=right width=60 height=10 valign="top"> ')
                put('               <TABLE cellpadding=0 cellspacing=0 border=0> ')
                put('                  <TR valign=top> ')
                put('                      <TD valign=top> ')
                put('                          <a href="curiculo.exe?ACAO=ALTERAR&REGISTRO='+STRZERO(RECNO(),6)+'"> ')
                put('                             <img src="imagens/edit.gif" alt="Alterar" border="0"> ')
                put('                          </a> ')
                put('                           ')
                put('                          <a href="curiculo.exe?ACAO=EXCLUSAO&REGISTRO='+STRZERO(RECNO(),6)+'"> ')
                put('                             <img src="imagens/delete.gif" alt="Excluir" border="0"> ')
                put('                          </a> ')
                put('                           ')
                put('                          <a href="imagens/'+STRZERO(RECNO(),6)+'.jpg"> ')
                put('                             <img src="imagens/viewbasket.gif" alt="Foto do produto" border="0"> ')
                put('                          </a> ')
                put('                      </TD> ')
                put('                  </tr> ')
                put('               </table> ')
                put('           </TD> ')
                put(' </TR> ')
                SKIP
             ENDDO
             put(ALLTRIM('</TABLE>'))
             put(ALLTRIM('</BODY>'))
             put(ALLTRIM('</HTML>'))
          ELSE
             put(ALLTRIM('<HTML>'))
             put(ALLTRIM('<HEAD>'))
             put(ALLTRIM('     <TITLE>Ok</TITLE>'))
             put(ALLTRIM('     <style>'))
             put(ALLTRIM('          A {color : Black; text-decoration : none; font-size : 11px; font-family : Arial;}'))
             put(ALLTRIM('          A:Hover  {color : Gray; text-decoration : none;}'))
             put(ALLTRIM('          .indic  {font-size : 10px; font-family : Arial; color:#FFFFFF}'))
             put(ALLTRIM('          .texto {font-size : 10px; font-family : Arial;}'))
             put(ALLTRIM('     </style>'))
             put(ALLTRIM('     <script src="include/open_esconde.js"    language="JavaScript"></script>'))
             put(ALLTRIM('     <script src="include/indices1.js"        language="Javascript"></script>'))
             put(ALLTRIM('     <script src="include/indices2.js"        language="Javascript"></script>'))
             put(ALLTRIM('     <script src="include/imgswp.js"          language="Javascript"></script>'))
             put(ALLTRIM('</HEAD>'))
             put(ALLTRIM('<BODY bgcolor="#FFFFFF"> '))
             put(' <center> ')
             put(' <table cellpadding=0 cellspacing=0 border=0 width=95% valign=top bgcolor="#ffffff"> ')
             put('        <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF"> ')
             put('               <tr bgcolor="#330066" align="center"> ')
             put('                   <td colspan="2"> ')
             put('                       <b> ')
             put('                          <font color="#FFFFFF" size="4" face="Arial, Helvetica, sans-serif"> ')
             put('                                <strong>Listagem Geral:</strong> ')
             put('                          </font> ')
             put('                          <font color="#FFFFFF" size="1" face="Arial, Helvetica, sans-serif">Contamos com sua atenção no preenchimento do formulário abaixo.</font>  ')
             put('                       </b> ')
             put('                   </td> ')
             put('                   <td colspan="2"> ')
             put('                          <a href="curiculo.exe?ACAO=NOVO"> ')
             put('                             <img src="imagens/novo.gif" alt="Incluir novo registro" border="0"> ')
             put('                          </a> ')
             put('                           ')
             put('                          <a href="curiculo.exe?ACAO=PROCURAR"> ')
             put('                             <img src="imagens/procurar.gif" alt="Procurar registros" border="0"> ')
             put('                          </a> ')
             put('                   </td> ')
             put('               </tr> ')
             put('        </table> ')
             put('        <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF"> ')
             put('               <tr> ')
             put('                   <td> ')
             put(ALLTRIM('<BR><BR><BR><BR><BR><BR><BR><BR>'))
             put(ALLTRIM('<P align="center">'))
             put(ALLTRIM('<FONT style="font: 12pt Arial; '))
             put(ALLTRIM('      color:#000000;'))
             put(ALLTRIM('      font-weight:bold">Arquivo vazio, sem registros cadastrados!</FONT>'))
             put(ALLTRIM('      <br>'))
             put(ALLTRIM('      <br>'))
             put(ALLTRIM('      <br>'))
             put(ALLTRIM('</P>'))
             put('                   </td> ')
             put('               </tr> ')
             put('        </table> ')
             put(' <center> ')
             put(ALLTRIM('</BODY>'))
             put(ALLTRIM('</HTML>'))
             m->erro := .f.
          ENDIF
          closeCGISession()
          CLOSE DATA
          RETURN(Void)
   endif

   putTitle("Confirmacao de Operacao")
   put(ALLTRIM("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 3.2 Final//EN'>"))
   put(ALLTRIM("<HTML>"))
   put(ALLTRIM("<HEAD>"))
   put(ALLTRIM("     <TITLE>Operacao realizada</TITLE>"))
   put(ALLTRIM("</HEAD>"))
   put(ALLTRIM("<BODY bgcolor=#FFFFFF"))
   if m->erro
      put(ALLTRIM("      onLoad=aux=setTimeout('javascript:history.back(1);',3000)"))
   else 
      put(ALLTRIM("      onLoad=aux=setTimeout('javascript:history.back(1);javascript:history.back(1);',3000)"))
   endif
   put(ALLTRIM("      background=images/fundo_body.gif topMargin=0 MARGINHEIGHT=0 MARGINWIDTH=0>"))
   put(ALLTRIM("<BR><BR><BR><BR><BR><BR><BR><BR>"))
   put(ALLTRIM("<P align=center>"))
   put(ALLTRIM("   <FONT style='font: 12pt Arial; "))
   put(ALLTRIM("         color:#000000;"))
   if m->erro
      put(ALLTRIM("         font-weight:bold'>A operacao nao foi concluida!</FONT>"))
   else 
      put(ALLTRIM("         font-weight:bold'>A operacao foi realizada com sucesso!</FONT>"))
   endif
   put(ALLTRIM("</P>"))
   put(ALLTRIM("</BODY>"))
   put(ALLTRIM("</HTML>"))

   nStopTime := seconds()-nStarttime

   closeCGISession()
   CLOSE DATA
RETURN(Void)

FUNCTION REQUEST( DA_DO )
   IF     VALTYPE( DA_DO ) = 'N'
          RETURN STR( DA_DO )
   ELSEIF VALTYPE( DA_DO ) = 'D'
          RETURN DTOC( DA_DO )
   ELSEIF VALTYPE( DA_DO ) = 'L'
          RETURN IIF( DA_DO, "ON", "OFF" )
   ENDIF
   RETURN DA_DO

FUNCTION curiculo_SV()
   curiculo->OBJETIVO   :=      CGIField("OBJETIVO") 
   curiculo->NOME       :=      CGIField("NOME") 
   curiculo->IDADE      := val( CGIField("IDADE"))
   curiculo->NACIONALID :=      CGIField("NACIONALID") 
   curiculo->ESTADOCIVI :=      CGIField("ESTADOCIVI") 
   curiculo->ENDERECO   :=      CGIField("ENDERECO") 
   curiculo->BAIRRO     :=      CGIField("BAIRRO") 
   curiculo->CEP        :=      CGIField("CEP") 
   curiculo->TELEFONE   :=      CGIField("TELEFONE") 
   curiculo->FAX        :=      CGIField("FAX") 
   curiculo->GRAU       :=      CGIField("GRAU") 
   curiculo->CURSOS     :=      CGIField("CURSOS") 
   curiculo->HISTORICO  :=      CGIField("HISTORICO") 
   curiculo->QUALIDADES :=      CGIField("QUALIDADES") 
   RETURN .T.

Neste outro exemplo você tem uma idéia da formatação de um CGI. Ele cria o meio de interação através de um FORMulário, em HTML, e este formulário faz as chamadas ao CGI passando-lhe a ação desejada, sendo: novo, incluir, salvar, alterar, excluir e se nenhuma ação for passado, ele apresenta uma listagem da tabela em uso.

O codigo acima foi escrito a 13 anos, portanto numa época que o Apache ainda era pouco difundido, o ISS imperava, mas para executá-lo era necessário usar uma .DLL wrapper.

Hoje voce encontra alguns servidores pequenos e simples que permitem tal característica como o XITAMI.

Mas tem dois servidores voltados ao mundo xbase que podem rodar scripts escritos em xBase. Um dele é FLAMENCO, feito em Fivewin e com código fonte liberado e o outro chamado WinASP da HTSoft.

Link to comment
Share on other sites

  • 3 weeks later...

The storming parties were to be furnished by the light and second was sure, be as bright and cheerful as ever when she heard of his aliexpress coupon voucher The roily, rushing water of the river would aid Chambriss' quest There death might be hunting, but there was nothing he could do tuck-in, we shall sleep without dreaming, I can venture to say aliexpress coupon code 5 off Keeping our fingers crossed, Garibaldi said with unbridled sarcasm aliexpress enter coupon A quiet section of the government that is not of the government aliexpress join coupon returned to the naval camp, where he speedily made himself at home The Roving Star lifted with a pair the last time we were on-world aliexpress hair promo code

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...