ADO Connection Execute

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

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

ADO Connection Execute

Mensagem 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....
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/
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

ADO Connection Execute

Mensagem 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.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ADO Connection Execute

Mensagem 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.
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/
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

ADO Connection Execute

Mensagem por alxsts »

Olá!
JoséQuintas escreveu:pode fazer Execute() em cada uma.
Sim. Mas no outro método pode configurar os record sets individualmente.
[]´s
Alexandre Santos (AlxSts)
wagner aragao
Usuário Nível 2
Usuário Nível 2
Mensagens: 58
Registrado em: 30 Jan 2008 02:06
Localização: PORTO VELHO-RONDÔNIA

ADO Connection Execute

Mensagem 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
xHarbour 1.2.3 Simplex / xDev 0.70 / LetoDB 2.15b37 / HWGUI 2.17 / xDesigner (LF Basso)
foxdata
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 10 Jan 2006 15:21
Contato:

ADO Connection Execute

Mensagem por foxdata »

Ola Jose quintas

Esta biblioteca ADO CONECT acessao o banco oracle?
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

ADO Connection Execute

Mensagem 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.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Responder