Página 1 de 1

Função similar

Enviado: 07 Out 2011 17:51
por MARCELOG
Olá pessoal,
qual a função do harbour que substitui a função createobject do xharbour?

Obrigado.

MarceloG

Função similar

Enviado: 07 Out 2011 18:47
por alxsts
Olá!

Creio que não existe diferença. O código abaixo rodou em xHarbour:

Código: Selecionar todos

#include "ado.ch"

PROCEDURE Main()

   LOCAL oCn, oRs, oErr

   AltD()   

   TRY
      oCn := CreateObject( "ADODB.Connection" )

      oCn:ConnectionString := "Provider=OraOLEDB.Oracle;Data Source=XE;User ID=system;Password=abc100;FetchSize=100;CacheType=Memory;"

      oCn:Open()

      oRs := CreateObject("ADODB.RecordSet")

      With Object oRs
         :cursorType := adOpenDynamic 
         :activeConnection( oCn )
         :cursorLocation = adUseServer
         :maxRecords = 100000
         :cacheSize = 100
         :source := "SELECT ROWNUM AS REC, COUNTRY_ID, COUNTRY_NAME  FROM HR.Countries"

         //  ou troque as linhas:
         //    oRs:activeConnection( oCn )
         //    oRs:source := "SELECT ROWNUM AS REC, COUNTRY_ID, COUNTRY_NAME  FROM HR.Countries"
         //  por:
         //    oRs:open( "SELECT ROWNUM AS REC, COUNTRY_ID, COUNTRY_NAME  FROM HR.Countries", oCn ) 

         :open()
 
         :moveFirst()

         CLS

         Do While ! :eof()
           QOut( Transform( :Fields( "rec" ):value, "999" ), "-", ;
                 :Fields( "Country_id" ):Value, "-", ;
                 :Fields( "Country_Name" ):Value ) 
           :MoveNext()
         ENDDO

         :Close()
         oRs := Nil
      End   

      oCn:Close()
      oCn := Nil
   
   CATCH oErr
      Alert( "Error: " + oErr:Operation + " -> " + oErr:Description )
   END

   RETURN   
//--------------------------------------------------------------------------------

Função similar

Enviado: 07 Out 2011 21:43
por MARCELOG
Olá,
obrigado por responder.
Todavia, chamo essa função no harbour, compilado com o mingw, dá erro.

MarceloG

Função similar

Enviado: 08 Out 2011 03:10
por alxsts
Olá!

Desculpe Marcelo, entendi erradamente a questão... pensei que o problema fosse em xHarbour.

Creio que em Harbour, deva-se usar a função Win_OleCreateObject(). Um amigo do fórum que entende bastante de Harbour é o Itamar Lins.

Peguei este exemplo que ele postou, através da busca do fórum: Importando de planilha Excel - nome da planilha, Acho que tem que colocar algum #Include... verifique.

Função similar

Enviado: 08 Out 2011 03:30
por Dr.Microso
Olá!
Veja aqui.

Um abraço!

Função similar

Enviado: 08 Out 2011 13:10
por Itamar M. Lins Jr.
Ola!
Eu não sei qual versão estás usando, mas apartir desse commit o Przmek corrigiu algumas coisas e adicionou outras compatibilidades com o Xhb.
2011-08-27 12:56 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/hbwin/olecore.c
* few cleanups in recently added functions

* harbour/contrib/xhb/xhb.hbp
* harbour/contrib/xhb/xhb.hbx
+ harbour/contrib/xhb/xhbprn.c
* added xHarbour windows printer functions.

* harbour/contrib/xhb/xhb.hbp
* harbour/contrib/xhb/xhb.hbx
+ harbour/contrib/xhb/xhbole.prg
* added xHarbour compatible TOLEAUTO class and OLE functions:
CreateObject(), GetActiveObject(), CreateOLEObject()
Saudações,
Itamar M. Lins Jr.