Jump to content
Fivewin Brasil

Passar GBD(Firebird) Para TXT/DBF.


kapiaba

Recommended Posts

Galera, para abrir um banco do Firebird(.GBD) com este programa exemplo, preciso do Firebird instalado?

Se sim, onde conseguir o Firebird?


Fonte:






#include "adoXb.ch"
#include "AdoXb.prg"
*
#Include 'Inkey.ch'
#Include 'i_keybd.ch'
#include "FiveWin.ch"
#include "ado.ch"
#include "set.ch"
#include "common.ch"
#include "directry.ch"
#include "fileio.ch"
#include "hbcompat.ch"
#include "hbwin.ch"


...
...
...


ADOSetRDD( "FIREBIRD" ) // ADOGDB
ADORDDDefault( "FIREBIRD" ) // ADOGDB
cADORDD := "FIREBIRD"

...
...

PUBLIC StrDatabas := cSmallPath + "Small.gdb"
PUBLIC 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.

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

Link to comment
Share on other sites

Amiguinhos,

kapiaba

Se você necessita abrir somente um .GBD não precisa instalar o Firebird Server, só o driver ODBC dá conta.

Ou então desisntale este servidor e instale um mais novo, com certeza o driver será instalado junto e você poderá acessar o arquivo.

Link to comment
Share on other sites

Amiguinhos,

kapiaba

Se você necessita abrir somente um .GBD não precisa instalar o Firebird Server, só o driver ODBC dá conta.

Ou então desisntale este servidor e instale um mais novo, com certeza o driver será instalado junto e você poderá acessar o arquivo.

Rochinha, o 3.0 tem o drive odbc?

http://www.firebirdsql.org/en/firebird-3-0-0/

Link to comment
Share on other sites

Amiguinhos,

Consegui conexão com um arquivo .GDB instalando o que tenho aqui.

- Instalei Firebird-2.1.3.18185_0_Win32.exe
- Copiei c:\windows\system32\gds32.dll para a pasta do database
- Especifiquei o caminho completo do database na string de conexão
/*
 *
 * Mais informacoes sobre ADO em 
 * http://www.microsoft.com/brasil/technet/Colunas/scriptcenter/resources/officetips/nov05/tips1103.mspx
 *
 */
#include "Fivewin.ch" 
#include "adoxb.ch" 

// Instalei Firebird-2.1.3.18185_0_Win32.exe
// Copiei c:\windows\system32\gds32.dll para a pasta do database
// Especifiquei o caminho completo do database

FUNCTION MAIN() 
    PUBLIC oRs

    ADOSetRDD( "Firebird" )

    StrDatabase   := "Z:\D_\disco\E\FONTES\NFW\harbour\libs\adodb\gdb\adogdb.gdb"
    StrConnection := "DRIVER=Firebird/InterBase(r) driver; UID=SYSDBA; PWD=masterkey; Database="+StrDatabase+"; DIALECT=3" //; vendorclient=gds32.dll;"
    
    MsgRun( "Conectando..." )
    
    ADO CONNECT StrConnection

    oRs := oRecordSet

    // Cria tabelas se nao existirem
    if ADOFile( "clientes" )
    else  
       MsgRun( "Criando tabela CLIENTES..." )
       ADO EXECUTE "DROP TABLE clientes"
       ADO EXECUTE "CREATE TABLE clientes (nome char(45), email char(45), unique(nome))"
    endif
    if ADOFile( "siglas" )
    else
       MsgRun( "Criando tabela SIGLAS..." )
       ADO EXECUTE "DROP TABLE siglas"
       ADO EXECUTE "CREATE TABLE siglas (uf char(2), estado char(20), unique(uf))"
    endif
    if ADOFile( "teste" )
    else
       MsgRun( "Criando tabela TESTE..." )
       ADO EXECUTE "DROP TABLE teste"
       ADO EXECUTE "CREATE TABLE teste (uf char(2), estado char(20), unique(uf))"
    endif

    // Abre as tabelas
    ADO USE clientes
    ADO USE siglas

    // Verifica se ja possuem dados
    ADO SELECT clientes
    //ADO GOTOP
    nRegistros := ADORecCount()
    // ? ADOAlias(), nRegistros 
    if nRegistros = 0
       ADO APPEND BLANK
       ADO REPLACE nome        WITH "JOSE CARLOS DA ROCHA"
       ADO REPLACE email       WITH "IROCHINHA@ITELEFONICA.COM.BR"
       ADO COMMIT 
    endif
    ADO SELECT siglas
    //ADO GOTOP
    nRegistros := ADORecCount()
    // ? ADOAlias(), nRegistros 
    if nRegistros = 0
       ADO APPEND BLANK
       ADO REPLACE uf          WITH "SP"
       ADO REPLACE estado      WITH "SAO PAULO"
       ADO COMMIT 
       ADO APPEND BLANK
       ADO REPLACE uf          WITH "RJ"
       ADO REPLACE estado      WITH "RIO DE JANEIRO"
       ADO COMMIT 
    endif

    MsgRun( "Executando..." )
    ADO SELECT clientes
    ADO GOTOP

    MsgRun( "Executando SET FILTER TO nome like '*teste*'..." )
    ADO SET FILTER TO "nome like '*tete*'"
    if ADOEof()
       ? 'Nada foi filtrado'
       ADO SET FILTER TO
       ADO GOTOP
    endif
    Browse( oRs )
    ADO SET FILTER TO

    MsgRun( "Executando LOCATE nome like 'TESTES'..." )
    ADO LOCATE "nome like 'TESTES*'"
    if ADOEof()
       ? 'Nada foi encontrado'
       ADO GOTOP
    endif
    Browse( oRs )

    //MsgRun( "Executando SORT ON nome..." )
    //ADO SORT ON clientes.nome
    //Browse( oRs )

    //WBrowseRecordSet( oRs, StrField2 )
    //Browse( oRs )

    ADO CLOSE
    RETURN NIL

function WBrowseRecordSet( oRs, cStrField ) 
    LOCAL oDlg, oBrw, nRec 
    DEFINE DIALOG oDlg SIZE 300, 300 
    @ 0, 0 LISTBOX oBrw FIELDS oRs:Fields( "nome" ):Value ; 
           HEADERS "Nome do Cliente" ;
           FIELDSIZES 300 ;
           ON RIGHT CLICK ( nRec := oRs:AbsolutePosition,; 
                            oBrw:Report( "TWBrowse report", .T. ),; 
                            oRs:MoveFirst(),; 
                            oRs:Move( nRec - 1 ) ) 
    oBrw:bLDblClick:= { |nRow,nCol| MsgStop( oRs:Fields( "email" ):Value ) }
    oBrw:nHeaderStyle  := 2
    oBrw:nHeaderHeight := 20
    oBrw:nLineHeight   := 15
    oBrw:bLogicLen := { || oRs:RecordCount }
    oBrw:bGoTop    := { || oRs:MoveFirst() } 
    oBrw:bGoBottom := { || oRs:MoveLast() } 
    oBrw:bSkip     := { | nSkip | ADOSkipper( oRs, nSkip ) } 
    oBrw:cAlias    := "ARRAY" 
    ACTIVATE DIALOG oDlg; 
             ON INIT oDlg:SetControl( oBrw ); 
             CENTER 
    RETURN NIL

function browse(oRs, bPrc, bAdc, bAlt, bExc, bImp, bSai)
    LOCAL oDlg, oBrw, nRec 
    LOCAL aData := {}
    LOCAL nFor
    LOCAL oLbx, cItem
    LOCAL btnPrc, btnAdc, btnAlt, btnExc, btnImp, btnsai

    DEFAULT bPrc    := { || RecPrc( oLbx ) },;
            bAdc    := { || RecInc( oLbx ) },;
            bAlt    := { || RecAlt( oLbx ) },;
            bExc    := { || RecExc( oLbx ) },;
            bImp    := { || RecImp( oLbx ) },;
            bSai    := { || oDlg2:End() }

    DEFINE DIALOG oDlg2 From 0,0 To 800,1020 Pixel TITLE " ListBox da Tabela "
    @ 05,15 listbox oBrw Fields ADOField( "nome" ), ADOField( "email" ) ;
             headers "Nome","email" ;
             fieldsizes 250,100 ;
             pixel size 400,300 of odlg2

    //oBrw:bLDblClick:= { |nRow,nCol| MsgStop( oRs:Fields( "apelido" ):Value ) }
    oBrw:nHeaderStyle  := 2
    oBrw:nHeaderHeight := 20
    oBrw:nLineHeight   := 15
    oBrw:bLogicLen := { || ADORecCount() }
    oBrw:bGoTop    := { || ADOGotop() } 
    oBrw:bGoBottom := { || ADOGoBottom() } 
    oBrw:bSkip     := { | nSkip | ADOSkip( nSkip ) } 
    oBrw:cAlias    := "ARRAY" 

    @ 18.7 , 05 button btnprc prompt "&Procurar"  of oDlg2 size 40,12 Action RecPrc(oBrw)
    @ 18.7 , 15 button btnadc prompt "&Adicionar" of oDlg2 size 40,12 Action RecInc(oBrw)
    @ 18.7 , 25 button btnalt prompt "A&lterar"   of oDlg2 size 40,12 Action RecAlt(oBrw)
    @ 18.7 , 35 button btnexc prompt "&Excluir"   of oDlg2 size 40,12 Action RecExc(oBrw)
    @ 18.7 , 45 button btnimp prompt "&Imprimir"  of oDlg2 size 40,12 
    @ 18.7 , 55 button btnsai prompt "&Sair"      of oDlg2 size 40,12 Action oDlg2:End()

    ACTIVATE DIALOG oDlg2 //; 
             //ON INIT oDlg2:SetControl( oBrw ); 
             //CENTER 
    RETURN NIL

function ADOSkipper( oRs, nSkip ) 
    LOCAL nRec := oRs:AbsolutePosition 
    oRs:Move( nSkip ) 
    IF oRs:EOF; oRs:MoveLast(); ENDIF 
    IF oRs:BOF; oRs:MoveFirst(); ENDIF 
    RETURN oRs:AbsolutePosition - nRec

//-----------------------------------------------------------
static function  RecPrc(oLbx)
    Local odlg1
    Local cCodigo:=0
    Local cSair:=" "
    Local sql
    DEFINE DIALOG oDlg1 From 0,0 To 160,250  PIXEL;
           TITLE " Procura na Tabela em Access " 
    DEFINE FONT oFont NAME "FIXEDSYS" SIZE 10, -10    && Use a Nonproportional font
    SET FONT OF oDlg1 TO oFont                         && so characters line up in Says
    @ 02,05 say "Codigo : " OF oDlg1 
    @ 02.2,10 get cCodigo   OF oDlg1 picture "9999" size 20,10 
    @ 02.7 , 10 button "Procurar"  of oDlg1 size 40,12 action (cSair:="*",oDlg1:End())
    ACTIVATE DIALOG oDlg1 centered 
    if cSair="*"
       //locate for (odbf:cAlias)->field_0001 = cCodigo
       criterio = "idpessoa Like '" + cCodigo + "%'"
       //oRs:MoveFirst()
       //oRs:Find criterio, 0, adSearchFoward
       if eof()
          msgAlert("NÆo encontrado !!!")
          go top
       endif
       oLbx:Refresh()
    endif
    return nil

//-----------------------------------------------------------
static function  RecInc(oLbx)
    LOCAL odlg3
    LOCAL cNome     := space(40)
    LOCAL cTelefone := space(14)
    LOCAL cEmail    := space(40)
    LOCAL cSair     := " "
    DEFINE DIALOG oDlg3 From 0,0 To 230,500 PIXEL TITLE " Inclusao na Tabela em Access " 
           DEFINE FONT oFont NAME "FIXEDSYS" SIZE 10, -10    && Use a Nonproportional font
           SET FONT OF oDlg3 TO oFont                         && so characters line up in Says
           @ 02,05 say "Nome_____: " OF oDlg3 
           @ 04,05 say "Email____: " OF oDlg3
           //
           @ 02.2,10 get cNome     OF oDlg3 picture "@!" size 150,10
           @ 04.4,10 get cEmail    OF oDlg3 picture "@!" size 150,10
           //
           @ 04.7 , 15 button "Salvar"   of oDlg3 size 40,12 action (cSair:="*",oDlg3:End())
    ACTIVATE DIALOG oDlg3 centered 
    if cSair="*"
       ADO APPEND BLANK
       ADO REPLACE nome        WITH alltrim( cNome )
       ADO REPLACE email       WITH alltrim( cEmail )
       ADO COMMIT 
       oLbx:Refresh()
    endif
    return nil

//-----------------------------------------------------------
static function  RecExc(oLbx)
    if MsgYesNo( "Excluir este Registro ?", "Por Favor, confirme" )
       ADO DELETE
       //ADO SKIP
       oLbx:Refresh()
    endif
    return nil

//-----------------------------------------------------------
static function  RecAlt(oLbx)
    LOCAL odlg3
    LOCAL cNome     := PadR( ADOField( "nome" ), 40 )
    LOCAL cEmail    := PadR( ADOField( "email" ), 40 )
    LOCAL cSair     := " "
    DEFINE DIALOG oDlg3 From 0,0 To 230,500 PIXEL TITLE " Inclusao na Tabela em Access " 
           DEFINE FONT oFont NAME "FIXEDSYS" SIZE 10, -10    && Use a Nonproportional font
           SET FONT OF oDlg3 TO oFont                        && so characters line up in Says
           //
           @ 02,05 say "Nome_____: " OF oDlg3 
           @ 04,05 say "Email____: " OF oDlg3 
           //
           @ 02.2,10 get cNome     OF oDlg3 picture "@!" size 150,10
           @ 04.4,10 get cEmail    OF oDlg3 picture "@!" size 150,10
           //
           @ 04.7 , 15 button "Salvar"   of oDlg3 size 40,12 action (cSair:="*",oDlg3:End())
    ACTIVATE DIALOG oDlg3 centered 
    if cSair="*"
       //ADO APPEND BLANK
       ADO REPLACE nome        WITH alltrim( cNome )
       ADO REPLACE email       WITH alltrim( cEmail )
       ADO COMMIT 
       oLbx:Refresh()
    endif
    return nil

//-----------------------------------------------------------
static function RecImp( oLbx )
/*
    local oRpt
    local n
    local cAlias := If( oLbx != nil, oLbx:cAlias, Alias() )
    REPORT oRpt TITLE "Relatorio: " + cAlias ;
           HEADER "Data: " + DToC( Date() ) + ", Hora: " + Time() ;
           FOOTER "Pagina: " + Str( oRpt:nPage, 3 ) ;
           PREVIEW
           if Empty( oRpt ) .or. oRpt:oDevice:hDC == 0
              return nil
           endif
           for n = 1 to FCount()
               oRpt:AddColumn( TrColumn():New( { FInfo1( cAlias, n ) },,;
                     { FInfo2( cAlias, n ) },,,,,,,,,, oRpt ) )
           next
    ENDREPORT
    ACTIVATE REPORT oRpt
    GO TOP
*/
    return nil

//--------------------------------------------
static function FInfo1( cAlias, n )
return { || ( cAlias )->( FieldName( n ) ) }

//-----------------------------------------------------------
static function FInfo2( cAlias, n )
return { || ( cAlias )->( FieldGet( n ) ) }

Function DbfDbt()
Return Nil

#include "adoxb.prg" 

ADOxb.ch

**************************************************************************************
*
* Cursor Location
*
* adUseServer           2 Atua no lado servidor
* adUseClient           3 Atua no lado cliente
*
* Cursor Type
*
* adOpenForwardOnly     0 O cursor so navega para frente. Bom para listar dados
* adOpenKeyset          1 Nao permite ver os registro adicionados e eliminados
* adOpenDynamic         2 Aceita todas operacoes do utilizador e dos outros
* adOpenStatic          3 Serve apenas para procurar dados ou gerar relatorios
*
* Lock Type Enum - Contantes de Seguranca
*
* adLockReadOnly        1 Apenas pode ler os registros
* adLockPessimistic     2 O fornecedor dos dados fecha o registro apos edicao
* adLockOptimistic      3 O fornecedor dos dados fecha o registro apos chamar o update
* adLockBatchOptimistic 4 O mesmo que Optmistic mas para sequencia de comandos
*
* AllowNumsEnum
*
* adIndexNullsAllow     0 
* adIndexNullsDisallow  1 
* adIndexNullsIgnore    2 
* adIndexNullsIgnoreAny 4
*
**************************************************************************************

#command ADO CONNECT <StrDriver> [<disconected:DISCONECTED>] => ADOCONNECT( <StrDriver>, [<.disconected.>] )
#command ADO DISCONNECT             => ADODISCONNECT()
#command ADO APPEND BLANK           => ADOAPPEND()
#command ADO EDIT                   => ADOEDIT()
#command ADO COMMIT [<save:SAVE>]   => ADOCOMMIT( [<.save.>] )
#command ADO SKIP                   => ADOSKIP( 1 ) 
#command ADO SKIP <num>             => ADOSKIP( <num> ) 
#command ADO DELETE                 => ADODELETE()
#command ADO REPLACE <f1> WITH <v1> => ADOREPLACE( <(f1)>, <v1> )
#command ADO GOTOP                  => ADOGOTOP()
#command ADO GOBOTTOM               => ADOGOBOTTOM()
#command ADO SET FILTER TO          => ADOSETFILTER()
#command ADO SET FILTER TO <xpr>    => ADOSETFILTER( <xpr> )
#command ADO SAVE <(CfILE)>         => ADOSAVE( <(CfILE)> )
#command ADO EXECUTE <*Sql*>        => ADOEXECUTE( <(Sql)> )
#command ADO LOCATE <xpr>           => ADOLOCATE( <xpr> )
#command ADO REGLOCK                => ADOREGLOCK()
#command ADO CLOSE                  => ADOCLOSE()
#command ADO CLOSE ALL              => ADOCLOSEALL()
#command ADO USE                    => ADOUSE()
#command ADO USE <(StrDatabase)> [<shared:SHARED>] => ADOUSE( <(StrDatabase)>, [<.shared.>] )
#command ADO SORT ON [<(cF)>][<(x)>]=> ADOSORT( [<(cF)>][, <(x)>] )
#command ADO SELECT <(cRecordSet)>  => ADOSELECT( <(cRecordSet)> )

#xcommand ADO SQL DELETE <*cSQL*>   => ADOEXECUTE( 'DELETE '+ <(cSQL)> )
#xcommand ADO SQL INSERT <*cSQL*>   => ADOEXECUTE( 'INSERT '+ <(cSQL)> )
#xcommand ADO SQL UPDATE <*cSQL*>   => ADOEXECUTE( 'UPDATE '+ <(cSQL)> )
#xcommand ADO SQL ALTER  <*cSQL*>   => ADOEXECUTE( 'ALTER ' + <(cSQL)> )
#xcommand ADO SQL CREATE <*cSQL*>   => ADOEXECUTE( 'CREATE '+ <(cSQL)> )
#xcommand ADO SQL DROP   <*cSQL*>   => ADOEXECUTE( 'DROP '  + <(cSQL)> )
#xcommand ADO SQL RENAME <*cSQL*>   => ADOEXECUTE( 'RENAME '+ <(cSQL)> )
#xcommand ADO SQL UPDATE <*cSQL*>   => ADOEXECUTE( 'UPDATE '+ <(cSQL)> )
#xcommand ADO SQL GRANT  <*cSQL*>   => ADOEXECUTE( 'GRANT ' + <(cSQL)> )
#xcommand ADO SQL REVOKE <*cSQL*>   => ADOEXECUTE( 'REVOKE '+ <(cSQL)> )

#xcommand DROP TABLE <*cSQL*>       => ADOEXECUTE( 'DROP TABLE '+ <(cSQL)> )
#xcommand INSERT INTO <*cSQL*>      => ADOEXECUTE( 'INSERT INTO '+ <(cSQL)> )
#xcommand CREATE TABLE <*cSQL*>     => ADOEXECUTE( 'CREATE TABLE '+ <(cSQL)> )
#xcommand TRUNCATE TABLE <*cSQL*>   => ADOEXECUTE( 'TRUNCATE TABLE '+ <(cSQL)> )

/*---- Lock Type Enum ----*/
#define adLockReadOnly        1
#define adLockPessimistic     2
#define adLockOptimistic      3
#define adLockBatchOptimistic 4

/*---- AllowNumsEnum ----*/
#define adIndexNullsAllow     0 
#define adIndexNullsDisallow  1 
#define adIndexNullsIgnore    2 
#define adIndexNullsIgnoreAny 4

/*---- CursorTypeEnum Values ----*/
#define adOpenForwardOnly 0
#define adOpenKeyset 1
#define adOpenDynamic 2
#define adOpenStatic 3

/*---- LockTypeEnum Values ----*/
#define adLockReadOnly 1
#define adLockPessimistic 2
#define adLockOptimistic 3
#define adLockBatchOptimistic 4

/*---- CursorLocationEnum Values ----*/
#define adUseServer 2
#define adUseClient 3

/*---- DataTypeEnum Values ----*/
#define adEmpty 0
#define adTinyInt 16
#define adSmallInt 2
#define adInteger 3
#define adBigInt 20
#define adUnsignedTinyInt 17
#define adUnsignedSmallInt 18
#define adUnsignedInt 19
#define adUnsignedBigInt 21
#define adSingle 4
#define adDouble 5
#define adCurrency 6
#define adDecimal 14
#define adNumeric 131
#define adBoolean 11
#define adError 10
#define adUserDefined 132
#define adVariant 12
#define adIDispatch 9
#define adIUnknown 13
#define adGUID 72
#define adDate 7
#define adDBDate 133
#define adDBTime 134
#define adDBTimeStamp 135
#define adBSTR 8
#define adChar 129
#define adVarChar 200
#define adLongVarChar 201
#define adWChar 130
#define adVarWChar 202
#define adLongVarWChar 203
#define adBinary 128
#define adVarBinary 204
#define adLongVarBinary 205
#define adChapter 136
#define adFileTime 64
#define adPropVariant 138
#define adVarNumeric 139
#define adArray &H2000

/*---- GetRowsOptionEnum Values ----*/
#define adGetRowsRest -1

/*---- PositionEnum Values ----*/
#define adPosUnknown -1
#define adPosBOF -2
#define adPosEOF -3

/*---- BookmarkEnum Values ----*/
#define adBookmarkCurrent 0
#define adBookmarkFirst 1
#define adBookmarkLast 2

/*---- MarshalOptionsEnum Values ----*/
#define adMarshalAll 0
#define adMarshalModifiedOnly 1

/*---- AffectEnum Values ----*/
#define adAffectCurrent 1
#define adAffectGroup 2
#define adAffectAllChapters 4

/*---- ResyncEnum Values ----*/
#define adResyncUnderlyingValues 1
#define adResyncAllValues 2

/*---- CompareEnum Values ----*/
#define adCompareLessThan 0
#define adCompareEqual 1
#define adCompareGreaterThan 2
#define adCompareNotEqual 3
#define adCompareNotComparable 4

/*---- FilterGroupEnum Values ----*/
#define adFilterNone 0
#define adFilterPendingRecords 1
#define adFilterAffectedRecords 2
#define adFilterFetchedRecords 3
#define adFilterConflictingRecords 5

/*---- SearchDirectionEnum Values ----*/
#define adSearchForward 1
#define adSearchBackward -1

/*---- PersistFormatEnum Values ----*/
#define adPersistADTG 0
#define adPersistXML 1

/*---- StringFormatEnum Values ----*/
#define adClipString 2

/*---- ConnectPromptEnum Values ----*/
#define adPromptAlways 1
#define adPromptComplete 2
#define adPromptCompleteRequired 3
#define adPromptNever 4

/*---- ConnectModeEnum Values ----*/
#define adModeUnknown 0
#define adModeRead 1
#define adModeWrite 2
#define adModeReadWrite 3
#define adModeShareDenyRead 4
#define adModeShareDenyWrite 8
#define adModeShareExclusive 12
#define adModeShareDenyNone 16

/*---- EventReasonEnum Values ----*/
#define adRsnAddNew 1
#define adRsnDelete 2
#define adRsnUpdate 3
#define adRsnUndoUpdate 4
#define adRsnUndoAddNew 5
#define adRsnUndoDelete 6
#define adRsnRequery 7
#define adRsnResynch 8
#define adRsnClose 9
#define adRsnMove 10
#define adRsnFirstChange 11
#define adRsnMoveFirst 12
#define adRsnMoveNext 13
#define adRsnMovePrevious 14
#define adRsnMoveLast 15

/*---- SchemaEnum Values ----*/
#define adSchemaProviderSpecific -1
#define adSchemaAsserts 0
#define adSchemaCatalogs 1
#define adSchemaCharacterSets 2
#define adSchemaCollations 3
#define adSchemaColumns 4
#define adSchemaCheckConstraints 5
#define adSchemaConstraintColumnUsage 6
#define adSchemaConstraintTableUsage 7
#define adSchemaKeyColumnUsage 8
#define adSchemaReferentialConstraints 9
#define adSchemaTableConstraints 10
#define adSchemaColumnsDomainUsage 11
#define adSchemaIndexes 12
#define adSchemaColumnPrivileges 13
#define adSchemaTablePrivileges 14
#define adSchemaUsagePrivileges 15
#define adSchemaProcedures 16
#define adSchemaSchemata 17
#define adSchemaSQLLanguages 18
#define adSchemaStatistics 19
#define adSchemaTables 20
#define adSchemaTranslations 21
#define adSchemaProviderTypes 22
#define adSchemaViews 23
#define adSchemaViewColumnUsage 24
#define adSchemaViewTableUsage 25
#define adSchemaProcedureParameters 26
#define adSchemaForeignKeys 27
#define adSchemaPrimaryKeys 28
#define adSchemaProcedureColumns 29
#define adSchemaDBInfoKeywords 30
#define adSchemaDBInfoLiterals 31
#define adSchemaCubes 32
#define adSchemaDimensions 33
#define adSchemaHierarchies 34
#define adSchemaLevels 35
#define adSchemaMeasures 36
#define adSchemaProperties 37
#define adSchemaMembers 38
#define adSchemaTrustees 39

/*---- FieldStatusEnum Values ----*/
#define adFieldOK 0
#define adFieldCantConvertValue 2
#define adFieldIsNull 3
#define adFieldTruncated 4
#define adFieldSignMismatch 5
#define adFieldDataOverflow 6
#define adFieldCantCreate 7
#define adFieldUnavailable 8
#define adFieldPermissionDenied 9
#define adFieldIntegrityViolation 10
#define adFieldSchemaViolation 11
#define adFieldBadStatus 12
#define adFieldDefault 13
#define adFieldIgnore 15
#define adFieldDoesNotExist 16
#define adFieldInvalidURL 17
#define adFieldResourceLocked 18
#define adFieldResourceExists 19
#define adFieldCannotComplete 20
#define adFieldVolumeNotFound 21
#define adFieldOutOfSpace 22
#define adFieldCannotDeleteSource 23
#define adFieldReadOnly 24
#define adFieldResourceOutOfScope 25
#define adFieldAlreadyExists 26
#define adFieldPendingInsert &H10000
#define adFieldPendingDelete &H20000
#define adFieldPendingChange &H40000
#define adFieldPendingUnknown &H80000
#define adFieldPendingUnknownDelete &H100000

/*---- SeekEnum Values ----*/
#define adSeekFirstEQ &H1
#define adSeekLastEQ &H2
#define adSeekAfterEQ &H4
#define adSeekAfter &H8
#define adSeekBeforeEQ &H10
#define adSeekBefore &H20

/*---- ADCPROP_UPDATECRITERIA_ENUM Values ----*/
#define adCriteriaKey 0
#define adCriteriaAllCols 1
#define adCriteriaUpdCols 2
#define adCriteriaTimeStamp 3

/*---- ADCPROP_ASYNCTHREADPRIORITY_ENUM Values ----*/
#define adPriorityLowest 1
#define adPriorityBelowNormal 2
#define adPriorityNormal 3
#define adPriorityAboveNormal 4
#define adPriorityHighest 5

/*---- ADCPROP_AUTORECALC_ENUM Values ----*/
#define adRecalcUpFront 0
#define adRecalcAlways 1

/*---- ADCPROP_UPDATERESYNC_ENUM Values ----*/

/*---- ADCPROP_UPDATERESYNC_ENUM Values ----*/

/*---- MoveRecordOptionsEnum Values ----*/
#define adMoveUnspecified -1
#define adMoveOverWrite 1
#define adMoveDontUpdateLinks 2
#define adMoveAllowEmulation 4

/*---- CopyRecordOptionsEnum Values ----*/
#define adCopyUnspecified -1
#define adCopyOverWrite 1
#define adCopyAllowEmulation 4
#define adCopyNonRecursive 2

/*---- StreamTypeEnum Values ----*/
#define adTypeBinary 1
#define adTypeText 2

/*---- LineSeparatorEnum Values ----*/
#define adLF 10
#define adCR 13
#define adCRLF -1

/*---- StreamOpenOptionsEnum Values ----*/
#define adOpenStreamUnspecified -1
#define adOpenStreamAsync 1
#define adOpenStreamFromRecord 4

/*---- StreamWriteEnum Values ----*/
#define adWriteChar 0
#define adWriteLine 1

/*---- SaveOptionsEnum Values ----*/
#define adSaveCreateNotExist 1
#define adSaveCreateOverWrite 2

/*---- FieldEnum Values ----*/
#define adDefaultStream -1
#define adRecordURL -2

/*---- StreamReadEnum Values ----*/
#define adReadAll -1
#define adReadLine -2

/*---- RecordTypeEnum Values ----*/
#define adSimpleRecord 0
#define adCollectionRecord 1
#define adStructDoc 2


ADOxb.prg

****************************************************************************************
*
* CursorType
*
* adOpenForwardOnly     0 O cursor so navega para frente. Bom para listar dados
* adOpenKeyset          1 Nao permite ver os registro adicionados e eliminados
* adOpenDynamic         2 Aceita todas operacoes do utilizador e dos outros
* adOpenStatic          3 Serve apenas para procurar dados ou gerar relatorios
*
* LockTypeEnum - Contantes de Seguranca
*
* adLockReadOnly        1 Apenas pode ler os registros
* adLockPessimistic     2 O fornecedor dos dados fecha o registro apos edicao
* adLockOptimistic      3 O fornecedor dos dados fecha o registro apos chamar o update
* adLockBatchOptimistic 4 O mesmo que Optmistic mas para sequencia de comandos
*
* SortOrdEnum - Contantes de Ordenacao
*
* adSortAscending       1 Ordem ascendente
* adSortDescending      2 Ordem descendente
*
****************************************************************************************

#include "adoxb.ch"
#ifndef _ADO_xHarbour_
        #define _ADO_Harbour_
#endif

*
*---------------------------------------------------------
Function ADOSetRDD( cRDDName )
   public cADORDD
   PUBLIC aRecordSet, oRS, oRecordSet, nConnection, nRecordSet, aIndexOrder, ;
          nIndexOrder, StrConnection, aADOConection, oADOConection, oADOIndex, ;
          oADOErrDescription, oADOCatalog, oADOTable, oADOStream, oADOConvert
   nConnection   := 1
   aADOConection := {}
   oADOConection := Array(10)
   cADORDD       := iif( cRDDName=NIL, "DBF", cRDDName )
   return cADORDD

*
*---------------------------------------------------------
#ifdef _ADO_Harbour_
Function ADOConnect( StrDriver )
   //PUBLIC aRecordSet, oRecordSet, nRecordSet, aIndexOrder, nIndexOrder, StrConnection, oADOConection, oADOErrDescription, oADOIndex, oADOCatalog, oADOTable
   aRecordSet         := {}
   oRecordSet         := Array(50)
   oADOIndex          := Array(10)
   nRecordSet         := 0
   aIndexOrder        := {}
   nIndexOrder        := 1
   StrConnection      := StrDriver
   AADD( aADOConection, StrDriver ) // Controla numero de conexoes
   nConnection        := len( aADOConection )
   oADOConection      := TOLEAUTO():New("ADODB.connection")
   oADOStream         := TOLEAUTO():New("ADODB.Stream")
   oADOErrDescription := TOLEAUTO():New("ADODB.Err")
   oADOIndex          := TOLEAUTO():New("ADOX.Index")
   oADOCatalog        := TOLEAUTO():New("ADOX.Catalog")
   oADOConvert        := TOLEAUTO():New("RSConvert.DBF")
   oADOConection:CommandTimeOut    := 200
   oADOConection:ConnectionTimeOut := 10
   oADOConection:CursorLocation    := adUseClient
   oADOConection:Mode              := adModeShareDenyNone // adModeRead 1, adModeWrite 2, adModeReadWrite 3
   //oADOConection:Provider := "MSDAORA"
   //oADOConection:Properties("Data Source"):Value := "MyOracleServer"
   //oADOConection:Properties("User ID"):Value     := "username"
   //oADOConection:Properties("Password"):Value    := "password"          
   oADOConection:Open( StrConnection )
   return 'connected'
   #endif _ADO_Harbour_

*
*---------------------------------------------------------
#ifdef _ADO_Harbour_
Function ADODBCREATE( cDatabase )
   oADOCreateCatalog := TOLEAUTO():New("ADOX.Catalog")
   StrConnection := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDatabase
   oADOCreateCatalog:Create( StrConnection )
   oADOCreateCatalog := nil
   return .t.

*
*---------------------------------------------------------
Function ADODBCREATESQL( cFname, aFields )
   LOCAL cTmp := ""
   cTmp := cTmp + "CREATE TABLE "+lower(cFname)+"("
   cTmp := cTmp + "RECNO INT NOT NULL AUTO_INCREMENT,"
   for i = 1 to len(aFields)
       cName := lower(aFields[i][1])
       cType := aFields[i][2]
       nLen  := aFields[i][3]
       nDec  := aFields[i][4]
       do case
           case cType == "C"
                cTmp := cTmp + " " + cName + " CHAR("+alltrim(str(nLen)) + "), "
           case cType == "M"
                cTmp := cTmp + " " + cName + " BLOB, "
           case cType == "L"
                cTmp := cTmp + " " + cName + " TINYINT(1), "
           case cType == "D"
                cTmp := cTmp + " " + cName + " DATE, "
           case cType == "N"
                if( nDec == 0 )
                    cTmp := cTmp + " " + cName + " INT("+alltrim(str(nLen)) + "), "
                else
                    cTmp := cTmp + " " + cName + " DOUBLE("+alltrim(str(nLen))+","+alltrim(str(nDec)) + "), "
                endif
       endcase        
   next        
   cTmp := cTmp + "PRIMARY KEY(RECNO) )" + CR
   ADO EXECUTE "DROP TABLE IF EXISTS "+lower(cFname)
   ADO EXECUTE cTmp
   return .t.

Function ADOCREATE( cTable, aFields )
   //local oADOTable := TOLEAUTO():New("ADOX.Table")
   //oADOCatalog:ActiveConnection := StrConnection
   //oADOTable:Name := cTable
   //for i = 1 to len( aFields )
   //    oADOTable:Columns:Append( aFields[i][1], GetFieldType(aFields[i][2]), aFields[i][3] )
   //next
   //oADOCatalog:Tables:Append( oADOTable )
   //oADOTable:Close()
   //oADOTable:End()
   //
   //oADOCreateCatalog := TOLEAUTO():New("ADOX.Catalog")
   //oADOCreateTable   := TOLEAUTO():New("ADOX.Table")
   //oADOCreateCatalog:Create( StrConnection )
   //oADOCreateTable:Name := cTable
   //for i = 1 to len( aFields )
   //    oADOCreateTable:Columns:Append( aFields[i][1], GetFieldType(aFields[i][2]) ) //, aFields[i][3] )
   //next
   //oADOCreateCatalog:Tables:Append( cTable )
   //return .t.
   #endif _ADO_Harbour_

*
*---------------------------------------------------------
#ifdef _ADO_Harbour_
Function ADOIndex( cTable, cIDXField, cIDXName, cIDXAscend )
   local adSortAscending := 1, adSortDescending := 2
   local oADOTable := TOLEAUTO():New("ADOX.Table")
   cIDXAscend := iif( cIDXAscend = nil, .t., cIDXAscend )
   if .not. ADOFILE( "INDEXES" )
      oADOCatalog:ActiveConnection := StrConnection
      oADOTable:Name := "INDEXES"
      oADOTable:Columns:Append( "NumField", adInteger, 20 )
      oADOTable:Columns:Append( "TextField", adVarWChar, 20 )
      oADOCatalog:Tables:Append( oADOTable )
   endif
   AADD( aIndexOrder, cTable )
   nIndexOrder        := len( aIndexOrder )
   oADOIndex[nIndexOrder] := TOLEAUTO():New("ADOX.Index")
   oADOIndex[nIndexOrder]:Name       := cIDXName
   oADOIndex[nIndexOrder]:Columns:Append( cIDXField )
   oADOIndex[nIndexOrder]:Columns( cIDXField ):SortOrder = iif( cIDXAscend, adSortAscending, adSortDescending )
   //oADOIndex[nIndexOrder]:PrimaryKey := .t.
   //oADOIndex[nIndexOrder]:Unique     := .t.
   oADOIndex[nIndexOrder]:IndexNulls := adIndexNullsAllow
   // Adciona o indice criado ao catalogo
   //oADOCatalog:Tables( cTable ) //:Indexes:Append( oADOIndex[nIndexOrder] )
   oADOTable:Indexes:Append( oADOIndex )
   oADOCatalog:Tables:Append( oADOTable )
   oADOTable:Close()
   oADOTable:End()
   return .t.
   #endif _ADO_Harbour_

*
*---------------------------------------------------------
#ifdef _ADO_Harbour_
Function ADOUse( cDatabase, lShared )
   local oError
   if "XML" $ cADORDD
      cDatabase := cDatabase + ".xml"
   endif
   if cADORDD = "XLS"
      cDatabase := "[" + cDatabase + "$]"
   endif
   if cDatabase = NIL
      oRecordSet[nRecordSet]:Close()
      oRecordSet[nRecordSet]:End()
   else
      AADD( aRecordSet, cDatabase )
      cRecordSet := cDatabase
      nRecordSet := len( aRecordSet )
      oRS := oRecordSet[nRecordSet] := TOleAuto():New( "ADODB.Recordset" )
      if "XML" $ cADORDD
         oRecordSet[nRecordSet]:Open( cDatabase, StrConnection, 1, 3 )
      else
         oRecordSet[nRecordSet]:CacheSize      := 50
         oRecordSet[nRecordSet]:CursorLocation := adUseClient
         if lShared = .t.
            oRecordSet[nRecordSet]:CursorType  := adOpenDynamic
            oRecordSet[nRecordSet]:LockType    := adLockOptimistic
         else
            oRecordSet[nRecordSet]:CursorType  := adOpenStatic
            oRecordSet[nRecordSet]:LockType    := adLockPessimistic
         endif
         oRecordSet[nRecordSet]:Open( "Select * from " + cDatabase, StrConnection, iif(lShared=.t.,3,1), 3 )
      endif
      ADOGOTOP() // oRecordSet[nRecordSet]:MoveFirst()
   endif
   //oRS := oRecordSet
   //ADOGetRows()
   * CursorType
   *
   * adOpenForwardOnly     0 O cursor so navega para frente. Bom para listar dados
   * adOpenKeyset          1 Nao permite ver os registro adicionados e eliminados
   * adOpenDynamic         2 Aceita todas operacoes do utilizador e dos outros
   * adOpenStatic          3 Serve apenas para procurar dados ou gerar relatorios
   *
   * LockTypeEnum - Contantes de Seguranca
   *
   * adLockReadOnly        1 Apenas pode ler os registros
   * adLockPessimistic     2 O fornecedor dos dados fecha o registro apos edicao
   * adLockOptimistic      3 O fornecedor dos dados fecha o registro apos chamar o update
   * adLockBatchOptimistic 4 O mesmo que Optmistic mas para sequencia de comandos
   return oRecordSet
   #endif _ADO_Harbour_

#ifdef _ADO_Harbour_
*
*---------------------------------------------------------
function ADOGetRows()
   cADOTMPConection := aRecordSet[nRecordSet]+".DBF" // cFilePath(GetModuleFileName(GetInstance()))+"TMP"+Alltrim(StrZero(Random(99999),5))+".DBF"
   aRSFNames := aRSFields := aRSData := {}
   nRSRCount := ADORecCount()
   nRSFCount := ADOFieldCount()
   for i = 0 to nRSFCount
       cRSFName := oRecordSet[nRecordSet]:Fields(i):Name
       cRSFType := TypeDat(oRecordSet[nRecordSet]:Fields(i):Type,cRSFName)
       nRSFLong := oRecordSet[nRecordSet]:Fields(i):DefinedSize
       nRSFDecm := oRecordSet[nRecordSet]:Fields(i):Precision
       if     cRSFType = "C" 
              aadd( aRSFields, { cRSFName, cRSFType, nRSFLong, nRSFDecm } )
       elseif cRSFType = "N" 
              aadd( aRSFields, { cRSFName, cRSFType, nRSFLong, nRSFDecm } )
       elseif cRSFType = "L" 
              aadd( aRSFields, { cRSFName, cRSFType, nRSFLong, nRSFDecm } )
       elseif cRSFType = "D" 
              aadd( aRSFields, { cRSFName, cRSFType, nRSFLong, nRSFDecm } )
       endif 
   next
   // Cria estrutura com base nas colunas do recordset e pega a estrutura
   dbCreate( cADOTMPConection, aRSFields )
   aDBFNames := dbStruct()
   // Cria array contendo os nomes de campos
   For i = 1 to len(aDBFNames)
       aadd( aRSFNames, aDBFNames[i][1] )
   next
   // Se existe o dbf temporario criado...
   if file(cADOTMPConection)
      oRecordSet[nRecordSet]:MoveFirst()
      dbUseArea(.T., Nil, cADOTMPConection, aRecordSet[nRecordSet], .F.)
      for ii = 1 to nRSRCount // Conta cada registro no recordset
          append blank
          For i = 0 to nRSFCount // conta cada coluna do recordset
              //cRSFName  := substr(oRecordSet[nRecordSet]:Fields(i):Name,1,10)
              //cRSFValue := oRecordSet[nRecordSet]:Fields(i):Value
              //replace &(cRSFName) with cRSFValue
              FieldPut( i+1, oRecordSet[nRecordSet]:Fields(i):Value )
          next
          commit
          oRecordSet[nRecordSet]:MoveNext()
      next
      dbGotop()
      //msgstop(len(aRSFNames),aRSFNames[1],aRSFNames[5])
      //aRSData := CopyToArray( aRSFNames )
      //use
   endif
   return aRSData

*
*---------------------------------------------------------
function ADO2GetRows()
   cADOTMPConection := cFilePath(GetModuleFileName(GetInstance()))+"TMP"+Alltrim(StrZero(Random(99999),5))+".DBF"
   ? len(oRecordSet[nRecordSet]:GetRows)
   aRSFNames := aRSFields := aRSData := {}
   nRSRCount := ADORecCount()
   nRSFCount := ADOFieldCount()
   For i = 1 to nRSFCount
       cRSFName := oRecordSet[nRecordSet]:Fields(i):Name
       cRSFType := TypeDat(oRecordSet[nRecordSet]:Fields(i):Type,cRSFName)
       nRSFLong := oRecordSet[nRecordSet]:Fields(i):DefinedSize
       nRSFDecm := oRecordSet[nRecordSet]:Fields(i):Precision
       aadd( aRSFields, { cRSFName, cRSFType, nRSFLong, nRSFDecm } )
   next
   dbCreate( cADOTMPConection, aRSFields )
   aDBFNames := dbStruct()
   For i = 1 to len(aDBFNames)
       aadd( aRSFNames, aDBFNames[i][1] )
   next
   if file(cADOTMPConection)
      oRecordSet[nRecordSet]:MoveFirst()
      dbUseArea(.T., Nil, cADOTMPConection, Nil, .F.)
      for ii = 1 to nRSRCount
          append blank
          For i = 1 to nRSFCount
              cRSFName  := substr(oRecordSet[nRecordSet]:Fields(i):Name,1,10)
              cRSFValue := oRecordSet[nRecordSet]:Fields(i):Value
              replace &(cRSFName) with cRSFValue
          next
          commit
          oRecordSet[nRecordSet]:MoveNext()
      next
      dbGotop()
      msgstop(len(aRSFNames),aRSFNames[1],aRSFNames[5])
      aRSData := CopyToArray( aRSFNames )
      use
   endif
   return aRSData

*
*---------------------------------------------------------
Function ADOFieldCount()
   return oRecordSet[nRecordSet]:Fields:Count()-1

*
*---------------------------------------------------------
function CopyToArray( PablkCampos, PblkFor, PBlkWhile )
   local cNumCampos := len(PablkCampos)
   local aVetor := {}
   local Tx
   for Tx = 1 to cNumCampos
       aadd( aVetor, {} )
   next
   PblkFor   := iif( PblkFor=NIL  , {||.t.}, PblkFor   )
   PBlkWhile := iif( PBlkWhile=NIL, {||.t.}, PBlkWhile )
   do while !eof() .and. eval(PBlkWhile)
      if eval( PBlkFor )
         Tx := 0
         for Tx = 1 to cNumCampos
            aadd( aVetor[Tx], eval(PablkCampos[Tx]) )
         next
      endif
      skip
   enddo
   return aVetor

*
*---------------------------------------------------------
Function ADOConnectRemote( StrDSN, StrServer )
   PUBLIC aRecordSet, oRecordSet, nRecordSet, aIndexOrder, nIndexOrder, StrConnection, oADOConection, oADOErrDescription, oADOIndex, oADOCatalog
   aRecordSet    := {}
   oRecordSet    := Array(50)
   oADOIndex     := Array(10)
   nRecordSet    := 0
   aIndexOrder   := {}
   nIndexOrder   := 1
   StrConnection := StrDriver
   oADOConection := TOLEAUTO():New("RDS.DataControl")
   oADOConection:ExecuteOptions := adcExecAsync
   oADOConection:Connect        := "DSN=" + StrDriver
   oADOConection:Server         := StrServer
   oADOConection:Refresh()
   return .t.
   #endif _ADO_Harbour_

*
*---------------------------------------------------------
Function ADOConnected()
   if !(valtype(oADOConection) = "O")
      return .f. // Nao foi definido o Objecto
   endif
   if valtype(oADOConection) = "L"
      return .f. // Se ja existe a variavel mas nao foi definida como Objeto
   endif
   cADOConectionState := oADOConection:State 
   return iif( cADOConectionState=1, .t., .f. )

*
*---------------------------------------------------------
Function ADOMsgAlert( cMsg )
   Alert( cMsg )
   return .t.

*
*---------------------------------------------------------
Function ADOSetDriver( StrDatabase, StrSenha, StrUsuario, StrServer, StrPort )
   //public cADORDD := iif( cRDDName=NIL, "DBASE", cRDDName )
   StrConnection := ""
   StrDriver     := ADORDDDefault()
   if StrDriver = "DBASE"
      StrConnection := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+StrDatabase+";Extended Properties=dBASE IV;"
   endif
   if StrDriver = "ACCESS" // ADOMDB
      StrConnection := "Provider= MicroSoft.Jet.OLEDB.4.0;Data Source="+StrDatabase+";"
   endif
   if StrDriver = "FIREBIRD" // ADOGDB
      StrConnection := "DRIVER=Firebird/InterBase(r) driver; UID="+StrSenha+"; PWD="+StrUsuario+"; DBNAME="+StrDatabase
   endif
   if StrDriver = "MYSQL" // ADOMySQL
      StrConnection := "driver={MySQL ODBC 3.51 Driver};database=" + StrDatabase + ;
                       ";server=" + StrServer + ;
                       ";uid=" + StrUsuario + ;
                       ";pwd=" + StrSenha + ;
                       ";option=35"
   endif
   if StrDriver = "PARADOX" // ADOPX
      StrConnection := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+StrDatabase+";Extended Properties=Paradox 5.x;" 
   endif
   if StrDriver = "SQL"
      StrConnection := "Provider=MSDASQL;Data Source=SQLExpress;User ID=Administrador;Password=konectiva;" 
   endif
   if ADORDDDefault() == "XMLDB" // ADOXML
      StrConnection := "Provider=MSPersist"
   endif
   if ADORDDDefault() == "XML" // ADOXML
      StrConnection := "Provider=MSDAOSP;Data Source=MSXML2.DSOControl.2.6"
   endif
   if StrDriver = "XLS" // ADOXLS
      StrConnection := [Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\adoxls.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"]
   endif
   if StrDriver = "REMOTE" // ADORDS
      StrConnection := "Provider=MS Remote;Remote Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+StrDatabase+";Remote Server=" + StrServer
   endif
   return StrConnection

*
*---------------------------------------------------------
Function ADORDDDefault()
   if cADORDD = nil
      cADORDD := "DBF"
   endif
   return cADORDD

*
*---------------------------------------------------------
Function ADOFile( cFile )
   if "XML" $ cADORDD .or. cADORDD = "XLS"
      return file( cFile )
   else
      oADOCatalog := oADOConection:OpenSchema(adSchemaTables)
      do while .not. oADOCatalog:EOF()
         if upper(alltrim(oADOCatalog:Fields( "TABLE_NAME" ):Value)) = upper(alltrim(cFile))
            return .t.
         endif
         oADOCatalog:MoveNext()
      enddo
   endif
   return .f.

*
*---------------------------------------------------------
Function ADOAlias()
   if nRecordSet < 1
      return ""
   else
      return aRecordSet[nRecordSet]
   endif

*
*---------------------------------------------------------
Function ADOFCount()
   if nRecordSet < 1
      return ""
   else
      return aRecordSet[nRecordSet]:Fields:Count()
   endif

*
*---------------------------------------------------------
Function ADOBEGINTRANSACTION()
   oADOConection:BeginTrans()
   return .t.

*
*---------------------------------------------------------
Function ADOCOMMITTRANSACTION()
   oADOConection:CommitTrans()
   return .t.

*
*---------------------------------------------------------
Function GetFieldType(FieldType)
   do Case
      Case FieldType = "C"
           return adVarWChar
      Case FieldType = "N"
           return adInteger
      Case FieldType = "M"
           return adText
      Case FieldType = "L"
           return adBoolean
      Case FieldType = "D"
           return adDate
   Endcase

*
*---------------------------------------------------------
Function ADOSetOrder( nIDXOrder )
   oRecordSet[nRecordSet]:Index = oADOIndex[nIDXOrder]:Name
   return .t.

*
*---------------------------------------------------------
Function ADODISConnect()
   oADOConection:Close()
   oADOErrDescription:Close()
   oADOIndex:Close()
   oADOCatalog:Close()
   oADOConection:End()
   oADOErrDescription:End()
   oADOIndex:End()
   oADOCatalog:End()
   return .t.

*
*---------------------------------------------------------
Function ADOAppend()
   oRecordSet[nRecordSet]:AddNew()
   return .t.

*
*---------------------------------------------------------
Function ADOEdit()
   oRecordSet[nRecordSet]:Edit()
   return .t.

*
*---------------------------------------------------------
Function ADOCommit( lSave )
   lSave := iif( lSave = nil, .f., lSave )
   oRecordSet[nRecordSet]:Update()
   if lSave
      oRecordSet[nRecordSet]:Save( alltrim(aRecordSet[nRecordSet]), adPersistXML )
   endif
   marca := oRecordSet[nRecordSet]:BookMark
   oRecordSet[nRecordSet]:Requery()
   oRecordSet[nRecordSet]:BookMark = marca
   return .t.

*
*---------------------------------------------------------
Function ADORequery()
   oRecordSet[nRecordSet]:Requery()
   return .t.

*
*---------------------------------------------------------
Function ADOReSync()
   oRecordSet[nRecordSet]:ReSync()
   return .t.

*
*---------------------------------------------------------
Function ADOUpdateBatch()
   oRecordSet[nRecordSet]:UpdateBatch()
   return .t.

*
*---------------------------------------------------------
Function ADOCommitAll()
   for i = 1 to len(aRecordSet)
       oRecordSet[nRecordSet]:Update()
   next
   return .t.

*
*---------------------------------------------------------
Function ADOSave( cfile, PersistFormat ) 
   //default PersistFormat := adPersistXML
   oRecordSet[nRecordSet]:Save( cFile, 1 ) //PersistFormat )
   return .t.

*
*---------------------------------------------------------
Function ADOConvert( cFile ) 
   oADOConvert:SaveRS( cFile, oRecordSet[nRecordSet] )
   return .t.

*
*---------------------------------------------------------
Function ADOReglock()
   //oRecordSet[nRecordSet]:CursorLocation := 2
   //oRecordSet[nRecordSet]:CursorType     := 0
   //oRecordSet[nRecordSet]:LockType       := 3
   return .t.

*
*---------------------------------------------------------
Function ADOSkip( nSkip )
   LOCAL nRec := oRecordSet[nRecordSet]:AbsolutePosition()
   oRecordSet[nRecordSet]:Move( iif( nSkip = nil, 1, nSkip ) )
   IF oRecordSet[nRecordSet]:EOF(); oRecordSet[nRecordSet]:MoveLast() ; ENDIF 
   IF oRecordSet[nRecordSet]:BOF(); oRecordSet[nRecordSet]:MoveFirst(); ENDIF 
   return oRecordSet[nRecordSet]:AbsolutePosition() - nRec

*
*---------------------------------------------------------
Function ADODelete()
   oRecordSet[nRecordSet]:Delete()
   oRecordSet[nRecordSet]:Move( -1 ) 
   if cADORDD == "XML" // ".XML" $ upper(aRecordSet[nRecordSet])
      oRecordSet[nRecordSet]:Save( alltrim(aRecordSet[nRecordSet]), adPersistXML )
   endif
   return .t.

*
*---------------------------------------------------------
Function ADOGoTo( nRec )
   //oRecordSet[nRecordSet]:BookMark :=  nRec 
   return .t.

*
*---------------------------------------------------------
Function ADOGoTop()
   if .not. ADOBof()
      if ADORecCount() > 0
         oRecordSet[nRecordSet]:MoveFirst()
      endif
   endif
   return .t.

*
*---------------------------------------------------------
Function ADOGoBottom()
   if .not. ADOEof()
      if ADORecCount() > 0
         oRecordSet[nRecordSet]:MoveLast()
      endif
   endif
   return .t.

*
*---------------------------------------------------------
Function ADOMoveNext()
   if .not. ADOEof()
      if ADORecCount() > 0
         oRecordSet[nRecordSet]:MoveNext()
      endif
   endif
   return .t.

*
*---------------------------------------------------------
Function ADORecno()
   if nRecordSet < 0
      return 0
   else
      return oRecordSet[nRecordSet]:AbsolutePosition()
   endif

*
*---------------------------------------------------------
Function ADORecCount()
   if nRecordSet < 1
      return 0
   else
      nRecord := oRecordSet[nRecordSet]:AbsolutePosition()
      nRecord := iif(nRecord=nil,-1,nRecord)
      if nRecord < 1 //.or. .not. ( oRecordSet[nRecordSet]:EOF() = oRecordSet[nRecordSet]:BOF() )
         return 0
      else
         return oRecordSet[nRecordSet]:RecordCount()
      endif
   endif

*
*---------------------------------------------------------
Function ADOSetFilter( xpr )
   if xpr = NIL
      oRecordSet[nRecordSet]:Filter := 0
   else
      oRecordSet[nRecordSet]:Filter := xpr
   endif
   return .t.

*
*---------------------------------------------------------
Function ADODeleted( criterio )
   if oRecordSet[nRecordSet]:Status = adRecDeleted
      return .t.
   endif
   return .f.

*
*---------------------------------------------------------
Function ADOClose()
   _RecordSet := len( aRecordSet )
   ADEL( aRecordSet, nRecordSet )
   ASIZE( aRecordSet, _RecordSet-1 )
   oRecordSet[nRecordSet]:End()
   return .t.

*
*---------------------------------------------------------
Function ADOCloseAll()
   for i = 1 to len(aRecordSet)
       oRecordSet[nRecordSet]:End()
   next
   aRecordSet := {}
   nRecordSet := 0
   return .t.

*
*---------------------------------------------------------
Function ADOExecute( cSql )
   aADODefines := {}
   AADD( aADODefines, { "VOID("   , "0(" } )
   AADD( aADODefines, { "BYTE("   , "1(" } )
   AADD( aADODefines, { "CHAR("   , "2(" } )
   AADD( aADODefines, { "WORD("   , "3(" } )
   AADD( aADODefines, { "INT("    , "7(" } )
   AADD( aADODefines, { "BOOLEAN(", "5(" } )
   AADD( aADODefines, { "HDC("    , "6(" } )
   AADD( aADODefines, { "LONG("   , "7(" } )
   AADD( aADODefines, { "STRING(" , "8(" } )
   AADD( aADODefines, { "LPSTR("  , "9(" } )
   AADD( aADODefines, { "PTR("    ,"10(" } )
   AADD( aADODefines, { "DOUBLE(" ,"11(" } )
   AADD( aADODefines, { "DWORD("  ,"12(" } )
   for i = 1 to len( aADODefines )
       cSql := StrTran( cSql, aADODefines[i][2], aADODefines[i][1] ) 
   next
   adolog( cSql )
   oADOConection:Execute( cSql )
   return .t.

*
*---------------------------------------------------------
Function ADOBOF()
   return iif( ADORecCount() > 0, oRecordSet[nRecordSet]:Bof, .t. )

*
*---------------------------------------------------------
Function ADOEOF()
   return iif( ADORecCount() > 0, oRecordSet[nRecordSet]:Eof, .t. )

*
*---------------------------------------------------------
Function ADOFOUND()
   return !oRecordSet[nRecordSet]:Eof

*
*---------------------------------------------------------
Function ADOFind( criterio )
   ADOLocate( criterio )
   return .t.

*
*---------------------------------------------------------
Function ADOLocate( criterio )
   local _nBookMark := oRecordSet[nRecordSet]:Bookmark 
   oRecordSet[nRecordSet]:MoveFirst() 
   oRecordSet[nRecordSet]:Find( criterio ) 
   if oRecordSet[nRecordSet]:Eof() 
      oRecordSet[nRecordSet]:BookMark := _nBookmark 
      return .f.
   else 
      return .t.
   endif

*
*---------------------------------------------------------
Function ADOSort( cField, nModo )
   if valtype(cField)='N'
      cField := oRecordSet[nRecordSet]:Fields( cStrField ):Name
   endi
   if cField = Nil
      Return upper(oRecordSet[nRecordSet]:Sort)
   else
      oRecordSet[nRecordSet]:Sort := cField + iif( nModo = NIL, " ASC", " DESC" )
      oRecordSet[nRecordSet]:MoveFirst() 
   endif
   return .t.

*
*---------------------------------------------------------
Function ADOFiles( cTable )
   return iif(oRecordSet[nRecordSet]:Table(cTable)==cTable,.t.,.f.)

*
*---------------------------------------------------------
Function ADOAREAS()
   return nRecordSet

*
*---------------------------------------------------------
Function ADOSelect( cRecordSet )
   if cRecordSet = nil
   else
      //oRecordSet[nRecordSet]:Close()
      if cADORDD = "XLS"
         cRecordSet := "[" + cRecordSet + "$]"
      endif
      nRecordSet := ASCAN( aRecordSet, cRecordSet )  
      nRecordSet := iif( nRecordSet = 0, 1, nRecordSet )
      //oRecordSet[nRecordSet]:Open( "Select * from " + cRecordSet, StrConnection, 3, 3 )
   endif
   //ADOGotop()
   return nRecordSet

*
*---------------------------------------------------------
Function ADOLOG( cMensagem )
   local nHandle
   if .not. file( "ADOERRO.TXT" )
      nHandle := fcreate("ADOERRO.TXT",0)
   else
      nHandle := fopen("ADOERRO.TXT",1)
      length  := fseek(nHandle,0,2)
      fseek(nHandle,length)
   endif
   fwrite(nHandle, cMensagem + chr(13) + chr(10) )
   fclose(nHandle)
   return NIL

*
*---------------------------------------------------------
Function ADOReplace( cCampo, xDado )
   LOCAL uVal,xValor,nTipo,cType,nLong,cQuery,lRepassa := .f., lBlob := .f.,;
         StrFileName
   uVal  := oRecordSet[nRecordSet]:Fields( cCampo ):Value
   nTipo := oRecordSet[nRecordSet]:Fields( cCampo ):Type
   cType := TypeDat(nTipo,cCampo)
   nLong := oRecordSet[nRecordSet]:Fields( cCampo ):DefinedSize
   if ! Empty( xDado )
      if ValType( xDado ) = 'D'
         if nTipo=  7 .or. nTipo=133 .or. nTipo=135
            if empty( xDado )
               xDado := date() 
            endif
            lRepassa := .t.
         endif
      endif
      if ValType( xDado ) = 'N'
         if nTipo=17 .or. nTipo= 14 .or. nTipo=  5 .or. nTipo=  3 .or. nTipo=131 .or. nTipo=  2 .or. nTipo=  6 .or. ;
            nTipo= 4 .or. nTipo=020 .or. nTipo=018 .or. nTipo=019 .or. nTipo= 21 .or. nTipo=138 .or. nTipo=139
            lRepassa := .t.
         endif
      endif
      if ValType( xDado ) = 'C'
         if nTipo=202 .or. nTipo=130 .or. nTipo=200 .or. nTipo=201 .or. nTipo=129 .or. nTipo= 72
            xDado := substr( xDado, 1, nLong )
            lRepassa := .t.
         endif
         if nTipo=201 .or. nTipo=203 .or. nTipo=205 .or. nTipo=128
            StrFileName := Alltrim(StrZero(ADORandom(99999999),8))+".APL"
            MemoWrit( StrFileName, xDado )
            lRepassa := .t.
            lBlob    := .t.
         endif
      endif
      if ValType( xDado ) = 'L'
         if nTipo= 11 .or. nTipo= 16
            lRepassa := .t.
         endif
      endif
      if ValType( xDado ) = 'M' .or. ValType( xDado ) = 'I'
         if nTipo=201 .or. nTipo=203 .or. nTipo=205 .or. nTipo=128
            lRepassa := .t.
            lBlob    := .t.
         endif
      endif
      if lRepassa
         //if lBlob // adolog( ccampo+"-"+ctype+"-"+strzero(ntipo,3)+"-"+ValType( xDado ) )
         //   oADOStream:Type := 1 // adTypeBinary
         //   oADOStream:Open()
         //   oADOStream:LoadFromFile( StrFileName )
         //   oRecordSet[nRecordSet]:Fields( cCampo ):Value := oADOStream:Read()
         //   oADOStream:Close()
         //else
            oRecordSet[nRecordSet]:Fields( cCampo ):Value := xDado
         //endif
         adolog( ccampo+"-"+ctype+"-"+strzero(ntipo,3)+"-"+ValType( xDado ) )
      endif
   endif
   return .t.

*
*---------------------------------------------------------
Function ADOField( cStrField )
   LOCAL uVal,nTipo,cType,nLong,xValor:=nil,StrFileName
   if valtype(cStrField)='C'
      cStrField := upper(alltrim(cStrField))
   endif
//?nRecordSet,oRecordSet[nRecordSet],cStrField:=lower(cStrField)
   if nRecordSet > 0
      uVal  := oRecordSet[nRecordSet]:Fields( cStrField ):Value
      nTipo := oRecordSet[nRecordSet]:Fields( cStrField ):Type
      cType := TypeDat(nTipo,cStrField)
      nLong := oRecordSet[nRecordSet]:Fields( cStrField ):DefinedSize
      //adolog( "Area:     "+str(nRecordSet,2)+CRLF+;
      //        "Campo:    "+ cStrField+CRLF+;
      //        "Tipo:     "+ctype+CRLF+;
      //        "Tipo(Num):"+strzero(ntipo,3)+CRLF+;
      //        "Conteudo: "+iif(ctype="C",uVal,"------")+CRLF )
      do case
         case cType='C'; xValor:=if(empty(uVal),spac(nLong),uVal+spac(nLong-len(uVal)))
         case cType='D'; xValor:=if(empty(uVal),ctod('')                    ,uVal)
         case cType='N'; xValor:=if(empty(uVal),0                           ,uVal)
         case cType='L'; xValor:=if(empty(uVal),.f.                         ,uVal)
         case cType='M' .or. cType='I'
              StrFileName := Alltrim(StrZero(ADORandom(99999999),8))+".APL"
              oADOStream:Type := 1 // adTypeBinary
              oADOStream:Open()
              oADOStream:Write( oRecordSet[nRecordSet]:Fields( cStrField ) )
              oADOStream:LoadFromFile( oRecordSet[nRecordSet]:Fields( StrFileName ), 2 ) // adSaveCreateOverWrite
              oADOStream:Close()
              xValor := MemoRead( StrFileName )
         otherwise     ; xValor:=         uVal
      endcase
   endif
   RETURN xValor

*
*---------------------------------------------------------
Function ADOFieldBlank( cStrField )
   LOCAL uVal,nTipo,cType,nLong,xValor:=nil
   if valtype(cStrField)='C'
      cStrField := upper(alltrim(cStrField))
   endif
   if nRecordSet > 0
      uVal  := oRecordSet[nRecordSet]:Fields( cStrField ):Value
      nTipo := oRecordSet[nRecordSet]:Fields( cStrField ):Type
      cType := TypeDat(nTipo,cStrField)
      nLong := oRecordSet[nRecordSet]:Fields( cStrField ):DefinedSize
      do case
         case cType='C'; xValor:=space(nLong)
         case cType='D'; xValor:=ctod('  /  /  ')
         case cType='N'; xValor:=0
         case cType='L'; xValor:=.f.
         otherwise     ; xValor:=''
      endcase
   endif
   RETURN xValor

*
*---------------------------------------------------------
Function TypeDat(nTipo,cField)
   do case
      case nTipo=8.or.nTipo=12.or.nTipo=72.or.nTipo=129.or.nTipo=130.or.(nTipo>=200.and.nTipo<=203)
           // adBSTR             8
           // adGUID             72
           // adChar             129
           // adWChar            130
           // adVarChar          200
           // adLongVarChar      201
           // adVarWChar         202
           // adLongVarWChar     203
           return 'C'

      case nTipo= 17.or.nTipo= 16.or.nTipo= 14.or.nTipo=  5.or.nTipo=  3.or.nTipo=131.or.nTipo= 2 .or.nTipo=  6.or.;
           nTipo=  4.or.nTipo=020.or.nTipo=018.or.nTipo=019.or.nTipo= 21.or.nTipo=138.or.nTipo=139
           // adSmallInt         2
           // adInteger          3
           // adSingle           4
           // adDouble           5
           // adCurrency         6
           // adDecimal          14
           // adTinyInt          16
           // adUnsignedTinyInt  17
           // adUnsignedSmallInt 18
           // adUnsignedInt      19
           // adBigInt           20
           // adUnsignedBigInt   21
           // adNumeric          131
           // adPropVariant      138
           // adVarNumeric       139
           return 'N' // Numerico

      case nTipo=  7.or.nTipo=64.or.nTipo=133.or.nTipo=134.or.nTipo=135
           // adDate             7
           // adFileTime         64
           // adDBDate           133
           // adDBTime           134
           // adDBTimeStamp      135
           return 'D' // Data

      case nTipo= 11
           // adBoolean          11
           return 'L' // Logico

      case nTipo=128.or.nTipo=201.or.nTipo=203.or.nTipo=205
           // adLongVarWChar     203
           // adPropVariant      138
           return 'M' // Memo

      case nTipo=128.or.nTipo=204.or.nTipo=205
           // adBinary           128
           // adVarBinary        204
           // adLongVarBinary    205
           return 'I' // Imagem

   otherwise
      alert('Tipo de dado invalido: Campo '+cField+' Type='+str(nTipo))
   endcase
   return 'U'

*
*---------------------------------------------------------
Function isRSEmpty()
   return ((oRecordSet[nRecordSet]:BOF()=.t.) .and. (oRecordSet[nRecordSet]:EOF()=.t.))

*
*---------------------------------------------------------
Function ADOGetSQL( sqlFileName )
   sqlFileName = sqlFileName + ".SQL"
   if file(sqlFileName)
      cSql := MemoRead( sqlFileName )
      oADOConection:Execute( cSql )
   endif 
   return nil

*
*---------------------------------------------------------
Function ADOUseRemote( cDatabase, lShared )
   local oError
   if cDatabase = NIL
      oRecordSet[nRecordSet]:Close()
   else
      AADD( aRecordSet, cDatabase )
      cRecordSet := cDatabase
      nRecordSet := len( aRecordSet )
      oRecordSet[nRecordSet] := oADOConection
      if cADORDD == "XML" // ".XML" $ upper(cDatabase)
         oRecordSet[nRecordSet]:Open( cDatabase, StrConnection, 1, 3 )
      else
         oRecordSet[nRecordSet]:CacheSize      := 50
         oRecordSet[nRecordSet]:CursorLocation := adUseClient
         if lShared = .t.
            oRecordSet[nRecordSet]:CursorType  := 1 // adOpenKeySet
            oRecordSet[nRecordSet]:LockType    := adLockBatchOptimistic
         else
            oRecordSet[nRecordSet]:CursorType  := adOpenStatic
            oRecordSet[nRecordSet]:LockType    := adLockPessimistic
         endif
         oRecordSet[nRecordSet]:Sql( "Select * from " + cDatabase, StrConnection )
      endif
      oRecordSet[nRecordSet]:MoveFirst()
   endif
   return .t.

function ADORandom( nMaximo )
   static nRandom
   local nTemporal
   nMaximo = if( nMaximo == NIL, 65535, nMaximo )
   if nRandom == NIL
      nRandom = seconds()
   endif
   nTemporal = ( nRandom * seconds() ) % ( nMaximo + 1 )
   nRandom = nTemporal + seconds()
   RETURN int( nTemporal )

Link to comment
Share on other sites

Rochinha, Compilando com xHarbour:




adoxb.ch(52) Error E0017 Ambiguous match pattern in #translate/#command

adoxb.ch(85) Warning W0001 Redefinition or duplicate definition of #define adLockReadOnly

adoxb.ch(86) Warning W0001 Redefinition or duplicate definition of #define adLockPessimistic

adoxb.ch(87) Warning W0001 Redefinition or duplicate definition of #define adLockOptimistic

adoxb.ch(88) Warning W0001 Redefinition or duplicate definition of #define adLockBatchOptimistic

FIREBIR3.prg(20) Warning W0001 Ambiguous reference: 'STRDATABASE'

FIREBIR3.prg(21) Warning W0001 Ambiguous reference: 'STRDATABASE'

FIREBIR3.prg(21) Warning W0001 Ambiguous reference: 'STRCONNECTION'

FIREBIR3.prg(25) Warning W0001 Ambiguous reference: 'STRCONNECTION'

FIREBIR3.prg(27) Warning W0001 Ambiguous reference: 'ORECORDSET'

FIREBIR3.prg(27) Warning W0001 Ambiguous reference: 'ORS'

FIREBIR3.prg(56) Warning W0001 Ambiguous reference: 'NREGISTROS'

FIREBIR3.prg(58) Warning W0001 Ambiguous reference: 'NREGISTROS'

FIREBIR3.prg(66) Warning W0001 Ambiguous reference: 'NREGISTROS'

FIREBIR3.prg(68) Warning W0001 Ambiguous reference: 'NREGISTROS'

FIREBIR3.prg(90) Warning W0001 Ambiguous reference: 'ORS'

FIREBIR3.prg(99) Warning W0001 Ambiguous reference: 'ORS'

FIREBIR3.prg(147) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(149) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(153) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(165) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(166) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(167) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(168) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(169) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(170) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(170) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(172) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(172) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(172) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(172) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(172) Warning W0001 Ambiguous reference: 'ODLG2'

FIREBIR3.prg(192) Warning W0001 Ambiguous reference: 'OFONT'

FIREBIR3.prg(193) Warning W0001 Ambiguous reference: 'OFONT'

FIREBIR3.prg(200) Warning W0001 Ambiguous reference: 'CRITERIO'

FIREBIR3.prg(219) Warning W0001 Ambiguous reference: 'OFONT'

FIREBIR3.prg(220) Warning W0001 Ambiguous reference: 'OFONT'

FIREBIR3.prg(254) Warning W0001 Ambiguous reference: 'OFONT'

FIREBIR3.prg(255) Warning W0001 Ambiguous reference: 'OFONT'

adoxb.ch(52) Error E0017 Ambiguous match pattern in #translate/#command

adoxb.ch(67) Warning W0001 Redefinition or duplicate definition of #define adLockReadOnly

adoxb.ch(68) Warning W0001 Redefinition or duplicate definition of #define adLockPessimistic

adoxb.ch(69) Warning W0001 Redefinition or duplicate definition of #define adLockOptimistic

adoxb.ch(70) Warning W0001 Redefinition or duplicate definition of #define adLockBatchOptimistic

adoxb.ch(73) Warning W0001 Redefinition or duplicate definition of #define adIndexNullsAllow

adoxb.ch(74) Warning W0001 Redefinition or duplicate definition of #define adIndexNullsDisallow

adoxb.ch(75) Warning W0001 Redefinition or duplicate definition of #define adIndexNullsIgnore

adoxb.ch(76) Warning W0001 Redefinition or duplicate definition of #define adIndexNullsIgnoreAny

adoxb.ch(79) Warning W0001 Redefinition or duplicate definition of #define adOpenForwardOnly

adoxb.ch(80) Warning W0001 Redefinition or duplicate definition of #define adOpenKeyset

adoxb.ch(81) Warning W0001 Redefinition or duplicate definition of #define adOpenDynamic

adoxb.ch(82) Warning W0001 Redefinition or duplicate definition of #define adOpenStatic

adoxb.ch(85) Warning W0001 Redefinition or duplicate definition of #define adLockReadOnly

adoxb.ch(86) Warning W0001 Redefinition or duplicate definition of #define adLockPessimistic

adoxb.ch(87) Warning W0001 Redefinition or duplicate definition of #define adLockOptimistic

adoxb.ch(88) Warning W0001 Redefinition or duplicate definition of #define adLockBatchOptimistic

adoxb.ch(91) Warning W0001 Redefinition or duplicate definition of #define adUseServer

adoxb.ch(92) Warning W0001 Redefinition or duplicate definition of #define adUseClient

adoxb.ch(95) Warning W0001 Redefinition or duplicate definition of #define adEmpty

adoxb.ch(96) Warning W0001 Redefinition or duplicate definition of #define adTinyInt

adoxb.ch(97) Warning W0001 Redefinition or duplicate definition of #define adSmallInt

adoxb.ch(98) Warning W0001 Redefinition or duplicate definition of #define adInteger

adoxb.ch(99) Warning W0001 Redefinition or duplicate definition of #define adBigInt

adoxb.ch(100) Warning W0001 Redefinition or duplicate definition of #define adUnsignedTinyInt

adoxb.ch(101) Warning W0001 Redefinition or duplicate definition of #define adUnsignedSmallInt

adoxb.ch(102) Warning W0001 Redefinition or duplicate definition of #define adUnsignedInt

adoxb.ch(103) Warning W0001 Redefinition or duplicate definition of #define adUnsignedBigInt

adoxb.ch(104) Warning W0001 Redefinition or duplicate definition of #define adSingle

adoxb.ch(105) Warning W0001 Redefinition or duplicate definition of #define adDouble

adoxb.ch(106) Warning W0001 Redefinition or duplicate definition of #define adCurrency

adoxb.ch(108) Warning W0001 Redefinition or duplicate definition of #define adDecimal

adoxb.ch(109) Warning W0001 Redefinition or duplicate definition of #define adNumeric

adoxb.ch(110) Warning W0001 Redefinition or duplicate definition of #define adBoolean

adoxb.ch(111) Warning W0001 Redefinition or duplicate definition of #define adError

adoxb.ch(112) Warning W0001 Redefinition or duplicate definition of #define adUserDefined

adoxb.ch(113) Warning W0001 Redefinition or duplicate definition of #define adVariant

adoxb.ch(114) Warning W0001 Redefinition or duplicate definition of #define adIDispatch

adoxb.ch(115) Warning W0001 Redefinition or duplicate definition of #define adIUnknown

adoxb.ch(116) Warning W0001 Redefinition or duplicate definition of #define adGUID

adoxb.ch(117) Warning W0001 Redefinition or duplicate definition of #define adDate

adoxb.ch(118) Warning W0001 Redefinition or duplicate definition of #define adDBDate

adoxb.ch(119) Warning W0001 Redefinition or duplicate definition of #define adDBTime

adoxb.ch(120) Warning W0001 Redefinition or duplicate definition of #define adDBTimeStamp

adoxb.ch(121) Warning W0001 Redefinition or duplicate definition of #define adBSTR

adoxb.ch(122) Warning W0001 Redefinition or duplicate definition of #define adChar

adoxb.ch(123) Warning W0001 Redefinition or duplicate definition of #define adVarChar

adoxb.ch(124) Warning W0001 Redefinition or duplicate definition of #define adLongVarChar

adoxb.ch(125) Warning W0001 Redefinition or duplicate definition of #define adWChar

adoxb.ch(126) Warning W0001 Redefinition or duplicate definition of #define adVarWChar

adoxb.ch(127) Warning W0001 Redefinition or duplicate definition of #define adLongVarWChar

adoxb.ch(128) Warning W0001 Redefinition or duplicate definition of #define adBinary

adoxb.ch(129) Warning W0001 Redefinition or duplicate definition of #define adVarBinary

adoxb.ch(130) Warning W0001 Redefinition or duplicate definition of #define adLongVarBinary

adoxb.ch(131) Warning W0001 Redefinition or duplicate definition of #define adChapter

adoxb.ch(132) Warning W0001 Redefinition or duplicate definition of #define adFileTime

adoxb.ch(133) Warning W0001 Redefinition or duplicate definition of #define adPropVariant

adoxb.ch(134) Warning W0001 Redefinition or duplicate definition of #define adVarNumeric

adoxb.ch(135) Warning W0001 Redefinition or duplicate definition of #define adArray

adoxb.ch(138) Warning W0001 Redefinition or duplicate definition of #define adGetRowsRest

adoxb.ch(141) Warning W0001 Redefinition or duplicate definition of #define adPosUnknown

adoxb.ch(142) Warning W0001 Redefinition or duplicate definition of #define adPosBOF

adoxb.ch(143) Warning W0001 Redefinition or duplicate definition of #define adPosEOF

adoxb.ch(146) Warning W0001 Redefinition or duplicate definition of #define adBookmarkCurrent

adoxb.ch(147) Warning W0001 Redefinition or duplicate definition of #define adBookmarkFirst

adoxb.ch(148) Warning W0001 Redefinition or duplicate definition of #define adBookmarkLast

adoxb.ch(151) Warning W0001 Redefinition or duplicate definition of #define adMarshalAll

adoxb.ch(152) Warning W0001 Redefinition or duplicate definition of #define adMarshalModifiedOnly

adoxb.ch(155) Warning W0001 Redefinition or duplicate definition of #define adAffectCurrent

adoxb.ch(156) Warning W0001 Redefinition or duplicate definition of #define adAffectGroup

adoxb.ch(157) Warning W0001 Redefinition or duplicate definition of #define adAffectAllChapters

adoxb.ch(160) Warning W0001 Redefinition or duplicate definition of #define adResyncUnderlyingValues

adoxb.ch(161) Warning W0001 Redefinition or duplicate definition of #define adResyncAllValues

adoxb.ch(164) Warning W0001 Redefinition or duplicate definition of #define adCompareLessThan

adoxb.ch(165) Warning W0001 Redefinition or duplicate definition of #define adCompareEqual

adoxb.ch(166) Warning W0001 Redefinition or duplicate definition of #define adCompareGreaterThan

adoxb.ch(167) Warning W0001 Redefinition or duplicate definition of #define adCompareNotEqual

adoxb.ch(168) Warning W0001 Redefinition or duplicate definition of #define adCompareNotComparable

adoxb.ch(171) Warning W0001 Redefinition or duplicate definition of #define adFilterNone

adoxb.ch(172) Warning W0001 Redefinition or duplicate definition of #define adFilterPendingRecords

adoxb.ch(173) Warning W0001 Redefinition or duplicate definition of #define adFilterAffectedRecords

adoxb.ch(174) Warning W0001 Redefinition or duplicate definition of #define adFilterFetchedRecords

adoxb.ch(175) Warning W0001 Redefinition or duplicate definition of #define adFilterConflictingRecords

adoxb.ch(178) Warning W0001 Redefinition or duplicate definition of #define adSearchForward

adoxb.ch(179) Warning W0001 Redefinition or duplicate definition of #define adSearchBackward

adoxb.ch(182) Warning W0001 Redefinition or duplicate definition of #define adPersistADTG

adoxb.ch(183) Warning W0001 Redefinition or duplicate definition of #define adPersistXML

adoxb.ch(186) Warning W0001 Redefinition or duplicate definition of #define adClipString

adoxb.ch(189) Warning W0001 Redefinition or duplicate definition of #define adPromptAlways

adoxb.ch(190) Warning W0001 Redefinition or duplicate definition of #define adPromptComplete

adoxb.ch(191) Warning W0001 Redefinition or duplicate definition of #define adPromptCompleteRequired

adoxb.ch(192) Warning W0001 Redefinition or duplicate definition of #define adPromptNever

adoxb.ch(195) Warning W0001 Redefinition or duplicate definition of #define adModeUnknown

adoxb.ch(196) Warning W0001 Redefinition or duplicate definition of #define adModeRead

adoxb.ch(197) Warning W0001 Redefinition or duplicate definition of #define adModeWrite

adoxb.ch(198) Warning W0001 Redefinition or duplicate definition of #define adModeReadWrite

adoxb.ch(199) Warning W0001 Redefinition or duplicate definition of #define adModeShareDenyRead

adoxb.ch(200) Warning W0001 Redefinition or duplicate definition of #define adModeShareDenyWrite

adoxb.ch(201) Warning W0001 Redefinition or duplicate definition of #define adModeShareExclusive

adoxb.ch(202) Warning W0001 Redefinition or duplicate definition of #define adModeShareDenyNone

adoxb.ch(205) Warning W0001 Redefinition or duplicate definition of #define adRsnAddNew

adoxb.ch(206) Warning W0001 Redefinition or duplicate definition of #define adRsnDelete

adoxb.ch(207) Warning W0001 Redefinition or duplicate definition of #define adRsnUpdate

adoxb.ch(208) Warning W0001 Redefinition or duplicate definition of #define adRsnUndoUpdate

adoxb.ch(209) Warning W0001 Redefinition or duplicate definition of #define adRsnUndoAddNew

adoxb.ch(210) Warning W0001 Redefinition or duplicate definition of #define adRsnUndoDelete

adoxb.ch(211) Warning W0001 Redefinition or duplicate definition of #define adRsnRequery

adoxb.ch(212) Warning W0001 Redefinition or duplicate definition of #define adRsnResynch

adoxb.ch(213) Warning W0001 Redefinition or duplicate definition of #define adRsnClose

adoxb.ch(214) Warning W0001 Redefinition or duplicate definition of #define adRsnMove

adoxb.ch(215) Warning W0001 Redefinition or duplicate definition of #define adRsnFirstChange

adoxb.ch(216) Warning W0001 Redefinition or duplicate definition of #define adRsnMoveFirst

adoxb.ch(217) Warning W0001 Redefinition or duplicate definition of #define adRsnMoveNext

adoxb.ch(218) Warning W0001 Redefinition or duplicate definition of #define adRsnMovePrevious

adoxb.ch(219) Warning W0001 Redefinition or duplicate definition of #define adRsnMoveLast

adoxb.ch(222) Warning W0001 Redefinition or duplicate definition of #define adSchemaProviderSpecific

adoxb.ch(223) Warning W0001 Redefinition or duplicate definition of #define adSchemaAsserts

adoxb.ch(224) Warning W0001 Redefinition or duplicate definition of #define adSchemaCatalogs

adoxb.ch(225) Warning W0001 Redefinition or duplicate definition of #define adSchemaCharacterSets

adoxb.ch(226) Warning W0001 Redefinition or duplicate definition of #define adSchemaCollations

adoxb.ch(227) Warning W0001 Redefinition or duplicate definition of #define adSchemaColumns

adoxb.ch(228) Warning W0001 Redefinition or duplicate definition of #define adSchemaCheckConstraints

adoxb.ch(229) Warning W0001 Redefinition or duplicate definition of #define adSchemaConstraintColumnUsage

adoxb.ch(230) Warning W0001 Redefinition or duplicate definition of #define adSchemaConstraintTableUsage

adoxb.ch(231) Warning W0001 Redefinition or duplicate definition of #define adSchemaKeyColumnUsage

adoxb.ch(232) Warning W0001 Redefinition or duplicate definition of #define adSchemaReferentialConstraints

adoxb.ch(233) Warning W0001 Redefinition or duplicate definition of #define adSchemaTableConstraints

adoxb.ch(234) Warning W0001 Redefinition or duplicate definition of #define adSchemaColumnsDomainUsage

adoxb.ch(235) Warning W0001 Redefinition or duplicate definition of #define adSchemaIndexes

adoxb.ch(236) Warning W0001 Redefinition or duplicate definition of #define adSchemaColumnPrivileges

adoxb.ch(237) Warning W0001 Redefinition or duplicate definition of #define adSchemaTablePrivileges

adoxb.ch(238) Warning W0001 Redefinition or duplicate definition of #define adSchemaUsagePrivileges

adoxb.ch(239) Warning W0001 Redefinition or duplicate definition of #define adSchemaProcedures

adoxb.ch(240) Warning W0001 Redefinition or duplicate definition of #define adSchemaSchemata

adoxb.ch(241) Warning W0001 Redefinition or duplicate definition of #define adSchemaSQLLanguages

adoxb.ch(242) Warning W0001 Redefinition or duplicate definition of #define adSchemaStatistics

adoxb.ch(243) Warning W0001 Redefinition or duplicate definition of #define adSchemaTables

adoxb.ch(244) Warning W0001 Redefinition or duplicate definition of #define adSchemaTranslations

adoxb.ch(245) Warning W0001 Redefinition or duplicate definition of #define adSchemaProviderTypes

adoxb.ch(246) Warning W0001 Redefinition or duplicate definition of #define adSchemaViews

adoxb.ch(247) Warning W0001 Redefinition or duplicate definition of #define adSchemaViewColumnUsage

adoxb.ch(248) Warning W0001 Redefinition or duplicate definition of #define adSchemaViewTableUsage

adoxb.ch(249) Warning W0001 Redefinition or duplicate definition of #define adSchemaProcedureParameters

adoxb.ch(250) Warning W0001 Redefinition or duplicate definition of #define adSchemaForeignKeys

adoxb.ch(251) Warning W0001 Redefinition or duplicate definition of #define adSchemaPrimaryKeys

adoxb.ch(252) Warning W0001 Redefinition or duplicate definition of #define adSchemaProcedureColumns

adoxb.ch(253) Warning W0001 Redefinition or duplicate definition of #define adSchemaDBInfoKeywords

adoxb.ch(254) Warning W0001 Redefinition or duplicate definition of #define adSchemaDBInfoLiterals

adoxb.ch(255) Warning W0001 Redefinition or duplicate definition of #define adSchemaCubes

adoxb.ch(256) Warning W0001 Redefinition or duplicate definition of #define adSchemaDimensions

adoxb.ch(257) Warning W0001 Redefinition or duplicate definition of #define adSchemaHierarchies

adoxb.ch(258) Warning W0001 Redefinition or duplicate definition of #define adSchemaLevels

adoxb.ch(259) Warning W0001 Redefinition or duplicate definition of #define adSchemaMeasures

adoxb.ch(260) Warning W0001 Redefinition or duplicate definition of #define adSchemaProperties

adoxb.ch(261) Warning W0001 Redefinition or duplicate definition of #define adSchemaMembers

adoxb.ch(262) Warning W0001 Redefinition or duplicate definition of #define adSchemaTrustees

adoxb.ch(265) Warning W0001 Redefinition or duplicate definition of #define adFieldOK

adoxb.ch(266) Warning W0001 Redefinition or duplicate definition of #define adFieldCantConvertValue

adoxb.ch(267) Warning W0001 Redefinition or duplicate definition of #define adFieldIsNull

adoxb.ch(268) Warning W0001 Redefinition or duplicate definition of #define adFieldTruncated

adoxb.ch(269) Warning W0001 Redefinition or duplicate definition of #define adFieldSignMismatch

adoxb.ch(270) Warning W0001 Redefinition or duplicate definition of #define adFieldDataOverflow

adoxb.ch(271) Warning W0001 Redefinition or duplicate definition of #define adFieldCantCreate

adoxb.ch(272) Warning W0001 Redefinition or duplicate definition of #define adFieldUnavailable

adoxb.ch(273) Warning W0001 Redefinition or duplicate definition of #define adFieldPermissionDenied

adoxb.ch(274) Warning W0001 Redefinition or duplicate definition of #define adFieldIntegrityViolation

adoxb.ch(275) Warning W0001 Redefinition or duplicate definition of #define adFieldSchemaViolation

adoxb.ch(276) Warning W0001 Redefinition or duplicate definition of #define adFieldBadStatus

adoxb.ch(277) Warning W0001 Redefinition or duplicate definition of #define adFieldDefault

adoxb.ch(278) Warning W0001 Redefinition or duplicate definition of #define adFieldIgnore

adoxb.ch(279) Warning W0001 Redefinition or duplicate definition of #define adFieldDoesNotExist

adoxb.ch(280) Warning W0001 Redefinition or duplicate definition of #define adFieldInvalidURL

adoxb.ch(281) Warning W0001 Redefinition or duplicate definition of #define adFieldResourceLocked

adoxb.ch(282) Warning W0001 Redefinition or duplicate definition of #define adFieldResourceExists

adoxb.ch(283) Warning W0001 Redefinition or duplicate definition of #define adFieldCannotComplete

adoxb.ch(284) Warning W0001 Redefinition or duplicate definition of #define adFieldVolumeNotFound

adoxb.ch(285) Warning W0001 Redefinition or duplicate definition of #define adFieldOutOfSpace

adoxb.ch(286) Warning W0001 Redefinition or duplicate definition of #define adFieldCannotDeleteSource

adoxb.ch(287) Warning W0001 Redefinition or duplicate definition of #define adFieldReadOnly

adoxb.ch(288) Warning W0001 Redefinition or duplicate definition of #define adFieldResourceOutOfScope

adoxb.ch(289) Warning W0001 Redefinition or duplicate definition of #define adFieldAlreadyExists

adoxb.ch(290) Warning W0001 Redefinition or duplicate definition of #define adFieldPendingInsert

adoxb.ch(291) Warning W0001 Redefinition or duplicate definition of #define adFieldPendingDelete

adoxb.ch(292) Warning W0001 Redefinition or duplicate definition of #define adFieldPendingChange

adoxb.ch(293) Warning W0001 Redefinition or duplicate definition of #define adFieldPendingUnknown

adoxb.ch(294) Warning W0001 Redefinition or duplicate definition of #define adFieldPendingUnknownDelete

adoxb.ch(297) Warning W0001 Redefinition or duplicate definition of #define adSeekFirstEQ

adoxb.ch(298) Warning W0001 Redefinition or duplicate definition of #define adSeekLastEQ

adoxb.ch(299) Warning W0001 Redefinition or duplicate definition of #define adSeekAfterEQ

adoxb.ch(300) Warning W0001 Redefinition or duplicate definition of #define adSeekAfter

adoxb.ch(301) Warning W0001 Redefinition or duplicate definition of #define adSeekBeforeEQ

adoxb.ch(302) Warning W0001 Redefinition or duplicate definition of #define adSeekBefore

adoxb.ch(305) Warning W0001 Redefinition or duplicate definition of #define adCriteriaKey

adoxb.ch(306) Warning W0001 Redefinition or duplicate definition of #define adCriteriaAllCols

adoxb.ch(307) Warning W0001 Redefinition or duplicate definition of #define adCriteriaUpdCols

adoxb.ch(308) Warning W0001 Redefinition or duplicate definition of #define adCriteriaTimeStamp

adoxb.ch(311) Warning W0001 Redefinition or duplicate definition of #define adPriorityLowest

adoxb.ch(312) Warning W0001 Redefinition or duplicate definition of #define adPriorityBelowNormal

adoxb.ch(313) Warning W0001 Redefinition or duplicate definition of #define adPriorityNormal

adoxb.ch(314) Warning W0001 Redefinition or duplicate definition of #define adPriorityAboveNormal

adoxb.ch(315) Warning W0001 Redefinition or duplicate definition of #define adPriorityHighest

adoxb.ch(318) Warning W0001 Redefinition or duplicate definition of #define adRecalcUpFront

adoxb.ch(319) Warning W0001 Redefinition or duplicate definition of #define adRecalcAlways

adoxb.ch(326) Warning W0001 Redefinition or duplicate definition of #define adMoveUnspecified

adoxb.ch(327) Warning W0001 Redefinition or duplicate definition of #define adMoveOverWrite

adoxb.ch(328) Warning W0001 Redefinition or duplicate definition of #define adMoveDontUpdateLinks

adoxb.ch(329) Warning W0001 Redefinition or duplicate definition of #define adMoveAllowEmulation

adoxb.ch(332) Warning W0001 Redefinition or duplicate definition of #define adCopyUnspecified

adoxb.ch(333) Warning W0001 Redefinition or duplicate definition of #define adCopyOverWrite

adoxb.ch(334) Warning W0001 Redefinition or duplicate definition of #define adCopyAllowEmulation

adoxb.ch(335) Warning W0001 Redefinition or duplicate definition of #define adCopyNonRecursive

adoxb.ch(338) Warning W0001 Redefinition or duplicate definition of #define adTypeBinary

adoxb.ch(339) Warning W0001 Redefinition or duplicate definition of #define adTypeText

adoxb.ch(342) Warning W0001 Redefinition or duplicate definition of #define adLF

adoxb.ch(343) Warning W0001 Redefinition or duplicate definition of #define adCR

adoxb.ch(344) Warning W0001 Redefinition or duplicate definition of #define adCRLF

adoxb.ch(347) Warning W0001 Redefinition or duplicate definition of #define adOpenStreamUnspecified

adoxb.ch(348) Warning W0001 Redefinition or duplicate definition of #define adOpenStreamAsync

adoxb.ch(349) Warning W0001 Redefinition or duplicate definition of #define adOpenStreamFromRecord

adoxb.ch(352) Warning W0001 Redefinition or duplicate definition of #define adWriteChar

adoxb.ch(353) Warning W0001 Redefinition or duplicate definition of #define adWriteLine

adoxb.ch(356) Warning W0001 Redefinition or duplicate definition of #define adSaveCreateNotExist

adoxb.ch(357) Warning W0001 Redefinition or duplicate definition of #define adSaveCreateOverWrite

adoxb.ch(360) Warning W0001 Redefinition or duplicate definition of #define adDefaultStream

adoxb.ch(361) Warning W0001 Redefinition or duplicate definition of #define adRecordURL

adoxb.ch(364) Warning W0001 Redefinition or duplicate definition of #define adReadAll

adoxb.ch(365) Warning W0001 Redefinition or duplicate definition of #define adReadLine

adoxb.ch(368) Warning W0001 Redefinition or duplicate definition of #define adSimpleRecord

adoxb.ch(369) Warning W0001 Redefinition or duplicate definition of #define adCollectionRecord

adoxb.ch(370) Warning W0001 Redefinition or duplicate definition of #define adStructDoc

adoxb.prg(36) Warning W0001 Ambiguous reference: 'NCONNECTION'

adoxb.prg(37) Warning W0001 Ambiguous reference: 'AADOCONECTION'

adoxb.prg(38) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(39) Warning W0001 Ambiguous reference: 'CADORDD'

adoxb.prg(40) Warning W0001 Ambiguous reference: 'CADORDD'

adoxb.prg(47) Warning W0001 Ambiguous reference: 'ARECORDSET'

adoxb.prg(48) Warning W0001 Ambiguous reference: 'ORECORDSET'

adoxb.prg(49) Warning W0001 Ambiguous reference: 'OADOINDEX'

adoxb.prg(50) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(51) Warning W0001 Ambiguous reference: 'AINDEXORDER'

adoxb.prg(52) Warning W0001 Ambiguous reference: 'NINDEXORDER'

adoxb.prg(53) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(54) Warning W0001 Ambiguous reference: 'AADOCONECTION'

adoxb.prg(55) Warning W0001 Ambiguous reference: 'AADOCONECTION'

adoxb.prg(55) Warning W0001 Ambiguous reference: 'NCONNECTION'

adoxb.prg(56) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(57) Warning W0001 Ambiguous reference: 'OADOSTREAM'

adoxb.prg(58) Warning W0001 Ambiguous reference: 'OADOERRDESCRIPTION'

adoxb.prg(59) Warning W0001 Ambiguous reference: 'OADOINDEX'

adoxb.prg(60) Warning W0001 Ambiguous reference: 'OADOCATALOG'

adoxb.prg(61) Warning W0001 Ambiguous reference: 'OADOCONVERT'

adoxb.prg(62) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(63) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(64) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(65) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(70) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(70) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(78) Warning W0001 Ambiguous reference: 'OADOCREATECATALOG'

adoxb.prg(79) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(80) Warning W0001 Ambiguous reference: 'OADOCREATECATALOG'

adoxb.prg(80) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(81) Warning W0001 Ambiguous reference: 'OADOCREATECATALOG'

adoxb.prg(90) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(90) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(91) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(91) Warning W0001 Ambiguous reference: 'CNAME'

adoxb.prg(92) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(92) Warning W0001 Ambiguous reference: 'CTYPE'

adoxb.prg(93) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(93) Warning W0001 Ambiguous reference: 'NLEN'

adoxb.prg(94) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(94) Warning W0001 Ambiguous reference: 'NDEC'

adoxb.prg(96) Warning W0001 Ambiguous reference: 'CTYPE'

adoxb.prg(97) Warning W0001 Ambiguous reference: 'CNAME'

adoxb.prg(97) Warning W0001 Ambiguous reference: 'NLEN'

adoxb.prg(98) Warning W0001 Ambiguous reference: 'CTYPE'

adoxb.prg(99) Warning W0001 Ambiguous reference: 'CNAME'

adoxb.prg(100) Warning W0001 Ambiguous reference: 'CTYPE'

adoxb.prg(101) Warning W0001 Ambiguous reference: 'CNAME'

adoxb.prg(102) Warning W0001 Ambiguous reference: 'CTYPE'

adoxb.prg(103) Warning W0001 Ambiguous reference: 'CNAME'

adoxb.prg(104) Warning W0001 Ambiguous reference: 'CTYPE'

adoxb.prg(105) Warning W0001 Ambiguous reference: 'NDEC'

adoxb.prg(106) Warning W0001 Ambiguous reference: 'CNAME'

adoxb.prg(106) Warning W0001 Ambiguous reference: 'NLEN'

adoxb.prg(108) Warning W0001 Ambiguous reference: 'CNAME'

adoxb.prg(108) Warning W0001 Ambiguous reference: 'NLEN'

adoxb.prg(108) Warning W0001 Ambiguous reference: 'NDEC'

adoxb.prg(111) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(111) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(112) Warning W0001 Ambiguous reference: 'CR'

adoxb.prg(142) Warning W0007 Function 'ADOCREATE' does not end with RETURN statement

adoxb.prg(147) Warning W0001 Ambiguous reference: 'OADOCATALOG'

adoxb.prg(147) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(151) Warning W0001 Ambiguous reference: 'OADOCATALOG'

adoxb.prg(153) Warning W0001 Ambiguous reference: 'AINDEXORDER'

adoxb.prg(154) Warning W0001 Ambiguous reference: 'AINDEXORDER'

adoxb.prg(154) Warning W0001 Ambiguous reference: 'NINDEXORDER'

adoxb.prg(155) Warning W0001 Ambiguous reference: 'OADOINDEX'

adoxb.prg(155) Warning W0001 Ambiguous reference: 'NINDEXORDER'

adoxb.prg(156) Warning W0002 Ambiguous reference, assuming memvar: 'OADOINDEX'

adoxb.prg(156) Warning W0001 Ambiguous reference: 'NINDEXORDER'

adoxb.prg(157) Warning W0002 Ambiguous reference, assuming memvar: 'OADOINDEX'

adoxb.prg(157) Warning W0001 Ambiguous reference: 'NINDEXORDER'

adoxb.prg(158) Warning W0002 Ambiguous reference, assuming memvar: 'OADOINDEX'

adoxb.prg(158) Warning W0001 Ambiguous reference: 'NINDEXORDER'

adoxb.prg(161) Warning W0002 Ambiguous reference, assuming memvar: 'OADOINDEX'

adoxb.prg(161) Warning W0001 Ambiguous reference: 'NINDEXORDER'

adoxb.prg(164) Warning W0001 Ambiguous reference: 'OADOINDEX'

adoxb.prg(165) Warning W0001 Ambiguous reference: 'OADOCATALOG'

adoxb.prg(176) Warning W0001 Ambiguous reference: 'CADORDD'

adoxb.prg(179) Warning W0001 Ambiguous reference: 'CADORDD'

adoxb.prg(183) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(183) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(184) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(184) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(186) Warning W0001 Ambiguous reference: 'ARECORDSET'

adoxb.prg(187) Warning W0001 Ambiguous reference: 'CRECORDSET'

adoxb.prg(188) Warning W0001 Ambiguous reference: 'ARECORDSET'

adoxb.prg(188) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(189) Warning W0001 Ambiguous reference: 'ORECORDSET'

adoxb.prg(189) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(189) Warning W0001 Ambiguous reference: 'ORS'

adoxb.prg(190) Warning W0001 Ambiguous reference: 'CADORDD'

adoxb.prg(191) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(191) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(191) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(193) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(193) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(194) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(194) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(196) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(196) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(197) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(197) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(199) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(199) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(200) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(200) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(202) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(202) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(202) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(221) Warning W0001 Ambiguous reference: 'ORECORDSET'

adoxb.prg(228) Warning W0002 Ambiguous reference, assuming memvar: 'ARECORDSET'

adoxb.prg(228) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(228) Warning W0001 Ambiguous reference: 'CADOTMPCONECTION'

adoxb.prg(229) Warning W0001 Ambiguous reference: 'ARSDATA'

adoxb.prg(229) Warning W0001 Ambiguous reference: 'ARSFIELDS'

adoxb.prg(229) Warning W0001 Ambiguous reference: 'ARSFNAMES'

adoxb.prg(230) Warning W0001 Ambiguous reference: 'NRSRCOUNT'

adoxb.prg(231) Warning W0001 Ambiguous reference: 'NRSFCOUNT'

adoxb.prg(232) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(232) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(232) Warning W0001 Ambiguous reference: 'NRSFCOUNT'

adoxb.prg(233) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(233) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(233) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(233) Warning W0001 Ambiguous reference: 'CRSFNAME'

adoxb.prg(234) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(234) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(234) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(234) Warning W0001 Ambiguous reference: 'CRSFNAME'

adoxb.prg(234) Warning W0001 Ambiguous reference: 'CRSFTYPE'

adoxb.prg(235) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(235) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(235) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(235) Warning W0001 Ambiguous reference: 'NRSFLONG'

adoxb.prg(236) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(236) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(236) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(236) Warning W0001 Ambiguous reference: 'NRSFDECM'

adoxb.prg(237) Warning W0001 Ambiguous reference: 'CRSFTYPE'

adoxb.prg(238) Warning W0001 Ambiguous reference: 'ARSFIELDS'

adoxb.prg(238) Warning W0001 Ambiguous reference: 'CRSFNAME'

adoxb.prg(238) Warning W0001 Ambiguous reference: 'CRSFTYPE'

adoxb.prg(238) Warning W0001 Ambiguous reference: 'NRSFLONG'

adoxb.prg(238) Warning W0001 Ambiguous reference: 'NRSFDECM'

adoxb.prg(239) Warning W0001 Ambiguous reference: 'CRSFTYPE'

adoxb.prg(240) Warning W0001 Ambiguous reference: 'ARSFIELDS'

adoxb.prg(240) Warning W0001 Ambiguous reference: 'CRSFNAME'

adoxb.prg(240) Warning W0001 Ambiguous reference: 'CRSFTYPE'

adoxb.prg(240) Warning W0001 Ambiguous reference: 'NRSFLONG'

adoxb.prg(240) Warning W0001 Ambiguous reference: 'NRSFDECM'

adoxb.prg(241) Warning W0001 Ambiguous reference: 'CRSFTYPE'

adoxb.prg(242) Warning W0001 Ambiguous reference: 'ARSFIELDS'

adoxb.prg(242) Warning W0001 Ambiguous reference: 'CRSFNAME'

adoxb.prg(242) Warning W0001 Ambiguous reference: 'CRSFTYPE'

adoxb.prg(242) Warning W0001 Ambiguous reference: 'NRSFLONG'

adoxb.prg(242) Warning W0001 Ambiguous reference: 'NRSFDECM'

adoxb.prg(243) Warning W0001 Ambiguous reference: 'CRSFTYPE'

adoxb.prg(244) Warning W0001 Ambiguous reference: 'ARSFIELDS'

adoxb.prg(244) Warning W0001 Ambiguous reference: 'CRSFNAME'

adoxb.prg(244) Warning W0001 Ambiguous reference: 'CRSFTYPE'

adoxb.prg(244) Warning W0001 Ambiguous reference: 'NRSFLONG'

adoxb.prg(244) Warning W0001 Ambiguous reference: 'NRSFDECM'

adoxb.prg(246) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(246) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(248) Warning W0001 Ambiguous reference: 'CADOTMPCONECTION'

adoxb.prg(248) Warning W0001 Ambiguous reference: 'ARSFIELDS'

adoxb.prg(249) Warning W0001 Ambiguous reference: 'ADBFNAMES'

adoxb.prg(251) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(251) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(251) Warning W0001 Ambiguous reference: 'ADBFNAMES'

adoxb.prg(252) Warning W0001 Ambiguous reference: 'ARSFNAMES'

adoxb.prg(252) Warning W0002 Ambiguous reference, assuming memvar: 'ADBFNAMES'

adoxb.prg(252) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(253) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(253) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(255) Warning W0001 Ambiguous reference: 'CADOTMPCONECTION'

adoxb.prg(256) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(256) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(257) Warning W0001 Ambiguous reference: 'CADOTMPCONECTION'

adoxb.prg(257) Warning W0002 Ambiguous reference, assuming memvar: 'ARECORDSET'

adoxb.prg(257) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(258) Warning W0001 Ambiguous reference: 'II'

adoxb.prg(258) Warning W0001 Ambiguous reference: 'II'

adoxb.prg(258) Warning W0001 Ambiguous reference: 'NRSRCOUNT'

adoxb.prg(260) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(260) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(260) Warning W0001 Ambiguous reference: 'NRSFCOUNT'

adoxb.prg(264) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(264) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(264) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(264) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(265) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(265) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(267) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(267) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(268) Warning W0001 Ambiguous reference: 'II'

adoxb.prg(268) Warning W0001 Ambiguous reference: 'II'

adoxb.prg(274) Warning W0001 Ambiguous reference: 'ARSDATA'

adoxb.prg(279) Warning W0001 Ambiguous reference: 'CADOTMPCONECTION'

adoxb.prg(280) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(280) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(281) Warning W0001 Ambiguous reference: 'ARSDATA'

adoxb.prg(281) Warning W0001 Ambiguous reference: 'ARSFIELDS'

adoxb.prg(281) Warning W0001 Ambiguous reference: 'ARSFNAMES'

adoxb.prg(282) Warning W0001 Ambiguous reference: 'NRSRCOUNT'

adoxb.prg(283) Warning W0001 Ambiguous reference: 'NRSFCOUNT'

adoxb.prg(284) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(284) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(284) Warning W0001 Ambiguous reference: 'NRSFCOUNT'

adoxb.prg(285) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(285) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(285) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(285) Warning W0001 Ambiguous reference: 'CRSFNAME'

adoxb.prg(286) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(286) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(286) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(286) Warning W0001 Ambiguous reference: 'CRSFNAME'

adoxb.prg(286) Warning W0001 Ambiguous reference: 'CRSFTYPE'

adoxb.prg(287) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(287) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(287) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(287) Warning W0001 Ambiguous reference: 'NRSFLONG'

adoxb.prg(288) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(288) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(288) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(288) Warning W0001 Ambiguous reference: 'NRSFDECM'

adoxb.prg(289) Warning W0001 Ambiguous reference: 'ARSFIELDS'

adoxb.prg(289) Warning W0001 Ambiguous reference: 'CRSFNAME'

adoxb.prg(289) Warning W0001 Ambiguous reference: 'CRSFTYPE'

adoxb.prg(289) Warning W0001 Ambiguous reference: 'NRSFLONG'

adoxb.prg(289) Warning W0001 Ambiguous reference: 'NRSFDECM'

adoxb.prg(290) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(290) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(291) Warning W0001 Ambiguous reference: 'CADOTMPCONECTION'

adoxb.prg(291) Warning W0001 Ambiguous reference: 'ARSFIELDS'

adoxb.prg(292) Warning W0001 Ambiguous reference: 'ADBFNAMES'

adoxb.prg(293) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(293) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(293) Warning W0001 Ambiguous reference: 'ADBFNAMES'

adoxb.prg(294) Warning W0001 Ambiguous reference: 'ARSFNAMES'

adoxb.prg(294) Warning W0002 Ambiguous reference, assuming memvar: 'ADBFNAMES'

adoxb.prg(294) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(295) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(295) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(296) Warning W0001 Ambiguous reference: 'CADOTMPCONECTION'

adoxb.prg(297) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(297) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(298) Warning W0001 Ambiguous reference: 'CADOTMPCONECTION'

adoxb.prg(299) Warning W0001 Ambiguous reference: 'II'

adoxb.prg(299) Warning W0001 Ambiguous reference: 'II'

adoxb.prg(299) Warning W0001 Ambiguous reference: 'NRSRCOUNT'

adoxb.prg(301) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(301) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(301) Warning W0001 Ambiguous reference: 'NRSFCOUNT'

adoxb.prg(302) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(302) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(302) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(302) Warning W0001 Ambiguous reference: 'CRSFNAME'

adoxb.prg(303) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(303) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(303) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(303) Warning W0001 Ambiguous reference: 'CRSFVALUE'

adoxb.prg(304) Warning W0001 Ambiguous reference: 'CRSFVALUE'

adoxb.prg(304) Warning W0001 Ambiguous reference: 'CRSFNAME'

adoxb.prg(305) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(305) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(307) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(307) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(308) Warning W0001 Ambiguous reference: 'II'

adoxb.prg(308) Warning W0001 Ambiguous reference: 'II'

adoxb.prg(310) Warning W0001 Ambiguous reference: 'ARSFNAMES'

adoxb.prg(310) Warning W0002 Ambiguous reference, assuming memvar: 'ARSFNAMES'

adoxb.prg(310) Warning W0002 Ambiguous reference, assuming memvar: 'ARSFNAMES'

adoxb.prg(311) Warning W0001 Ambiguous reference: 'ARSFNAMES'

adoxb.prg(311) Warning W0001 Ambiguous reference: 'ARSDATA'

adoxb.prg(314) Warning W0001 Ambiguous reference: 'ARSDATA'

adoxb.prg(319) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(319) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(347) Warning W0001 Ambiguous reference: 'ARECORDSET'

adoxb.prg(348) Warning W0001 Ambiguous reference: 'ORECORDSET'

adoxb.prg(349) Warning W0001 Ambiguous reference: 'OADOINDEX'

adoxb.prg(350) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(351) Warning W0001 Ambiguous reference: 'AINDEXORDER'

adoxb.prg(352) Warning W0001 Ambiguous reference: 'NINDEXORDER'

adoxb.prg(353) Warning W0001 Ambiguous reference: 'STRDRIVER'

adoxb.prg(353) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(354) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(355) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(355) Warning W0001 Ambiguous reference: 'ADCEXECASYNC'

adoxb.prg(356) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(356) Warning W0001 Ambiguous reference: 'STRDRIVER'

adoxb.prg(357) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(358) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(365) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(368) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(371) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(371) Warning W0001 Ambiguous reference: 'CADOCONECTIONSTATE'

adoxb.prg(372) Warning W0001 Ambiguous reference: 'CADOCONECTIONSTATE'

adoxb.prg(384) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(385) Warning W0001 Ambiguous reference: 'STRDRIVER'

adoxb.prg(386) Warning W0001 Ambiguous reference: 'STRDRIVER'

adoxb.prg(387) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(389) Warning W0001 Ambiguous reference: 'STRDRIVER'

adoxb.prg(390) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(392) Warning W0001 Ambiguous reference: 'STRDRIVER'

adoxb.prg(393) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(395) Warning W0001 Ambiguous reference: 'STRDRIVER'

adoxb.prg(400) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(402) Warning W0001 Ambiguous reference: 'STRDRIVER'

adoxb.prg(403) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(405) Warning W0001 Ambiguous reference: 'STRDRIVER'

adoxb.prg(406) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(409) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(412) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(414) Warning W0001 Ambiguous reference: 'STRDRIVER'

adoxb.prg(415) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(417) Warning W0001 Ambiguous reference: 'STRDRIVER'

adoxb.prg(418) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(420) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(425) Warning W0001 Ambiguous reference: 'CADORDD'

adoxb.prg(426) Warning W0001 Ambiguous reference: 'CADORDD'

adoxb.prg(428) Warning W0001 Ambiguous reference: 'CADORDD'

adoxb.prg(433) Warning W0001 Ambiguous reference: 'CADORDD'

adoxb.prg(433) Warning W0001 Ambiguous reference: 'CADORDD'

adoxb.prg(436) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(436) Warning W0001 Ambiguous reference: 'OADOCATALOG'

adoxb.prg(437) Warning W0001 Ambiguous reference: 'OADOCATALOG'

adoxb.prg(438) Warning W0001 Ambiguous reference: 'OADOCATALOG'

adoxb.prg(441) Warning W0001 Ambiguous reference: 'OADOCATALOG'

adoxb.prg(449) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(452) Warning W0002 Ambiguous reference, assuming memvar: 'ARECORDSET'

adoxb.prg(452) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(457) Warning W0007 Function 'ADOALIAS' does not end with RETURN statement

adoxb.prg(458) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(461) Warning W0002 Ambiguous reference, assuming memvar: 'ARECORDSET'

adoxb.prg(461) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(466) Warning W0007 Function 'ADOFCOUNT' does not end with RETURN statement

adoxb.prg(467) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(473) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(485) Warning W0001 Ambiguous reference: 'ADTEXT'

adoxb.prg(494) Warning W0007 Function 'GETFIELDTYPE' does not end with RETURN statement

adoxb.prg(495) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(495) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(495) Warning W0002 Ambiguous reference, assuming memvar: 'OADOINDEX'

adoxb.prg(501) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(502) Warning W0001 Ambiguous reference: 'OADOERRDESCRIPTION'

adoxb.prg(503) Warning W0001 Ambiguous reference: 'OADOINDEX'

adoxb.prg(504) Warning W0001 Ambiguous reference: 'OADOCATALOG'

adoxb.prg(505) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(506) Warning W0001 Ambiguous reference: 'OADOERRDESCRIPTION'

adoxb.prg(507) Warning W0001 Ambiguous reference: 'OADOINDEX'

adoxb.prg(508) Warning W0001 Ambiguous reference: 'OADOCATALOG'

adoxb.prg(514) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(514) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(520) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(520) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(527) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(527) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(529) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(529) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(529) Warning W0002 Ambiguous reference, assuming memvar: 'ARECORDSET'

adoxb.prg(529) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(531) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(531) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(531) Warning W0001 Ambiguous reference: 'MARCA'

adoxb.prg(532) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(532) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(533) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(533) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(533) Warning W0001 Ambiguous reference: 'MARCA'

adoxb.prg(539) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(539) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(545) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(545) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(551) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(551) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(557) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(557) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(557) Warning W0001 Ambiguous reference: 'ARECORDSET'

adoxb.prg(558) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(558) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(559) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(559) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(566) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(566) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(572) Warning W0001 Ambiguous reference: 'OADOCONVERT'

adoxb.prg(572) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(572) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(586) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(586) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(587) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(587) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(588) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(588) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(588) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(588) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(589) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(589) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(589) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(589) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(590) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(590) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(595) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(595) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(596) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(596) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(597) Warning W0001 Ambiguous reference: 'CADORDD'

adoxb.prg(598) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(598) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(598) Warning W0002 Ambiguous reference, assuming memvar: 'ARECORDSET'

adoxb.prg(598) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(613) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(613) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(623) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(623) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(633) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(633) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(641) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(644) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(644) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(649) Warning W0007 Function 'ADORECNO' does not end with RETURN statement

adoxb.prg(650) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(653) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(653) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(653) Warning W0001 Ambiguous reference: 'NRECORD'

adoxb.prg(654) Warning W0001 Ambiguous reference: 'NRECORD'

adoxb.prg(654) Warning W0001 Ambiguous reference: 'NRECORD'

adoxb.prg(654) Warning W0001 Ambiguous reference: 'NRECORD'

adoxb.prg(655) Warning W0001 Ambiguous reference: 'NRECORD'

adoxb.prg(658) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(658) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(664) Warning W0007 Function 'ADORECCOUNT' does not end with RETURN statement

adoxb.prg(666) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(666) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(668) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(668) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(675) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(675) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(675) Warning W0001 Ambiguous reference: 'ADRECDELETED'

adoxb.prg(683) Warning W0001 Ambiguous reference: 'ARECORDSET'

adoxb.prg(683) Warning W0001 Ambiguous reference: '_RECORDSET'

adoxb.prg(684) Warning W0001 Ambiguous reference: 'ARECORDSET'

adoxb.prg(684) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(685) Warning W0001 Ambiguous reference: 'ARECORDSET'

adoxb.prg(685) Warning W0001 Ambiguous reference: '_RECORDSET'

adoxb.prg(686) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(686) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(692) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(692) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(692) Warning W0001 Ambiguous reference: 'ARECORDSET'

adoxb.prg(693) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(693) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(694) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(694) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(695) Warning W0001 Ambiguous reference: 'ARECORDSET'

adoxb.prg(696) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(702) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(703) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(704) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(705) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(706) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(707) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(708) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(709) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(710) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(711) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(712) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(713) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(714) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(715) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(716) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(716) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(716) Warning W0001 Ambiguous reference: 'AADODEFINES'

adoxb.prg(717) Warning W0002 Ambiguous reference, assuming memvar: 'AADODEFINES'

adoxb.prg(717) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(717) Warning W0002 Ambiguous reference, assuming memvar: 'AADODEFINES'

adoxb.prg(717) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(718) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(718) Warning W0001 Ambiguous reference: 'I'

adoxb.prg(720) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(726) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(726) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(731) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(731) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(736) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(736) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(747) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(747) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(748) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(748) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(749) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(749) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(750) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(750) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(751) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(751) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(759) Warning W0007 Function 'ADOLOCATE' does not end with RETURN statement

adoxb.prg(761) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(761) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(761) Warning W0001 Ambiguous reference: 'CSTRFIELD'

adoxb.prg(764) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(764) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(766) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(766) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(767) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(767) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(774) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(774) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(779) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(787) Warning W0001 Ambiguous reference: 'CADORDD'

adoxb.prg(790) Warning W0001 Ambiguous reference: 'ARECORDSET'

adoxb.prg(790) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(791) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(791) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(791) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(795) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(805) Warning W0001 Ambiguous reference: 'LENGTH'

adoxb.prg(806) Warning W0001 Ambiguous reference: 'LENGTH'

adoxb.prg(817) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(817) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(818) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(818) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(820) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(820) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(867) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(867) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(882) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(883) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(883) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(884) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(884) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(886) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(886) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(899) Warning W0001 Ambiguous reference: 'OADOSTREAM'

adoxb.prg(900) Warning W0001 Ambiguous reference: 'OADOSTREAM'

adoxb.prg(901) Warning W0001 Ambiguous reference: 'OADOSTREAM'

adoxb.prg(901) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(901) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(902) Warning W0001 Ambiguous reference: 'OADOSTREAM'

adoxb.prg(902) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(902) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(903) Warning W0001 Ambiguous reference: 'OADOSTREAM'

adoxb.prg(917) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(918) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(918) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(919) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(919) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(921) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(921) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(997) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(997) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(997) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(997) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(1004) Warning W0001 Ambiguous reference: 'CSQL'

adoxb.prg(1005) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(1005) Warning W0001 Ambiguous reference: 'CSQL'

adoxb.prg(1014) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(1014) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(1016) Warning W0001 Ambiguous reference: 'ARECORDSET'

adoxb.prg(1017) Warning W0001 Ambiguous reference: 'CRECORDSET'

adoxb.prg(1018) Warning W0001 Ambiguous reference: 'ARECORDSET'

adoxb.prg(1018) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(1019) Warning W0001 Ambiguous reference: 'OADOCONECTION'

adoxb.prg(1019) Warning W0001 Ambiguous reference: 'ORECORDSET'

adoxb.prg(1019) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(1020) Warning W0001 Ambiguous reference: 'CADORDD'

adoxb.prg(1021) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(1021) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(1021) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(1023) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(1023) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(1024) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(1024) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(1026) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(1026) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(1027) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(1027) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(1029) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(1029) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(1030) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(1030) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(1032) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(1032) Warning W0001 Ambiguous reference: 'NRECORDSET'

adoxb.prg(1032) Warning W0001 Ambiguous reference: 'STRCONNECTION'

adoxb.prg(1034) Warning W0002 Ambiguous reference, assuming memvar: 'ORECORDSET'

adoxb.prg(1034) Warning W0001 Ambiguous reference: 'NRECORDSET'


Link to comment
Share on other sites

Rochinha, Compilando com HARBOUR:



adoxb.prg(392) Warning W0001 Ambiguous reference 'STRDRIVER'
adoxb.prg(393) Warning W0001 Ambiguous reference 'STRCONNECTION'
adoxb.prg(395) Warning W0001 Ambiguous reference 'STRDRIVER'
adoxb.prg(400) Warning W0001 Ambiguous reference 'STRCONNECTION'
adoxb.prg(402) Warning W0001 Ambiguous reference 'STRDRIVER'
adoxb.prg(403) Warning W0001 Ambiguous reference 'STRCONNECTION'
adoxb.prg(405) Warning W0001 Ambiguous reference 'STRDRIVER'
adoxb.prg(406) Warning W0001 Ambiguous reference 'STRCONNECTION'
adoxb.prg(409) Warning W0001 Ambiguous reference 'STRCONNECTION'
adoxb.prg(412) Warning W0001 Ambiguous reference 'STRCONNECTION'
adoxb.prg(414) Warning W0001 Ambiguous reference 'STRDRIVER'
adoxb.prg(415) Warning W0001 Ambiguous reference 'STRCONNECTION'
adoxb.prg(417) Warning W0001 Ambiguous reference 'STRDRIVER'
adoxb.prg(418) Warning W0001 Ambiguous reference 'STRCONNECTION'
adoxb.prg(420) Warning W0001 Ambiguous reference 'STRCONNECTION'
adoxb.prg(425) Warning W0001 Ambiguous reference 'CADORDD'
adoxb.prg(426) Warning W0001 Ambiguous reference 'CADORDD'
adoxb.prg(428) Warning W0001 Ambiguous reference 'CADORDD'
adoxb.prg(433) Warning W0001 Ambiguous reference 'CADORDD'
adoxb.prg(433) Warning W0001 Ambiguous reference 'CADORDD'
adoxb.prg(436) Warning W0001 Ambiguous reference 'OADOCONECTION'
adoxb.prg(436) Warning W0001 Ambiguous reference 'OADOCATALOG'
adoxb.prg(437) Warning W0001 Ambiguous reference 'OADOCATALOG'
adoxb.prg(438) Warning W0001 Ambiguous reference 'OADOCATALOG'
adoxb.prg(441) Warning W0001 Ambiguous reference 'OADOCATALOG'
adoxb.prg(449) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(452) Warning W0002 Ambiguous reference, assuming memvar 'ARECORDSET'
adoxb.prg(452) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(457) Warning W0007 Function 'ADOALIAS' does not end with RETURN state
ment
adoxb.prg(458) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(461) Warning W0002 Ambiguous reference, assuming memvar 'ARECORDSET'
adoxb.prg(461) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(466) Warning W0007 Function 'ADOFCOUNT' does not end with RETURN stat
ement
adoxb.prg(467) Warning W0001 Ambiguous reference 'OADOCONECTION'
adoxb.prg(473) Warning W0001 Ambiguous reference 'OADOCONECTION'
adoxb.prg(485) Warning W0001 Ambiguous reference 'ADTEXT'
adoxb.prg(494) Warning W0007 Function 'GETFIELDTYPE' does not end with RETURN s
tatement
adoxb.prg(495) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(495) Warning W0002 Ambiguous reference, assuming memvar 'OADOINDEX'
adoxb.prg(495) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(501) Warning W0001 Ambiguous reference 'OADOCONECTION'
adoxb.prg(502) Warning W0001 Ambiguous reference 'OADOERRDESCRIPTION'
adoxb.prg(503) Warning W0001 Ambiguous reference 'OADOINDEX'
adoxb.prg(504) Warning W0001 Ambiguous reference 'OADOCATALOG'
adoxb.prg(505) Warning W0001 Ambiguous reference 'OADOCONECTION'
adoxb.prg(506) Warning W0001 Ambiguous reference 'OADOERRDESCRIPTION'
adoxb.prg(507) Warning W0001 Ambiguous reference 'OADOINDEX'
adoxb.prg(508) Warning W0001 Ambiguous reference 'OADOCATALOG'
adoxb.prg(514) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(514) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(520) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(520) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(527) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(527) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(529) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(529) Warning W0002 Ambiguous reference, assuming memvar 'ARECORDSET'
adoxb.prg(529) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(529) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(531) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(531) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(531) Warning W0001 Ambiguous reference 'MARCA'
adoxb.prg(532) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(532) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(533) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(533) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(533) Warning W0001 Ambiguous reference 'MARCA'
adoxb.prg(539) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(539) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(545) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(545) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(551) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(551) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(557) Warning W0001 Ambiguous reference 'I'
adoxb.prg(558) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(558) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(559) Warning W0001 Ambiguous reference 'I'
adoxb.prg(559) Warning W0001 Ambiguous reference 'I'
adoxb.prg(559) Warning W0001 Ambiguous reference 'ARECORDSET'
adoxb.prg(566) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(566) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(572) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(572) Warning W0001 Ambiguous reference 'OADOCONVERT'
adoxb.prg(572) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(586) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(586) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(587) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(587) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(588) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(588) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(588) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(588) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(589) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(589) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(589) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(589) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(590) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(590) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(595) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(595) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(596) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(596) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(597) Warning W0001 Ambiguous reference 'CADORDD'
adoxb.prg(598) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(598) Warning W0002 Ambiguous reference, assuming memvar 'ARECORDSET'
adoxb.prg(598) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(598) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(613) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(613) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(623) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(623) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(633) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(633) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(641) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(644) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(644) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(649) Warning W0007 Function 'ADORECNO' does not end with RETURN state
ment
adoxb.prg(650) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(653) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(653) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(653) Warning W0001 Ambiguous reference 'NRECORD'
adoxb.prg(654) Warning W0001 Ambiguous reference 'NRECORD'
adoxb.prg(654) Warning W0001 Ambiguous reference 'NRECORD'
adoxb.prg(654) Warning W0001 Ambiguous reference 'NRECORD'
adoxb.prg(655) Warning W0001 Ambiguous reference 'NRECORD'
adoxb.prg(658) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(658) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(664) Warning W0007 Function 'ADORECCOUNT' does not end with RETURN st
atement
adoxb.prg(666) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(666) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(668) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(668) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(675) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(675) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(675) Warning W0001 Ambiguous reference 'ADRECDELETED'
adoxb.prg(683) Warning W0001 Ambiguous reference 'ARECORDSET'
adoxb.prg(683) Warning W0001 Ambiguous reference '_RECORDSET'
adoxb.prg(684) Warning W0001 Ambiguous reference 'ARECORDSET'
adoxb.prg(684) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(685) Warning W0001 Ambiguous reference 'ARECORDSET'
adoxb.prg(685) Warning W0001 Ambiguous reference '_RECORDSET'
adoxb.prg(686) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(686) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(692) Warning W0001 Ambiguous reference 'I'
adoxb.prg(693) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(693) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(694) Warning W0001 Ambiguous reference 'I'
adoxb.prg(694) Warning W0001 Ambiguous reference 'I'
adoxb.prg(694) Warning W0001 Ambiguous reference 'ARECORDSET'
adoxb.prg(695) Warning W0001 Ambiguous reference 'ARECORDSET'
adoxb.prg(696) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(702) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(703) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(704) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(705) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(706) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(707) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(708) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(709) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(710) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(711) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(712) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(713) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(714) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(715) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(716) Warning W0001 Ambiguous reference 'I'
adoxb.prg(717) Warning W0002 Ambiguous reference, assuming memvar 'AADODEFINES'

adoxb.prg(717) Warning W0002 Ambiguous reference, assuming memvar 'AADODEFINES'

adoxb.prg(717) Warning W0001 Ambiguous reference 'I'
adoxb.prg(717) Warning W0001 Ambiguous reference 'I'
adoxb.prg(718) Warning W0001 Ambiguous reference 'I'
adoxb.prg(718) Warning W0001 Ambiguous reference 'I'
adoxb.prg(718) Warning W0001 Ambiguous reference 'AADODEFINES'
adoxb.prg(720) Warning W0001 Ambiguous reference 'OADOCONECTION'
adoxb.prg(726) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(726) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(731) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(731) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(736) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(736) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(747) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(747) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(748) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(748) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(749) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(749) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(750) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(750) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(751) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(751) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(759) Warning W0007 Function 'ADOLOCATE' does not end with RETURN stat
ement
adoxb.prg(761) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(761) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(761) Warning W0001 Ambiguous reference 'CSTRFIELD'
adoxb.prg(764) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(764) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(766) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(766) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(767) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(767) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(774) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(774) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(779) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(787) Warning W0001 Ambiguous reference 'CADORDD'
adoxb.prg(790) Warning W0001 Ambiguous reference 'ARECORDSET'
adoxb.prg(790) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(791) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(791) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(791) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(795) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(805) Warning W0001 Ambiguous reference 'LENGTH'
adoxb.prg(806) Warning W0001 Ambiguous reference 'LENGTH'
adoxb.prg(817) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(817) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(818) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(818) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(820) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(820) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(867) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(867) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(882) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(883) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(883) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(884) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(884) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(886) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(886) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(899) Warning W0001 Ambiguous reference 'OADOSTREAM'
adoxb.prg(900) Warning W0001 Ambiguous reference 'OADOSTREAM'
adoxb.prg(901) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(901) Warning W0001 Ambiguous reference 'OADOSTREAM'
adoxb.prg(901) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(902) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(902) Warning W0001 Ambiguous reference 'OADOSTREAM'
adoxb.prg(902) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(903) Warning W0001 Ambiguous reference 'OADOSTREAM'
adoxb.prg(917) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(918) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(918) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(919) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(919) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(921) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(921) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(997) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(997) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'
adoxb.prg(997) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(997) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(1004) Warning W0001 Ambiguous reference 'CSQL'
adoxb.prg(1005) Warning W0001 Ambiguous reference 'OADOCONECTION'
adoxb.prg(1005) Warning W0001 Ambiguous reference 'CSQL'
adoxb.prg(1014) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'

adoxb.prg(1014) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(1016) Warning W0001 Ambiguous reference 'ARECORDSET'
adoxb.prg(1017) Warning W0001 Ambiguous reference 'CRECORDSET'
adoxb.prg(1018) Warning W0001 Ambiguous reference 'ARECORDSET'
adoxb.prg(1018) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(1019) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'

adoxb.prg(1019) Warning W0001 Ambiguous reference 'OADOCONECTION'
adoxb.prg(1019) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(1020) Warning W0001 Ambiguous reference 'CADORDD'
adoxb.prg(1021) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'

adoxb.prg(1021) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(1021) Warning W0001 Ambiguous reference 'STRCONNECTION'
adoxb.prg(1023) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'

adoxb.prg(1023) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(1024) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'

adoxb.prg(1024) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(1026) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'

adoxb.prg(1026) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(1027) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'

adoxb.prg(1027) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(1029) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'

adoxb.prg(1029) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(1030) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'

adoxb.prg(1030) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(1032) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'

adoxb.prg(1032) Warning W0001 Ambiguous reference 'NRECORDSET'
adoxb.prg(1032) Warning W0001 Ambiguous reference 'STRCONNECTION'
adoxb.prg(1034) Warning W0002 Ambiguous reference, assuming memvar 'ORECORDSET'

adoxb.prg(1034) Warning W0001 Ambiguous reference 'NRECORDSET'
* Compile errors *


Link to comment
Share on other sites

Amiguinhos,

kapiaba

Como você sabe "warning" não é "erro". Se você setar o parâmetro W com zero eles somem mas o executável sempre será criado.

Provavelmente o fivewin.ch pode estar abrindo um .ch que contenha as declarações do adoxb.ch.

Para saber o que ocorre com seu FIREBIR3.PRG era bom ver o código.

O código que coloquei serve para analisar arquivos .GBD de vários clientes, eu só modifico o database e as tabelas que irei abrir.

Para compilar o ADOxB.prg em sua aplicação coloque no inicio do seu FIREBIR3.PRG

#define_ADO_xHarbour_ kapiaba
Link to comment
Share on other sites


/*
*
* Mais informacoes sobre ADO em
* http://www.microsoft.com/brasil/technet/Colunas/scriptcenter/resources/officetips/nov05/tips1103.mspx
*
*/
#include "Fivewin.ch"
#include "adoxb.ch"

// Instalei Firebird-2.1.3.18185_0_Win32.exe
// Copiei c:\windows\system32\gds32.dll para a pasta do database
// Especifiquei o caminho completo do database

FUNCTION MAIN()
PUBLIC oRs

ADOSetRDD( "Firebird" )

//StrDatabase := "Z:\D_\disco\E\FONTES\NFW\harbour\libs\adodb\gdb\adogdb.gdb"
StrDatabase := "C:\FIREBIRD\FDCMARKET.gdb"
StrConnection := "DRIVER=Firebird/InterBase(r) driver; UID=SYSDBA; PWD=masterkey; Database="+StrDatabase+"; DIALECT=3" //; vendorclient=gds32.dll;"

MsgRun( "Conectando..." )

ADO CONNECT StrConnection

oRs := oRecordSet

// Cria tabelas se nao existirem
if ADOFile( "clientes" )
else
MsgRun( "Criando tabela CLIENTES..." )
ADO EXECUTE "DROP TABLE clientes"
ADO EXECUTE "CREATE TABLE clientes (nome char(45), email char(45), unique(nome))"
endif
if ADOFile( "siglas" )
else
MsgRun( "Criando tabela SIGLAS..." )
ADO EXECUTE "DROP TABLE siglas"
ADO EXECUTE "CREATE TABLE siglas (uf char(2), estado char(20), unique(uf))"
endif
if ADOFile( "teste" )
else
MsgRun( "Criando tabela TESTE..." )
ADO EXECUTE "DROP TABLE teste"
ADO EXECUTE "CREATE TABLE teste (uf char(2), estado char(20), unique(uf))"
endif

// Abre as tabelas
ADO USE clientes
ADO USE siglas

// Verifica se ja possuem dados
ADO SELECT clientes
//ADO GOTOP
nRegistros := ADORecCount()
// ? ADOAlias(), nRegistros
if nRegistros = 0
ADO APPEND BLANK
ADO REPLACE nome WITH "JOSE CARLOS DA ROCHA"
ADO REPLACE email WITH "IROCHINHA@ITELEFONICA.COM.BR"
ADO COMMIT
endif
ADO SELECT siglas
//ADO GOTOP
nRegistros := ADORecCount()
// ? ADOAlias(), nRegistros
if nRegistros = 0
ADO APPEND BLANK
ADO REPLACE uf WITH "SP"
ADO REPLACE estado WITH "SAO PAULO"
ADO COMMIT
ADO APPEND BLANK
ADO REPLACE uf WITH "RJ"
ADO REPLACE estado WITH "RIO DE JANEIRO"
ADO COMMIT
endif

MsgRun( "Executando..." )
ADO SELECT clientes
ADO GOTOP

MsgRun( "Executando SET FILTER TO nome like '*teste*'..." )
ADO SET FILTER TO "nome like '*tete*'"
if ADOEof()
? 'Nada foi filtrado'
ADO SET FILTER TO
ADO GOTOP
endif
Browse( oRs )
ADO SET FILTER TO

MsgRun( "Executando LOCATE nome like 'TESTES'..." )
ADO LOCATE "nome like 'TESTES*'"
if ADOEof()
? 'Nada foi encontrado'
ADO GOTOP
endif
Browse( oRs )

//MsgRun( "Executando SORT ON nome..." )
//ADO SORT ON clientes.nome
//Browse( oRs )

//WBrowseRecordSet( oRs, StrField2 )
//Browse( oRs )

ADO CLOSE
RETURN NIL

function WBrowseRecordSet( oRs, cStrField )
LOCAL oDlg, oBrw, nRec
DEFINE DIALOG oDlg SIZE 300, 300
@ 0, 0 LISTBOX oBrw FIELDS oRs:Fields( "nome" ):Value ;
HEADERS "Nome do Cliente" ;
FIELDSIZES 300 ;
ON RIGHT CLICK ( nRec := oRs:AbsolutePosition,;
oBrw:Report( "TWBrowse report", .T. ),;
oRs:MoveFirst(),;
oRs:Move( nRec - 1 ) )
oBrw:bLDblClick:= { |nRow,nCol| MsgStop( oRs:Fields( "email" ):Value ) }
oBrw:nHeaderStyle := 2
oBrw:nHeaderHeight := 20
oBrw:nLineHeight := 15
oBrw:bLogicLen := { || oRs:RecordCount }
oBrw:bGoTop := { || oRs:MoveFirst() }
oBrw:bGoBottom := { || oRs:MoveLast() }
oBrw:bSkip := { | nSkip | ADOSkipper( oRs, nSkip ) }
oBrw:cAlias := "ARRAY"
ACTIVATE DIALOG oDlg;
ON INIT oDlg:SetControl( oBrw );
CENTER
RETURN NIL

function browse(oRs, bPrc, bAdc, bAlt, bExc, bImp, bSai)
LOCAL oDlg, oBrw, nRec
LOCAL aData := {}
LOCAL nFor
LOCAL oLbx, cItem
LOCAL btnPrc, btnAdc, btnAlt, btnExc, btnImp, btnsai

DEFAULT bPrc := { || RecPrc( oLbx ) },;
bAdc := { || RecInc( oLbx ) },;
bAlt := { || RecAlt( oLbx ) },;
bExc := { || RecExc( oLbx ) },;
bImp := { || RecImp( oLbx ) },;
bSai := { || oDlg2:End() }

DEFINE DIALOG oDlg2 From 0,0 To 800,1020 Pixel TITLE " ListBox da Tabela "
@ 05,15 listbox oBrw Fields ADOField( "nome" ), ADOField( "email" ) ;
headers "Nome","email" ;
fieldsizes 250,100 ;
pixel size 400,300 of odlg2

//oBrw:bLDblClick:= { |nRow,nCol| MsgStop( oRs:Fields( "apelido" ):Value ) }
oBrw:nHeaderStyle := 2
oBrw:nHeaderHeight := 20
oBrw:nLineHeight := 15
oBrw:bLogicLen := { || ADORecCount() }
oBrw:bGoTop := { || ADOGotop() }
oBrw:bGoBottom := { || ADOGoBottom() }
oBrw:bSkip := { | nSkip | ADOSkip( nSkip ) }
oBrw:cAlias := "ARRAY"

@ 18.7 , 05 button btnprc prompt "&Procurar" of oDlg2 size 40,12 Action RecPrc(oBrw)
@ 18.7 , 15 button btnadc prompt "&Adicionar" of oDlg2 size 40,12 Action RecInc(oBrw)
@ 18.7 , 25 button btnalt prompt "A&lterar" of oDlg2 size 40,12 Action RecAlt(oBrw)
@ 18.7 , 35 button btnexc prompt "&Excluir" of oDlg2 size 40,12 Action RecExc(oBrw)
@ 18.7 , 45 button btnimp prompt "&Imprimir" of oDlg2 size 40,12
@ 18.7 , 55 button btnsai prompt "&Sair" of oDlg2 size 40,12 Action oDlg2:End()

ACTIVATE DIALOG oDlg2 //;
//ON INIT oDlg2:SetControl( oBrw );
//CENTER
RETURN NIL

function ADOSkipper( oRs, nSkip )
LOCAL nRec := oRs:AbsolutePosition
oRs:Move( nSkip )
IF oRs:EOF; oRs:MoveLast(); ENDIF
IF oRs:BOF; oRs:MoveFirst(); ENDIF
RETURN oRs:AbsolutePosition - nRec

//-----------------------------------------------------------
static function RecPrc(oLbx)
Local odlg1
Local cCodigo:=0
Local cSair:=" "
Local sql
DEFINE DIALOG oDlg1 From 0,0 To 160,250 PIXEL;
TITLE " Procura na Tabela em Access "
DEFINE FONT oFont NAME "FIXEDSYS" SIZE 10, -10 && Use a Nonproportional font
SET FONT OF oDlg1 TO oFont && so characters line up in Says
@ 02,05 say "Codigo : " OF oDlg1
@ 02.2,10 get cCodigo OF oDlg1 picture "9999" size 20,10
@ 02.7 , 10 button "Procurar" of oDlg1 size 40,12 action (cSair:="*",oDlg1:End())
ACTIVATE DIALOG oDlg1 centered
if cSair="*"
//locate for (odbf:cAlias)->field_0001 = cCodigo
criterio = "idpessoa Like '" + cCodigo + "%'"
//oRs:MoveFirst()
//oRs:Find criterio, 0, adSearchFoward
if eof()
msgAlert("NÆo encontrado !!!")
go top
endif
oLbx:Refresh()
endif
return nil

//-----------------------------------------------------------
static function RecInc(oLbx)
LOCAL odlg3
LOCAL cNome := space(40)
LOCAL cTelefone := space(14)
LOCAL cEmail := space(40)
LOCAL cSair := " "
DEFINE DIALOG oDlg3 From 0,0 To 230,500 PIXEL TITLE " Inclusao na Tabela em Access "
DEFINE FONT oFont NAME "FIXEDSYS" SIZE 10, -10 && Use a Nonproportional font
SET FONT OF oDlg3 TO oFont && so characters line up in Says
@ 02,05 say "Nome_____: " OF oDlg3
@ 04,05 say "Email____: " OF oDlg3
//
@ 02.2,10 get cNome OF oDlg3 picture "@!" size 150,10
@ 04.4,10 get cEmail OF oDlg3 picture "@!" size 150,10
//
@ 04.7 , 15 button "Salvar" of oDlg3 size 40,12 action (cSair:="*",oDlg3:End())
ACTIVATE DIALOG oDlg3 centered
if cSair="*"
ADO APPEND BLANK
ADO REPLACE nome WITH alltrim( cNome )
ADO REPLACE email WITH alltrim( cEmail )
ADO COMMIT
oLbx:Refresh()
endif
return nil

//-----------------------------------------------------------
static function RecExc(oLbx)
if MsgYesNo( "Excluir este Registro ?", "Por Favor, confirme" )
ADO DELETE
//ADO SKIP
oLbx:Refresh()
endif
return nil

//-----------------------------------------------------------
static function RecAlt(oLbx)
LOCAL odlg3
LOCAL cNome := PadR( ADOField( "nome" ), 40 )
LOCAL cEmail := PadR( ADOField( "email" ), 40 )
LOCAL cSair := " "
DEFINE DIALOG oDlg3 From 0,0 To 230,500 PIXEL TITLE " Inclusao na Tabela em Access "
DEFINE FONT oFont NAME "FIXEDSYS" SIZE 10, -10 && Use a Nonproportional font
SET FONT OF oDlg3 TO oFont && so characters line up in Says
//
@ 02,05 say "Nome_____: " OF oDlg3
@ 04,05 say "Email____: " OF oDlg3
//
@ 02.2,10 get cNome OF oDlg3 picture "@!" size 150,10
@ 04.4,10 get cEmail OF oDlg3 picture "@!" size 150,10
//
@ 04.7 , 15 button "Salvar" of oDlg3 size 40,12 action (cSair:="*",oDlg3:End())
ACTIVATE DIALOG oDlg3 centered
if cSair="*"
//ADO APPEND BLANK
ADO REPLACE nome WITH alltrim( cNome )
ADO REPLACE email WITH alltrim( cEmail )
ADO COMMIT
oLbx:Refresh()
endif
return nil

//-----------------------------------------------------------
static function RecImp( oLbx )
/*
local oRpt
local n
local cAlias := If( oLbx != nil, oLbx:cAlias, Alias() )
REPORT oRpt TITLE "Relatorio: " + cAlias ;
HEADER "Data: " + DToC( Date() ) + ", Hora: " + Time() ;
FOOTER "Pagina: " + Str( oRpt:nPage, 3 ) ;
PREVIEW
if Empty( oRpt ) .or. oRpt:oDevice:hDC == 0
return nil
endif
for n = 1 to FCount()
oRpt:AddColumn( TrColumn():New( { FInfo1( cAlias, n ) },,;
{ FInfo2( cAlias, n ) },,,,,,,,,, oRpt ) )
next
ENDREPORT
ACTIVATE REPORT oRpt
GO TOP
*/
return nil

//--------------------------------------------
static function FInfo1( cAlias, n )
return { || ( cAlias )->( FieldName( n ) ) }

//-----------------------------------------------------------
static function FInfo2( cAlias, n )
return { || ( cAlias )->( FieldGet( n ) ) }

Function DbfDbt()
Return Nil

#include "adoxb.prg"


Link to comment
Share on other sites

Amiguinhos,

kapiaba

Voce obteve erro já nesta linha?

    ADO CONNECT StrConnection

Veja também que coloquei no código o que eu fiz.

// Instalei Firebird-2.1.3.18185_0_Win32.exe
// Copiei c:\windows\system32\gds32.dll para a pasta do database
// Especifiquei o caminho completo do database

Esqueci de falar que o database, o executável e a gds32.dll estavam na mesma pasta.

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...