Clipper On Line • Ver Tópico - Possivel incopatibilidade CreateObject harbour x xHarbour

Possivel incopatibilidade CreateObject harbour x xHarbour

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Possivel incopatibilidade CreateObject harbour x xHarbour

Mensagempor ivanil.marcelino » 12 Fev 2019 15:06

Boa tarde Colegas,
Estou tentando migrar do xharbour para o harbour e estou com o seguinte problema:
Atualmente uso o ADOdb invocado pela Função CreateObject.

Ocorre que aplicada a consulta abaixo no Xharbour, retorna resultado, se vou diretamente no Access e executo internamente também retorna, no entanto no Harbour nada retorna.

Select Texto from Formularios where cod in(0,12) and codigo= 68 and validade=#2019-02-12 10:57:02#


O campo validade é do tipo datetime, quando a consulta é apenas uma data #9999-12-31# cheia sem o horário funciona nos três sistemas, com horário funciona apenas no xharbour e no próprio Access.

Alguém por acaso faz uso de consulta utilizando um campo datetime no harbour e o faz com sucesso?

Versão do harbour: Harbour 3.2.0dev (r1901151150)
Compilador: MinGW GNU C 8.1 (32-bit)

o xHarbour está compilado com o Borland 5.5

Grato

Ivanil
ivanil.marcelino
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 26 Jul 2017 09:08
Cidade/Estado: Floripa/sc
Curtiu: 1 vez
Mens.Curtidas: 3 vezes

Possivel incopatibilidade CreateObject harbour x xHarbour

Mensagempor JoséQuintas » 12 Fev 2019 19:42

Sinceramente... me admira funcionar no XHarbour kkkkk

cn := win_OleCreateObject( "ADODB.Connection" )
cn:ConnectionString := "....."

Rs := cn:Execute( "SELECT ...." )
DO WHILE ! Rs:Eof()
   ? rs:Fields( "CAMPODATA" ):Value
   rs:MoveNext()
ENDDO
rs:Close()
cn:Close()


Só a título de curiosidade, não significa problema, mas esse Harbour não é oficial. mingw 8.1 não é usado oficialmente nem no Harbour 3.4.
Aqui eu uso Harbour 3.4 com mingw 8.1, mas oficialmente não chegou a essa versão de mingw.
Como eu disse, é apenas pra curiosidade. Uso faz tempo e não tenho problema com isso.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Possivel incopatibilidade CreateObject harbour x xHarbour

Mensagempor ivanil.marcelino » 12 Fev 2019 20:14

Pois é meu amigo,

Mas veja bem, este exemplo que postaste não é o problema, o problema esta no retorno da consulta, para fazer funcionar aqui tive alterar o final da consulta de:

Select Texto from Formularios where cod in(0,12) and codigo= 68 and validade=#2019-02-12 10:57:02#

para

Select Texto from Formularios where cod in(0,12) and codigo= 68 and validade>#2019-02-12 10:57:01# and and validade<#2019-02-12 10:57:03# assim funcionou normal, mas quando alguém de fora lê um código assim, minha orelha deve queimar...

Eu estava usando o CreateObject diretamente, acredito que seja o mesmo win_createObject, mas vou trocar e ver o resultado.

Grato

Ivanil
ivanil.marcelino
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 26 Jul 2017 09:08
Cidade/Estado: Floripa/sc
Curtiu: 1 vez
Mens.Curtidas: 3 vezes

Possivel incopatibilidade CreateObject harbour x xHarbour

Mensagempor JoséQuintas » 12 Fev 2019 23:56

Numa pesquisa no google:

SELECT * FROM 
data
WHERE datetime BETWEEN('2009-10-20 00:00:00' AND '2009-10-20 23:59:59')
ORDER BY datetime DESC
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Possivel incopatibilidade CreateObject harbour x xHarbour

Mensagempor ivanil.marcelino » 13 Fev 2019 01:41

Vou postar um código, quem puder testar de repente é algo apenas em conflito de versões, como o amigo Quintas já mencionou.

Function Main
   Local cSQL,rs,i:=0
   Local cn:=win_OleCreateObject("ADODB.Connection")
   Local cx:=win_OleCreateObject("ADOX.Catalog")
   cx:Create("Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Data Source=c:\temp\teste.mdb")
   cn:ConnectionString:="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp\teste.mdb"
   cn:open()
   cSQL:="CREATE TABLE Formularios("+;
          "codigo Int not Null,"+;
          "Validade SmallDateTime not Null,"+;
          "CONSTRAINT PK_Formularios Primary Key (codigo))"
   cn:Execute(cSQL)
   cn:Execute("insert into Formularios (codigo,validade) values (1,'2019-02-12 01:52:01');")
   cn:Execute("insert into Formularios (codigo,validade) values (2,'2019-02-12 01:52:02');")
   cn:Execute("insert into Formularios (codigo,validade) values (3,'2019-02-12 01:52:03');")
   rs:=cn:Execute("Select * from Formularios")
   While !Rs:Eof()
      ?(str(rs:Fields["codigo"]:value,3)+cSTR(rs:fields["validade"]:value))
      rs:moveNext()
   enddo

   //Em harbour nao encontra...porém tanto xharbour como o próprio access encontra normalmente
   rs:=cn:Execute("Select validade from formularios where validade=#2019-02-12 01:5:02#")
   if rs:Eof()
      Alert("Nada encontrado...")
   else
      alert(cStr(rs:Fields[0]:value))
   endif

   //única forma de harbour encontrar, usando um intervalo...
   rs:=cn:Execute("Select validade from formularios where validade >#2019-02-12 01:52:01# and validade<#2019-02-12 01:52:03#")

   if rs:Eof()
      Alert("Nada encontrado...")
   else
      alert(cStr(rs:Fields[0]:value))
   endif
   
   While !Rs:Eof()
      i++
      rs:Movenext()
   enddo
   alert("encontrado "+str(i)+" vezes")
   cn:close()
Return .t.
ivanil.marcelino
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 26 Jul 2017 09:08
Cidade/Estado: Floripa/sc
Curtiu: 1 vez
Mens.Curtidas: 3 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro