Como os Colegas, postaram...o melhor jeito é SQLLIB...tive a honra de testar o Demo dela e realmente é o sonho de todo mundo que quer usar Mysql ou PostgreSql, se vc tem uma graninha para Investir...vale a pena,...agora se vc tiver afim de fazer uma Gambi, segue o caminho das pedra...não testei com PostgreSQL...mas é pouca alteração e deve funcionar !!!
Caminho das Pedra....
\xharbour\source\rdd\usrrdd\rdds\adordd
http://www.fivetechsoft.com/forums/viewtopic.php?t=6815&postdays=0&postorder=asc&highlight=postgresql&start=225
http://www.fivetechsoft.com/forums/viewtopic.php?t=6814&postdays=0&postorder=asc&start=150&sid=f51e01f3b0ac2f32d1f934b18f7b36eb
Referente aos Driver do PostgreSql:
http://www.connectionstrings.com/?carrier=postgresql
http://pgfoundry.org/projects/psqlodbc/
Vc tem que entender tmb um pouco sobre SQL, no link abaixo tem quase tudo:
http://www.postgresql.org.br/
Obs: Para Mysql ou Access, não prescissa alterar a Adordd.
Agora, pela Lib nativa do Postgresql ou Mysql.
Segue um link de comandos que devem ser enviado por query()
http://pgdocptbr.sourceforge.net/pg80/sql-commands.html
Ex:
local oQuery
local oServer
local oRow
IF MSGyesno("Atenção vc deve esta conectado ao Internet para poder baixar os Pedidos.......Deseja Continuar ?","Aviso do Sistema")
DialogoTemporal("Conectando ao Banco de Dados On-Line",)
oServer := TMySQLServer():New("localhost","root","123456")
if oServer:NetErr()
IF oDlgHabla#NIL
oDlgHabla:CLOSE()
ENDIF
MSGINFO("Por Favor Verifique sua Conexão com a Internet","Aviso do Sistema")
return
else
oServer:SelectDB("dados")
if oServer:NetErr()
MSGINFO("Não achou a base de DADOS On-line")
IF oDlgHabla#NIL
oDlgHabla:CLOSE()
ENDIF
return
endif
endif
//Finaliza o dialog
IF oDlgHabla#NIL
oDlgHabla:CLOSE()
ENDIF
DialogoTemporal("Aguarde...o sistema esta verificando e Baixando os Pedidos ON-LINE ",)
oQuery:=oServer:Query("select * from pedidos")
if oQuery:neterr()
MSGINFO("Não Achou o Banco PEDIDOS")
USE TEMP.DBF EXCL // um dbf local com a estrutura
aDbfStruct := TEMP->(dbStruct())
oServer:CreateTable('pedidos', aDbfStruct) //criando a tabela on-line
SELE TEMP //fecha o DBF local
USE
endif
*******cria um novo registro**********
for t:=1 to 10 // xemplo de Incluir registro
oQuery:=oServer:Query("INSERT INTO pedidos (codigo,razao,pedido) values ('1234','leonardo','2522')")
next t
******************************
IF !FILE("TEMP.DBF") // processo ao contrario agora
aStru := oServer:TableStruct('pedidos')
DBcreate("TEMP", aStru)
ENDIF
USE TEMP.DBF EXCL //caso ela jah esteja...zero o DBF
ZAP
for i:=1 to oQuery:lastrec()
vNUM=0
oRow:=oQuery:getrow(i)
dbappend()
for e:=1 to 78
vNUM=vNUM+1
fieldput(vNUM,oRow:fieldget(vNUM)) //BAIXANDO OS PEDIDO
next e
dbcommit()
next i
**********deleta todos os registros****************
oQuery := oServer:query("TRUNCATE TABLE pedidos")
***************************************************
oQuery:Destroy()
oServer:Destroy()
DBCLOSEALL()
//Finaliza o dialog
IF oDlgHabla#NIL
oDlgHabla:CLOSE()
ENDIF
*****************************
Espero que Ajude
Boa Sorte
Leonardo Machado
Porto Alegre-RS
FiveWin 2.7 / xHarbour 0.99.xx / BCC55 / Vrmm / xDev