Página 1 de 1

ADO Connection Execute

Enviado: 21 Fev 2022 12:55
por JoséQuintas
Tava olhando se tinha alguma opção diferente, mas não tem.
Set recordset = connection.Execute (CommandText, RecordsAffected, Options)

O objeto Recordset retornado é sempre um cursor somente leitura e somente avanço. Se você precisar de um objeto Recordset com mais funcionalidade, primeiro crie um objeto Recordset com as configurações de propriedade desejadas e, em seguida, use o método Open Method (ADO Recordset) do objeto Recordset para executar a consulta e retornar o tipo de cursor desejado.
No meu aplicativo só uso uma conexão.
O método Execute() executa os comandos SQL.
No caso de consulta, vém o recordset somente leitura.
Isso pode ser alterado, mas é o default.

Código: Selecionar todos

Conexao:Execute( "INSERT INTO..." )
Conexao:Execute( "DELETE FROM ..." )
Conexao:Execute( "UPDATE ..." )
Conexao:Execute( "SELECT ..." )
Com o Execute() dá pra incluir, alterar, excluir, consultar, alterar estrutura, criar índice, renomear, tudo que precisar.
É só passar o comando SQL como parâmetro.
E qual é o comando? Só olhar o manual da base de dados, se for MySQL, é olhar o manual do MySQL.
De um modo geral o SQL é padrão, mas sempre tem algum recurso que foi implementado numa base SQL e no outro não.
As funções básicas são padrão, as exceções na maior parte do caso são funções especiais que surgiram depois.

o SQL não é complicado, é só executar comandos, Execute( "aqui comando" ).
Pronto, aprendeu a usar, acabou.

Pois é, mesmo assim, até aceitar que isso é suficiente, vai longe....

ADO Connection Execute

Enviado: 21 Fev 2022 22:33
por alxsts
Olá!
Se você precisar de um objeto Recordset com mais funcionalidade, primeiro crie um objeto Recordset com as configurações de propriedade desejadas e, em seguida, use o método Open Method (ADO Recordset) do objeto Recordset para executar a consulta e retornar o tipo de cursor desejado.
Eu prefiro este método. Com ele é possível ter mais de um record set proveniente de diferentes bancos de dados, visto que a ele se informa a conexão a ser utilizada.

ADO Connection Execute

Enviado: 22 Fev 2022 02:57
por JoséQuintas
alxsts escreveu:Eu prefiro este método. Com ele é possível ter mais de um record set proveniente de diferentes bancos de dados, visto que a ele se informa a conexão a ser utilizada.
E isso não é a mesma coisa? vai ter várias conexões, e pode fazer Execute() em cada uma.

ADO Connection Execute

Enviado: 22 Fev 2022 09:04
por alxsts
Olá!
JoséQuintas escreveu:pode fazer Execute() em cada uma.
Sim. Mas no outro método pode configurar os record sets individualmente.

ADO Connection Execute

Enviado: 07 Mar 2022 13:01
por wagner aragao
Bom dia a todos,


Senhores preciso migrar meu sistema para SQL, e precisaria de alguma solução tipo SQL LIB RDD do Vailton que foi descontinuada, pois preciso manter meu legado rodando até que eu migre totalmente para um Banco SQL. Alguém sabe ou usa uma solução parecida que possa me passar informações ??? Preciso migrar urgente meu sistema. Uso xHarbour 1.2.3 , HwGui , xDev e Designer

Obrigado

ADO Connection Execute

Enviado: 19 Ago 2023 09:50
por foxdata
Ola Jose quintas

Esta biblioteca ADO CONECT acessao o banco oracle?

ADO Connection Execute

Enviado: 19 Ago 2023 11:13
por clodoaldomonteiro
foxdata escreveu:Ola Jose quintas

Esta biblioteca ADO CONECT acessao o banco oracle?
Olá, tomei a liberdade para responder.

Com uma breve consulta na internet, vi este link: https://excelevba.com.br/oracle-vba/, que pode te orientar como usar o Oracle com "ADODB.Connection".
É basicamente a mesma coisa de conectar a qualquer outro banco de dados e o que vai mudar, é o driver conexão, que vc deve ter o ODBC dele instalado na sua máquina.

Seria Mais ou menos assim:

Código: Selecionar todos

//Exemplo conectando bancode dados SGDB
//teste não realizado

////////////////////////////////////////////////////////////////////////////////
//Link Driver ODBC MariaDB: https://downloads.mariadb.com/Connectors/odbc/connector-odbc-3.0.7/
//Link: https://pctoledo.org/forum/viewtopic.php?f=57&t=18918
//https://www.postgresql.org/ftp/odbc/versions/msi/
//http://fivewin.com.br/index.php?/topic/21765-driver-odbc-para-dbf-xharbour/page/2/ - DBF
//http://connectionstrings.com/

#include "ADO.CH"
#define AD_USE_CLIENT 3

Function Main()
   Local oCn, mExecute, oRs, msg, cString

   Begin Sequence

      oCN := OracleSQLConnection( mServerDB, mDbUser, mSenhaPG, mDbName, mServerPort )
      Try
         oCn:open()
      CATCH oError
         msg := 'ADODB: 505' + CRLF
         msg  +=  'Aviso..: Não consegui Abrir com o Banco de dados PostgreSQL.' + HB_Eol()
         msg  +=  'Acesse a central de downloads (central.simplesinformatica.com) e baixe na aba de "Utilitários" o Driver de Conexão e instale-o para completar esta ação.' + HB_Eol()
         msg  +=  CRLF + cl_getError(oError)
         msgError ( msg )
         Break
      End

      //Exemplo do método Execute
      mExecute := "SELECT * FROM tb_sistema_versao Where nomeexe = 'SCP21H' Order BY versao DESC;"
      Try
         oRs := oCn:Execute( mExecute )

      CATCH oError

         oCn:close()

         msg := 'ADODB: 010' + CRLF
         msg  +=  'Aviso..: Não consegui Executar o comando SQL.' + CRLF
         msg  +=  '- Verifique sua conexão com a internet.'  + CRLF
         msg  +=  'Comando: ' + mExecute  + CRLF
         msg  +=  cl_getError(oError, .t.)
         msgError ( msg, .t. )

         Break

      End

      oRs:MoveFirst()

      cString := ''

      Do While !oRs:Eof()

         cString  +=  'VersÆo: ' + oRs:Fields("versao"):Value + Hb_Eol()
         cString  +=  'Descri‡Æo: ' + hb_AnsiToOem( oRs:Fields("observacao"):Value ) + Hb_Eol()
         cString  +=  Replicate('-', c_i-2) + Hb_Eol()

         oRs:MoveNext()

      Enddo

      oRs:Close()

      oCn:close()

   End Seqneice

   Return

   /////////////////////////////////////////////////////////////////////////////
FUNCTION OracleSQLConnection( cServer, cUser, cPassword, cDatabase, cPort )
   LOCAL cnConnection

   Default( @cPort, 'xxxx' )  //Informe a porta padrão aqui

   cnConnection := CreateObject( "ADODB.Connection" )

   cnConnection:ConnectionString := "Driver={Microsoft ODBC for Oracle} " + ; //Verifique nas suas fontes de dados ODBC se é esta a que vc tem instalada
    ";Server="    + cServer    + ;
    ";Port="      + cPort      + ;
    ";Database="  + cDatabase  + ;
    ";Uid="       + cUser      + ;
    ";Pwd="       + cPassword

   cnConnection:CursorLocation   :=  AD_USE_CLIENT
   cnConnection:CommandTimeOut   :=  600 // seconds
   cnConnection:ConnectionTimeOut := 6 // seconds

   RETURN cnConnection
O Quintas tem uma classe bem parruda para conexão a SGDB, basta vc procurar aqui no site.

Abraços.