Brincando com ADO

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Brincando com ADO

Mensagem 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...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Brincando com ADO

Mensagem por JoséQuintas »

Faltou dizer:

o que precisa: nenhuma LIB, somente o Windows mesmo
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Brincando com ADO

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Brincando com ADO

Mensagem por JoséQuintas »

Pra curiosidade:
ado.png
ado.png (6.68 KiB) Exibido 2842 vezes
É apenas pra curiosidade.
Não substitui o DBF. (eu acho)
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder