Grabar, recupera y mostrar imagen jpg en blob de mysql

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby AIDA » Thu Mar 13, 2014 8:32 am

Despues de mil intentos no logre sacar y descodificar un PDF :cry:


a si lo tengo alguna idea para que ya funcione :idea:

Code: Select all  Expand view
FUNCTION sacarpdf(cFichero,poliza)

Local oDlg,cFicheroo,oActiveX,nSeek,XoQry,nHandle ,cfile

 xoQry:= TDolphinQry():New( "SELECT * FROM  pdf order by archivos" )

if  xoQry:Seek( cFichero,alltrim("archivos") )== 0



else


cfile:=HB_Base64Decode( XoQry:documento )

 nHandle := FCreate( "c:\temppdf" + "\" + cfile  )

 FWrite( nHandle, XoQry:documento , Len( XoQry:documento ) )

 FWrite( nHandle, "
exit" +CRLF )

 FCLOSE ( nHandle )

endif

VerPDFF(cFichero,oQry)

 Return
//-------------------------------------------------------------------------------------//

FUNCTION VerPDFF(cFichero,oQry)
*********************************  
Local oDlg,cFicheroo,oActiveX



cFichero:="
C:\TEMPPDF\"+alltrim(cFichero)


Rename ( cFichero ) to ("
C:\TEMPPDF\"+"POLIZA.PDF")

DEFINE DIALOG oDlg RESOURCE "
DIALOGPDF" TITLE "POLIZA EN FORMATO PDF---> "+" "+oQry:poliza
oDlg:lHelpIcon:=.F.

REDEFINE ACTIVEX oActiveX ID 800 OF oDlg PROGID "
AcroPDF.PDF.1"

ACTIVATE DIALOG oDlg  CENTERED ;
ON INIT (oActiveX:Do( "
LoadFile", "C:\TEMPPDF\"+"POLIZA.PDF" ),oActiveX:Do( "SetCurrentPage", 1 )  ) //NOMODAL


 FERASE("
C:\TEMPPDF\"+"POLIZA.PDF")

RETURN NIL




Saluditos :wink:
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby cnavarro » Thu Mar 13, 2014 10:46 am

No estoy muy al dia de este tema pero,
cfile:=HB_Base64Decode( XoQry:documento )


nHandle := FCreate( "c:\temppdf" + "\" + cfile )

FWrite( nHandle, XoQry:documento , Len( XoQry:documento ) )


Tal y como lo tienes
cfile sería la cadena a grabar en el fichero, no el nombre del fichero, no?
FWrite( nHandle, cfile , Len( cfile ) )

o

FWrite( nHandle, HB_Base64Decode(XoQry:documento) , Len( HB_Base64Decode(XoQry:documento) ) )


Espero te ayude en algo
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby carlos vargas » Thu Mar 13, 2014 3:13 pm

por que no usas la funcion StrFile, esta es parte de las CT de harbour.
Code: Select all  Expand view

FUNCTION SacarPDF( cFichero )
    LOCAL oQry
    LOCAL cQry
    LOCAL cFile    := ""
    LOCAL lCreated := FALSE
   
    IF empty( cFichero )
        cQry := StrFormat( "SELECT archivos, documentos FROM  pdf WHERE archivos='%1'", cFichero ) 
        oQry := TDolphinQry():New( cQry )
   
        IF oQry:RecCount() > 0
            cFile := alltrim( oQry:archivos )
            IF StrFile( "c:\temppdf\" + cFile, HB_Base64Decode( oQry:documento ) ) > 0
                lCreated := TRUE
            ENDIF              
        ENDIF
        oQry:end()
        IF lCreated
            VerPDFF( cFile )       
        ENDIF
    ENDIF
   
RETURN

salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1688
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby carlos vargas » Thu Mar 13, 2014 7:17 pm

Dejo un ejemplo funciona, adjunto la base de datos y el programa.
la idea es que para estos menesteres es necesario dos tablas al menos, la tabla que contiene la lista de los archivos, y la tabla que contiene los binarios de los archivos,
esto es para evitar que en un query se recupere mas de un solo archivo a la vez,
el hacer un SELECT * FROM TABLA_PDF es muy ineficiente, ya que se traeria a memoria todo los archivos de la tabla, la cual dependido de sus tamaños es probable que te lleves la ram de la pc, en este ejemplo, son necesaria dos tablas con un campo en común "archivo_numero", así que cuando necesito un archivo en particular los traigo en un segundo query usado ese numero.
espero me comprendan.

en el ejemplo, estan dos funciones PDF2MYSQL y MYSQL2PDF, en la primera ejecucion del programa debera esta comentada MYSQL2PDF, en la segunda ejecucion debera estar comentada PDF2MYSQL.

la base de datos
-- --------------------------------------------------------
-- Host:
-- Versión del servidor: 5.1.69-0ubuntu0.10.04.1 - (Ubuntu)
-- SO del servidor: debian-linux-gnu
-- HeidiSQL Versión: 8.3.0.4726
-- --------------------------------------------------------

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

-- Volcando estructura de base de datos para test
CREATE DATABASE IF NOT EXISTS `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `test`;


-- Volcando estructura para tabla test.tabla_archivo
CREATE TABLE IF NOT EXISTS `tabla_archivo` (
`archivo_numero` int(6) unsigned NOT NULL,
`archivo_nombre` char(150) NOT NULL,
KEY `archivo_numero` (`archivo_numero`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- La exportación de datos fue deseleccionada.


-- Volcando estructura para tabla test.tabla_pdf
CREATE TABLE IF NOT EXISTS `tabla_pdf` (
`archivo_numero` int(6) unsigned NOT NULL,
`archivo_contenido` mediumtext,
KEY `archivo_numero` (`archivo_numero`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- La exportación de datos fue deseleccionada.
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;


el programa
Code: Select all  Expand view

#include "Directry.ch"
#ifndef __XAHRBOUR__
#include "hbcompat.ch"

#endif
#include "tdolphin.ch"
#include "fivewin.ch"
 
#define TRUE  .t.
#define FALSE .f.

#define D_CLIENT_COMPRESS         32

REQUEST DBFCDX, DBFFPT
REQUEST HB_LANG_ESWIN, HB_CODEPAGE_ESWIN

procedure Main()
   private oErr
   private oServer
   private oQry

   IF !Configuracion()
      RETURN
   ENDIF

   PDF2MYSQL()
   
   //MYSQL2PDF()
   
   oServer:end()
   
return

/*------------------------------------------------------------------*/

function Configuracion()
   
   RddSetDefault( "DBFCDX" )
     
   HB_LangSelect(  "ESWIN" )
   HB_SetCodePage( "ESWIN" )

   SET DEFAULTCLPVALUE ON
   SET LOGICALVALUE    ON
   SET CASESENSITIVE   ON
   SET PADRIGHT        ON
   
return Conectar()

/*------------------------------------------------------------------*/

function Conectar()
   local lOk := FALSE
   LOCAL cSrv_Host  := "192.168.10.10"
   LOCAL cSrv_User  := "carlos"
   LOCAL cSrv_Pass  := "diana1"
   LOCAL cSrv_Port  := "3306"
   LOCAL cSrv_Data  := "test"
   
   TRY
     
      oServer := TDolphinSrv():New( cSrv_Host, cSrv_User, cSrv_Pass, Val( cSrv_Port ), D_CLIENT_COMPRESS, cSrv_Data )
     
      oServer:Execute( "SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED" )
      oServer:Execute( "SET SESSION LOW_PRIORITY_UPDATES=0" )
      oServer:Execute( "SET SESSION SQL_BIG_SELECTS=1" )
      oServer:Execute( "SET SESSION sql_mode='STRICT_ALL_TABLES'" )
      oServer:Execute( "SET SESSION big_tables=0" )
      oServer:Execute( "SET SESSION query_cache_type=ON" )
      oServer:Execute( "SET SESSION collation_database='latin1_spanish_ci'" )
      oServer:Execute( "SET @DTRIGGERS=NULL" )
      oServer:Execute( "SET SESSION storage_engine=InnoDB" )

      lOk := TRUE

   CATCH oErr
      MsgAlert( oErr:Description, "No se conecto al servidor" )
   END

   D_SetCaseSensitive( TRUE )

   Set_MyLang( "es_ES" )
   
return lOk

/*------------------------------------------------------------------*/

function PDF2MYSQL()
   local lOk       := FALSE
   local cDir      := "d:\xhb\doc\sqlrdd"
   local aFilesPdf := Directory( cDir + "\" + "*.pdf" )
   local aFile, cFile, xCont, nFile

   if len( aFilesPdf ) > 0      
      nFile := 0
      try
         for each aFile in aFilesPdf
            nFile := nFile + 1          
            cFile := cDir + "
\" + aFile[ F_NAME ]
            xCont := FileStr( cFile )
            ?nFile, cFile, len(xCont)
            if !empty( xCont )
               oServer:Insert( "
tabla_archivo", ;
                               { "
archivo_numero"  , "archivo_nombre"   }, ;
                               { nFile,              cFileName( cFile ) }  )  
               
               oServer:Insert( "
tabla_pdf", ;
                               { "
archivo_numero"  , "archivo_contenido"                    }, ;
                               { nFile             , HB_Base64Encode( xCont, len( xCont ) ) }  )  
               SysRefresh()
            endif
         next
         lOk := TRUE
      catch oErr
         lOk := FALSE
         MsgStop( oErr:description )
      end
      if lOk
         MsgInfo( "
Archivos respaldados en el servidor." )
      endif
   else
      MsgAlert( "
No hay archivos pdf en el directorio indicado" )
   endif
   
return lOk

/*------------------------------------------------------------------*/

function MYSQL2PDF()
   local lOk       := FALSE
   local nFile, cFile, xCont
   local oQry2, cQry2
   local cPath := "
d:\misapp"
   
   oQry := oServer:Query( "
select archivo_numero, archivo_nombre from tabla_archivo" )
   
   oQry:GoTop()
   
   do while !oQry:eof()
      nFile := oQry:archivo_numero
      cFile := alltrim( oQry:archivo_nombre )    
      cQry2 := "
select archivo_contenido from tabla_pdf where archivo_numero=%1 limit 1"
      cQry2 := StrFormat( cQry2, alltrim( str( nFile ) ) )
      try      
         oQry2 := oServer:Query( cQry2 )
         if oQry2:RecCount() > 0
            if !empty( oQry2:archivo_contenido )
               xCont := HB_Base64Decode( oQry2:archivo_contenido )
               if !empty( xCont )
                  if StrFile( xCont, cPath + "
\" + cFile ) > 0
                     ?"
Archivo creado:", cFile      
                  endif
               endif
            endif
         endif
         oQry2:end()
         
         lOk := TRUE
      catch oErr
         lOk := FALSE
         MsgStop( oErr:description )        
      end            
      oQry:Skip()      
   enddo
   
   oQry:end()
   
return lOk

/*------------------------------------------------------------------*/
//EOF
/*------------------------------------------------------------------*/
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1688
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby AIDA » Thu Mar 13, 2014 8:40 pm

Hola en que libreria en xharbour esta StrFormat()


Saluditos :wink:
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby carlos vargas » Thu Mar 13, 2014 8:42 pm

libmisc.lib
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1688
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby Daniel Garcia-Gil » Thu Mar 13, 2014 8:43 pm

Aida

adicionalmente al ejemplo que te dejo carlos, te anexo este ejemplo, hay varios detalles que debes tener en consideracion

1.-
AIDA wrote:xoQry:= TDolphinQry():New( "SELECT * FROM  pdf order by archivos" )

debes tener cuidado con ese tipo de consulta, porque si tienes muchos archivos grabados sera mas lento pues te estarias trayendo toda la informacion, por eso es mejor hacer la consulta al registro en especifico que deseas traerte (mira los ejemplos que te han puesto)

estilo basico
oQry = oServer:Query("SELECT file FROM files WHERE filename='fwintro.pdf'")

estilo avanzado usando dolphin
Code: Select all  Expand view
1. oQry = oServer:Query("SELECT file FROM files WHERE filename='&filename'", {"filename"=>"fwintro.pdf"})
2. oQry = oServer:Query("SELECT file FROM files WHERE filename='&1'", {"fwintro.pdf"})


estilo avanzado usando herramientas externas
Code: Select all  Expand view
cQry2 := "select archivo_contenido from tabla_pdf where archivo_numero=%1 limit 1"
cQry2 := StrFormat( cQry2, alltrim( str( nFile ) ) )


2. Particularmente uso la funcion D_ReadFile proporcionada por TDolphin creada en C, se encarga directamente de insertar los caracteres de escape (que mysql "entiende" ) a los datos leidos (en caso de necesitar lo escapes, de lo contrario no lo hara y tendras el mismo tamaño del archivo), leer el archivo y despues codificarlo puede resultar un archivo, aparte de resultar de mayor tamaño resulta un proceso mas lento incluso al momento de leerlo desde la tabla porque despues debes decodificarlo para poder mostarlo

Code: Select all  Expand view

#include "fivewin.ch"
#include "tdolphin.ch"

FUNCTION Main()

   LOCAL oWnd
   LOCAL oMenu
   LOCAL oServer
   
   MENU oMenu 2007
      MENUITEM "Files"
         MENU
            MENUITEM "Save Pdf" ACTION SavePdf( oServer )
            MENUITEM "Show Pdf" ACTION ShowPdf( oServer )
         ENDMENU            
   ENDMENU

     
   D_SetCaseSensitive( .T. )
   
   IF ( oServer := ConnectTo() ) == NIL
      RETURN NIL
   ENDIF
   
   DEFINE WINDOW oWnd TITLE "Testing Dolphin - Fivewin" MENU oMenu
   
   ACTIVATE WINDOW oWnd
   
   oServer:End()
   
RETURN NIL

FUNCTION ConnectTo()
    local oServer
   
  CONNECT oServer HOST "dolphintest.sitasoft.net" ;
                  USER "test_dolphin" ;
                  PASSWORD "1122334455";
                  PORT 3306;
                  FLAGS 0;
                  NAME "CONNECT1";
                  DATABASE "dolphin_man"

RETURN oServer


FUNCTION SavePdf( oServer )
   
    local uData
    local oQry
   
    oQry = oServer:Query("SELECT filename FROM files WHERE filename='fwintro.pdf'")
   
    IF oQry:RecCount() > 0
        oQry:Delete()
    ENDIF
   
    oQry:End()
   
    uData = D_ReadFile( "fwintro.pdf" )
   
    IF oServer:Insert( "files", {"filename", "file"}, { "fwintro.pdf", uData } )
        MsgInfo( "Save successfull")
    ELSE
        MsgInfo( "Not saved" )
    ENDIF
   
RETURN NIL

FUNCTION ShowPdf( oServer )
   
    local oQry, nHandle
    local oDlg, oActiveX
    local cTemp := hb_CurDrive() + ":\" + CurDir() + "\tempdf.pdf"
   
    oQry = oServer:Query("
SELECT file FROM files WHERE filename='fwintro.pdf'")
   
    IF oQry:RecCount() > 0
        FErase( cTemp )
       
        nHandle := FCreate( cTemp )
       
        IF FError() # 0      
        MsgInfo( "
Error creating file"  )
        ELSE
           
        FWrite( nHandle, oQry:file, Len( oQry:file ) )
        FClose( nHandle )

        oQry:End()

            DEFINE WINDOW oDlg TITLE "
READ PDF FILE FROM MYSQL TABLE USING TDOLPHIN"

                @ 0,0 ACTIVEX oActiveX OF oDlg PROGID "
AcroPDF.PDF.1"
                oDlg:oClient = oActiveX
                oActiveX:src = cTemp
                oActiveX:GotoFirstPage()
               
            ACTIVATE WINDOW oDlg

      ENDIF
    ELSE
        MsgInfo( "
File not found!" )
    ENDIF
   
RETURN NIL
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby Daniel Garcia-Gil » Thu Mar 13, 2014 9:24 pm

se me olvido colocar el link de descarga del ejemplo

http://sitasoft.net/fivewin/samples/testpdf.zip
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby carlos vargas » Thu Mar 13, 2014 9:24 pm

daniel, interesante la función, la revisare.

salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1688
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby AIDA » Thu Mar 13, 2014 9:27 pm

Carlos y Daniel Muchas Gracias por su ayuda
me pondré a leer sus ejemplos para aplicarlos :D


Image


Que lindos son :mrgreen:

Saluditos :wink:
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby AIDA » Thu Mar 13, 2014 9:52 pm

Daniel

Me quede con una duda ya tengo 20000 pdf en la tabla estan codificados , por que ponerlos sin codificar se me tronaba el programa
en tu ejemplo esta sin codificar, se podria meter 20000 pdf sin codificar :?:


Gracias por tu tiempo :oops:


Saluditos :wink:
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby carlos vargas » Thu Mar 13, 2014 10:02 pm

Te sugiero aida, que hagas la prueba codificado por ejemplo con StrToHex y HexToStr, luego cuando ya este listo, y te funciones, pruebes sin codificar, los cambios serán mínimos, y asi esta segura que la cosa funciona de una manera, yo en mis prueba hace un tiempo si no lo ponía en hexadecimal no me funcionaba bien, pero puede que halla cambiado la cosa.

es evidente que al realizar la conversión se pierde tiempo, pero era necesario, algunos programadores antes usaban funciones tales como memoread y memowrite para leer y escribir archivos, pero surgieron problemas cuando los datos a leer eran binarios, de ha la costumbre de convertirlo a hexadecimal.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1688
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby Daniel Garcia-Gil » Fri Mar 14, 2014 12:29 am

AIDA wrote:Daniel

Me quede con una duda ya tengo 20000 pdf en la tabla estan codificados , por que ponerlos sin codificar se me tronaba el programa
en tu ejemplo esta sin codificar, se podria meter 20000 pdf sin codificar :?:


Gracias por tu tiempo :oops:


Saluditos :wink:


Aida puedes dejalor como estan... solo decodificalos, guarda el temporal y abrelo como esta en el ejemplo que te puse a ver si te funciona... si bien es cierto la decodificacion actualmente no deveria ser de gran importancia para los equipos actuales, si los archivos no son muy grandes tampoco se nota la diferencia en la decodificacion.
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby AIDA » Fri Mar 14, 2014 11:55 pm

Hola

Les comento que ya enpeso a funcionar bien mi programita logre poner 20,000 archivos PDF sin codificar gracias a la recomendación de Carlos :D
sobre meterlos con un tiempo controlado a si que lo deje en 1

mod( oQry:Recno(), 1 )==0 //aca modificar el 10 segun tamaño de archivos, la idea es que cada 2 segundos se realize el sysrefresh
SysRefresh()


y gracias a los consejos de Daniel sobre como debía abrir las tablas :D

a un tengo que mejorarlo ya que buscar un registro en esos 20,000 si esta lentito usando un oQry:seek(irNueva1,"poliza") = 0 no se si se pueda mejorar la búsqueda

Les agradezco por toda su ayuda :mrgreen:


Saluditos :wink:
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

Re: Grabar, recupera y mostrar imagen jpg en blob de mysql

Postby Daniel Garcia-Gil » Sat Mar 15, 2014 1:57 am

AIDA wrote:a un tengo que mejorarlo ya que buscar un registro en esos 20,000 si esta lentito usando un oQry:seek(irNueva1,"poliza") = 0 no se si se pueda mejorar la búsqueda


la idea de recomendarte la forma como debes hacer el SELECT es para evitar que uses el "seek"

Daniel Garcia-Gil wrote:Aida

estilo basico
oQry = oServer:Query("SELECT file FROM files WHERE filename='fwintro.pdf'")

estilo avanzado usando dolphin
Code: Select all  Expand view
1. oQry = oServer:Query("SELECT file FROM files WHERE filename='&filename'", {"filename"=>"fwintro.pdf"})
2. oQry = oServer:Query("SELECT file FROM files WHERE filename='&1'", {"fwintro.pdf"})


estilo avanzado usando herramientas externas
Code: Select all  Expand view
cQry2 := "select archivo_contenido from tabla_pdf where archivo_numero=%1 limit 1"
cQry2 := StrFormat( cQry2, alltrim( str( nFile ) ) )




tu consulta quedaria algo asi...

forma basica
Code: Select all  Expand view
xoQry:= oServer:Query( "SELECT * FROM  pdf WHERE  archivos='" + cFichero + "'" )


forma avanzada1
Code: Select all  Expand view
xoQry:= oServer:Query( "SELECT * FROM  pdf WHERE  archivos='&fichero'", {fichero => cFichero} )


forma avanzada2
Code: Select all  Expand view
xoQry:= oServer:Query( "SELECT * FROM  pdf WHERE  archivos='&1'", {cFichero} )


forma avanzada3
Code: Select all  Expand view
cQry2 := "SELECT * FROM  pdf WHERE  archivos='%1'"
cQry2 := StrFormat( cQry2, cFichero )
oQry2 := oServer:Query( cQry2 )
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

PreviousNext

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 21 guests