Página 1 de 1

Brincando com ADO

Enviado: 18 Nov 2019 00:26
por JoséQuintas
Pra quem quiser brincar com ADO....

Código: Selecionar todos

#define AD_BIGINT                       20
#define AD_DATE                         7
#define AD_DOUBLE                       5
#define AD_VARCHAR                      200
#define AD_LONGVARCHAR                  201

#define AD_FLD_KEYCOLUMN                0x8000
#define AD_FLD_ISNULLABLE               0x20
#define AD_FLD_MAYBENULL                0x40
#define AD_FLD_UPDATABLE                0x4

ADOCreate( aStru ) 

   LOCAL oADO, oElement

   oADO := win_OleCreateObject( "ADODB.Recordset" )
   FOR EACH oElement IN aStru
      DO CASE
      CASE oElement[ DBS_TYPE ] == "I"
         oADO:Fields:Append( oElement[ DBS_NAME ], AD_BIGINT, oElement[ DBS_LEN ], AD_FLD_KEYCOLUMN )
      CASE oElement[ DBS_TYPE ] == "N"
         IF oElement[ DBS_DEC ] == 0
            oADO:Fields:Append( oElement[ DBS_NAME], AD_BIGINT, oElement[ DBS_LEN ] )
         ELSE
            oADO:Fields:Append( oElement[ DBS_NAME ], AD_DOUBLE, oElement[ DBS_LEN ] )
            oADO:Fields( oElement[ DBS_NAME ] ):NumericScale := oElement[ DBS_DEC ]
         ENDIF
      CASE oElement[ DBS_TYPE ] == "C"
         oADO:Fields:Append( oElement[ DBS_NAME ], AD_VARCHAR, oElement[ DBS_LEN ] )
      CASE oElement[ DBS_TYPE ] == "D"
         oADO:Fields:Append( oElement[ DBS_NAME ], AD_DATE )
      CASE oElement[ DBS_TYPE ] == "M"
         oADO:Fields:Append( oElement[ DBS_NAME ], AD_LONGVARCHAR )
      ENDCASE
   NEXT

   RETURN oADO
Converter de DBF pra ADO, e mostrar:

Código: Selecionar todos

USE arquivo
oADO := ADOCreate( dbStruct() )
oADO:Open()
DO WHILE ! Eof()
   oADO:AddNew()
   FOR nCont = 1 TO FCount()
      oADO:Fields( FieldName( nCont ) ):Value := FIeldGet( nCont )
   NEXT
   SKIP
ENDDO
CLOSE DATABASES
oADO:Save( "arquivo.ado" )

oADO:Open( "arquivo.ado" )
DO WHILE ! oADO:Eof()
   ? oADO:Fields( 0 ):Value, oADO:Fields( 1 ):Value, oADO:Fields( 2 ):Value
   oADO:MoveNext()
ENDDO
oADO:Close()
Podem brincar com o browse mostrado no outro tópico.
https://pctoledo.org/forum/viewto ... 45&t=15328

Neste caso é ADO puro, sem qualquer banco de dados.
Dá pra fazer pesquisa, filtro, browse, etc.

Talvez até dê pra usar os recordsets do ADO em geradores de relatório.... quem sabe...
Ou transferir entre aplicativos, ou sei lá mais o que...

Brincando com ADO

Enviado: 18 Nov 2019 00:28
por JoséQuintas
Faltou dizer:

o que precisa: nenhuma LIB, somente o Windows mesmo

Brincando com ADO

Enviado: 18 Nov 2019 00:37
por JoséQuintas
Depois podem criar a prova, um arquivo texto com final VBS contendo VBScript.
vbscript.png
Ou HTML com VBScript, ou outra coisa.

Isso prova duas coisas:
Que o arquivo anterior foi gravado
Que ADO faz parte do Windows, por isso não precisa instalar nada

Brincando com ADO

Enviado: 18 Nov 2019 01:18
por JoséQuintas
Pra curiosidade:
ado.png
ado.png (6.68 KiB) Exibido 2839 vezes
É apenas pra curiosidade.
Não substitui o DBF. (eu acho)