09 Jun 2016 11:50
Compiling...
Harbour 3.2.0dev (r1601050904)
Copyright (c) 1999-2015, http://harbour-project.org/
Compiling 'FIREBIRD.prg' and generating preprocessed output to 'FIREBIRD.ppo'...
1 error
No code generated.
adoXb.ch(52) Error E0017 Ambiguous match pattern in #translate/#command
adoXb.ch(85) Warning W0002 Redefinition or duplicate definition of #define adLo
ckReadOnly
adoXb.ch(86) Warning W0002 Redefinition or duplicate definition of #define adLo
ckPessimistic
adoXb.ch(87) Warning W0002 Redefinition or duplicate definition of #define adLo
ckOptimistic
adoXb.ch(88) Warning W0002 Redefinition or duplicate definition of #define adLo
ckBatchOptimistic
* Compile errors *
#include "adoXb.ch"
//#include "AdoXb.prg" // NAO TENHO ESTE MODULO PARA Q SERVE?
#Include 'Inkey.ch'
// #Include 'i_keybd.ch' // NAO TENHO ESTE INCLUDE, PARA Q SERVE?
#include "FiveWin.ch"
// #include "ado.ch" // CONFLITOS DIVERSOS.
#include "set.ch"
#include "common.ch"
#include "directry.ch"
#include "fileio.ch"
#include "hbcompat.ch"
// #include "hbwin.ch" // NAO TENHO ESTE INCLUDE, PARA Q SERVE?
MEMVAR StrDatabas, StrConnect
FUNCTION Main()
LOCAL cADORDD, cSmallPath, oConexao, oRecSet, c_Nome, d_Nasc, c_SeleStr
ADOSetRDD( "FIREBIRD" ) // ADOGDB
ADORDDDefault( "FIREBIRD" ) // ADOGDB
cADORDD := "FIREBIRD"
StrDatabas := "BANCOFB.FDB" // NO LOCAL DE COMPILACAO
StrConnect := "DRIVER=Firebird/InterBase(r) driver; UID=sysdba; PWD=masterkey; DBNAME=" + StrDatabas
ADOSetRDD( "FIREBIRD" ) // ADOGDB
ADORDDDefault( "FIREBIRD" ) // ADOGDB
cADORDD := "FIREBIRD"
ADO CONNECT StrConnect
oConexao := TOLEAUTO():New("ADODB.Connection")
oRecSet := TOLEAUTO():New("ADODB.RecordSet")
// A variável "c_SeleStr" abaixo deve obedecer a sintaxe do Firebird.
? [PASSOU]
QUIT
c_SeleStr := "select " +;
"A.NM_PACIENTE_SEM_ACENTO NOME, " +;
"A.DT_NASCIMENTO NASC, " +;
"from PRESCR_LABORATORIO_V A, " +;
" PRESCR_LAB_INTEGRACAO_V B " +;
"where A.NR_PRESCRICAO = B.NR_PRESCRICAO " +;
"and A.NR_SEQUENCIA = B.NR_SEQUENCIA " +;
"and B.DT_INTEGRACAO is null " +;
"order by PRESCRICAO, URGENCIA, PREV_COLETA"
// Estas linhas abaixo eu uso com o banco ORACLE.
// No Firebird deve ser igual ou muito semelhante.
// O objeto oRecSet conterá os dados que satifazem ao select acima.
WITH Object oRecSet
*
:cursorType := adOpenForwardOnly // OPÇÕES: adOpenForward // adOpenDynamic // adOpenStatic //
:activeConnection := oConexao
:cursorLocation := adUseServer
:maxRecords := 100000
:cacheSize := 100
:source := c_SeleStr
*
:open()
*
WHILE ! :EOF() && ou outra função
// aqui você faz a leitura das variáveis do banco GDB
c_Nome := :Fields( "NOME" ):Value
d_Nasc := :Fields( "NASC" ):Value
// etc.....
:MoveNext()
// aqui você grava as variáveis no DBF
//APPEND BLANK
//etc.
ENDDO
ENDWITH
// Fecha o RecSet e fecha a Conexão.
IF Type( 'oRetSet' ) == "O"
oRecSet:Close()
ENDIF
IF Type( 'oConexão' ) == "O"
oConexao:Close()
ENDIF
RETURN NIL
09 Jun 2016 12:00
09 Jun 2016 12:35