Pessoal programo em várias linguagens (C#, flex, php, e outras) mas resolvi fazer "downgrade" para voltar aos bons tempos do clipper.
Quando descobri o harbour fiquei empolgado porque não é pago como o xharbour e parece que funciona muito bem no linux.
Gostaria de saber se alguém teve experiência em usar o harbour com o postgresql em ambiente linux, pois além de ter que relembrar como programa-se em clipper estou com muitas dúvidas quanto a essa integração e não percebi uma documentação muito detalhada nesse aspecto.
Desde já minhas desculpas se esse tópico causar alguma reação negativa a algum membro mais "das antigas", minha intenção é participar cada vez mais e o que aprender compartilhar com vocês.
Linux + harbour + postgre
Moderador: Moderadores
-
danielgianni
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 28 Abr 2010 14:20
- Localização: Ribeirão Preto - SP
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Re: Linux + harbour + postgre
Puxa!
Voltar do C# para xBase é incompreensivel para mim.
Agora o que tem haver PHP/Flex com Harbour é a mesma coisa que comparar uvas e bananas, com feijão e arroz.
São propositos diferentes embora o Harbour faça e até melhor (na minha opnião) quando usamos ele no campo do PHP por exemplo. Já o Flex podemos usa-lo em conjunto com o Harbour uma vez que o Flex não faz o que o harbour se propoe a fazer.
Entretanto os exemplos de acesso (sua pergunta) ao Postgresql em ambinente Linux ou Windows podem ser obtidos acessando a pasta contrib.
Esse é um exemplo, usando hbpgsql.
Os documentos são escassos mesmo, precisamos olhar diretamente nos fontes para aprender.
Infelizmente ainda não uso acesso a esses SGBD, razão pela qual não posso te ajudar mais.
Saudações,
Itamar M. Lins Jr.
Voltar do C# para xBase é incompreensivel para mim.
Agora o que tem haver PHP/Flex com Harbour é a mesma coisa que comparar uvas e bananas, com feijão e arroz.
São propositos diferentes embora o Harbour faça e até melhor (na minha opnião) quando usamos ele no campo do PHP por exemplo. Já o Flex podemos usa-lo em conjunto com o Harbour uma vez que o Flex não faz o que o harbour se propoe a fazer.
Entretanto os exemplos de acesso (sua pergunta) ao Postgresql em ambinente Linux ou Windows podem ser obtidos acessando a pasta contrib.
Código: Selecionar todos
C:\harbour\trunk\harbour\contrib\hbpgsql\tests
/*
* $Id: stress.prg 14109 2010-03-08 18:08:39Z vszakats $
*/
/*
* VERY IMPORTANT: Don't use this querys as sample, they are used for stress tests !!!
*/
#include "common.ch"
#include "postgres.ch"
PROCEDURE Main( cServer, cDatabase, cUser, cPass )
LOCAL conn, res, i, x
LOCAL cQuery
CLEAR SCREEN
? "Connecting...."
conn := PQconnect( cDatabase, cServer, cUser, cPass, 5432 )
? PQstatus( conn ), PQerrormessage( conn )
IF PQstatus( conn ) != CONNECTION_OK
QUIT
ENDIF
? "Dropping table..."
PQexec( conn, "DROP TABLE test" )
? "Creating test table..."
cQuery := "CREATE TABLE test("
cQuery += " Code integer not null primary key, "
cQuery += " dept Integer, "
cQuery += " Name Varchar(40), "
cQuery += " Sales boolean, "
cQuery += " Tax Float4, "
cQuery += " Salary Double Precision, "
cQuery += " Budget Numeric(12,2), "
cQuery += " Discount Numeric(5,2), "
cQuery += " Creation Date, "
cQuery += " Description text ) "
PQexec( conn, cQuery )
PQexec( conn, "SELECT code, dept, name, sales, salary, creation FROM test" )
PQexec( conn, "BEGIN" )
FOR i := 1 TO 10000
@ 15, 0 SAY "Inserting values...." + Str( i )
cQuery := "INSERT INTO test(code, dept, name, sales, salary, creation) " +;
"VALUES( " + Str( i ) + "," + Str( i + 1 ) + ", 'DEPARTMENT NAME " + StrZero( i ) + "', 'y', " + Str( 300.49 + i ) + ", '2003-12-28' )"
PQexec( conn, cQuery )
IF Mod( i, 100 ) == 0
? PQexec( conn, "COMMIT" )
? PQexec( conn, "BEGIN" )
ENDIF
NEXT
FOR i := 5000 TO 7000
@ 16, 0 SAY "Deleting values...." + Str( i )
cQuery := "DELETE FROM test WHERE code = " + Str( i )
PQexec( conn, cQuery )
IF Mod( i, 100 ) == 0
PQexec( conn, "COMMIT" )
PQexec( conn, "BEGIN" )
ENDIF
NEXT
FOR i := 2000 TO 3000
@ 17, 0 SAY "Updating values...." + Str( i )
cQuery := "UPDATE FROM test SET salary = 400 WHERE code = " + str( i )
PQexec( conn, cQuery )
IF Mod( i, 100 ) == 0
PQexec( conn, "COMMIT" )
PQexec( conn, "BEGIN" )
ENDIF
NEXT
res := PQexec( conn, "SELECT sum(salary) as sum_salary FROM test WHERE code between 1 and 4000" )
IF PQresultStatus( res ) == PGRES_TUPLES_OK
@ 18, 0 SAY "Sum values...." + PQgetvalue( res, 1, 1 )
ENDIF
x := 0
FOR i := 1 TO 4000
res := PQexec( conn, "SELECT salary FROM test WHERE code = " + Str( i ) )
IF PQresultStatus( res ) == PGRES_TUPLES_OK
x += Val( PQgetvalue( res, 1, 1 ) )
@ 19, 0 SAY "Sum values...." + Str( x )
ENDIF
NEXT
? "Closing..."
conn := NIL
RETURN
Os documentos são escassos mesmo, precisamos olhar diretamente nos fontes para aprender.
Infelizmente ainda não uso acesso a esses SGBD, razão pela qual não posso te ajudar mais.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Re: Linux + harbour + postgre
Mais uma coisa.
o xHabour é gratuito.
Saudações,
Itamar M. Lins jr.
o xHabour é gratuito.
Saudações,
Itamar M. Lins jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.