Página 1 de 1
SQLite3
Enviado: 25 Nov 2011 18:16
por leandrolinauer
Boa tarde a todos.
Estou usando hoje e funcionando, xHARBOUR 1.1.0 SIMPLEX + DBF + GTWVW, e estou precisando urgente abrir tabela SQLITE3 de TERCEIROS PAF-ECF, alguem poderia me informar qual o caminho mais curto e menos dolorido para fazer isto, trabalhar com um banco de dados SQLite3?
Depois com mais tempo pretendo mudar de DBF para FIREBIRD ou até mesmo porque não SQLite3, gostei deste banco de dados.
No aguardo..
SQLite3
Enviado: 28 Nov 2011 11:28
por MARCELOG
Veja isso,
Código: Selecionar todos
#include 'hbsqlit3.ch'
procedure main()
local oDb, cSql, aTabela, i, j
oDb:=sqlite3_open(nomedb,.f.)
if empty(oDb)
alert('Faiou!') // É assim que a gente fala lá em Minas Gerais
return
endif
cSql:='select * from nometabela'
aTabela:=sqlite3_get_table(oDb,cSql)
if sqlite3_errcode(oDb) # 0
alert(sqlite3_errmsg(oDb))
return
endif
for i:=1 to len(aTabela)
for j:=1 to len(aTabela[i])
? aTabela[i,j] // faça o que quiser com os dados
next j
next i
return
Espero ter ajudado.
MarceloG
Ps: Não esqueça de linkar a lib do Sqlite
SQLite3
Enviado: 28 Nov 2011 12:11
por leandrolinauer
Obrigado MarceloG, grato pela resposta.
Vou testar mais com sqlite3, mas nos testes que fiz antes dava muitos erros ao fazer com xHARBOUR 1.1.0 Simplex, pesquisei no forum e entendi que teria que migrar tudo para HARBOUR 3.0, mas estou com muitos erros quando linko com HBMK2, consigo complicar o fonte com pequenas mudanças em HARBOUR 3 mas na hora de linkar a coisa pega.
Vou fazer agora a tarde outros testes com xHarbour, e posto conclusoes ainda hoje.
Grato
SQLite3
Enviado: 28 Nov 2011 14:41
por leandrolinauer
Este é o erro que aparece.
"Error: Unresolved external ´_HB_FUN_SQLITE3_OPEN´ referenced from myFILE.OBJ
Fala que não tem a biblioteca, talvez eu esteja com a lib errada, vc tem a libe correta para o xHarbour Simplex.
No aguardo.
SQLite3
Enviado: 29 Nov 2011 18:11
por leandrolinauer
Boa tarde MarceloG.
O que ocorre, e eu não me esprecei bem na primeira mensagem, é que estou querendo linkar a sqlite no xharbour 1.0.0 simplex e o que pelo que li não é possível, teria eu que mudar para harbour, no caso 3.0.
Fiz varias mudanças no fonte para testes em 2 arquivos, o que me levou muito tempo e mesmo assim ainda não consegui compilar o fonte com HBMK2, um modelinho apenas eu consegui, até mesmo o que vc me enviou, deu certinho no 3.0, mas daí compilar todo meu fonte feito em xharbour para harbour 3.0 ta dando uma dor de cabeça.
Pergunto, vc tem ai um script do hbmk2 que funcione sem eu precisar alterar muita coisa, pode ser que o geito que estou fazendo esta errado. ??
Fiz um teste com hbformat para ver o que era, e da erro em linha que não consigo identificar o porque do erro que nao ocorre no xharbour.
Legal que se eu apenas compilar o programa com o harbour 3.0 da certo, isto sem linkar, se usar o hbmk2 da um b.o.
Fiz teste com BRMAKE e consegui até gerar o programa sem erro, mas ao executar ele nao executa nada, simplesmente entra e sai não vai para tela grafica, fiz as complicações da GTWVW em HB3.0 e outras a mais, todas deu certo a compilação.
Então, to ficando desesperado, porque precisa usar a SQLITE3 urgente, se houve alguma forma que ela funcione no xharbour 1.0.0 simplex, algo a fazer para eu conseguir abrir arquivos .S3DB fico muito grato.
Atenciosamente
Leandro
SQLite3
Enviado: 03 Dez 2011 11:14
por Stanis Luksys
Olá,
Só pra dar um pitaco, na minha opinião, o sqlite é o real e definitivo substituto do dbf.
A faciliade de usar sql em um arquivo único de dados é incrível. Um milhão de vezes melhor do que abrir MySQL via RDD.
Claro que se o sistema for muito grande, não atende, presica de um sgbd mesmo.
Abraços.
Harbour 3.0 e GTWVW
Enviado: 12 Dez 2011 11:08
por leandrolinauer
Bom dia.
Consegui compilar e rodar programa com Harbour 3.0 e GTwvw, mas ocorre um problema usando a TBBrowseDB não aparece as linhas e colunas da grid a mesma função funcionava perfeitamente com xharbour agora deu isto.
Se alguem souber o problema, fico grato, parece que falta apenas isto para colocar em teste.
Grato
SQLite3
Enviado: 06 Jan 2012 09:12
por leandrolinauer
Bom dia MarceloG.
Fiz como vc descreveu abaixo, e deu certo a pesquia com SELECT, agora não encontrei documentarios a respeito dos comandos e estou apanhando nos demais comandos que preciso: UPDATE, INSERT, etc.
Vale lembrar que sou leigo em SQL, estou aprendendo agora na verdade, (heheheh).
Então, estou com um update que esta dando erro, segue abaixo:
c_SQL:="UPDATE BR_SEQ_ID SET SEQ_ID = '6' WHERE TABELA = BR_PREVENDA" //assim funciona para gravar o valor 6 em SEQ_ID, o campo é INTEGER.
o valor de d_SQL é numérico, estou passando corretamente ou a variavem tem que ser texto?
onde: BR_SEQ_ID = TABELA
SEQ_ID = CAMPO
TABELA = CAMPO
c_SQL:="UPDATE BR_SEQ_ID SET SEQ_ID = "+d_SQL+" WHERE TABELA = BR_PREVENDA" //assim nao funciona
c_SQL:="UPDATE BR_SEQ_ID SET SEQ_ID = '"+d_SQL+"' WHERE TABELA = BR_PREVENDA" //assim nao funciona
c_SQL:="UPDATE BR_SEQ_ID SET SEQ_ID = '"+d_SQL+"' WHERE TABELA = 'BR_PREVENDA'" //assim nao funciona
Qual é o jeito de passar um valor númerico para gravar.
Grato pela ajuda.
Um Harbraço.
Leandro
Código: Selecionar todos
#include 'hbsqlit3.ch'
procedure main()
local oDb, cSql, aTabela, i, j
oDb:=sqlite3_open(nomedb,.f.)
if empty(oDb)
alert('Faiou!') // É assim que a gente fala lá em Minas Gerais
return
endif
cSql:='select * from nometabela'
aTabela:=sqlite3_get_table(oDb,cSql)
if sqlite3_errcode(oDb) # 0
alert(sqlite3_errmsg(oDb))
return
endif
for i:=1 to len(aTabela)
for j:=1 to len(aTabela[i])
? aTabela[i,j] // faça o que quiser com os dados
next j
next i
return
SQLite3
Enviado: 07 Jan 2012 12:08
por leandrolinauer
Bom dia.
Quando a gente é cru é só ir tentando que da certo, parece que entendi como funciona os comandos SQL.
c_SQL:="UPDATE BR_SEQ_ID SET SEQ_ID = "+ Str(d_SQL) +" WHERE TABELA = 'BR_PREVENDA'"
Gravou perfeitamente, sempre envio como texto o comando, o que difere se é um número para o sql, é as aspas, sem aspas = numerico com aspas é texto.
Vou batalhando e fazendo funcionar.
Estou com uns tutoriais sql da vida encontrados na net para estudar a fundo, porque vou precisar tbem BLOQUEAR o registro enquanto esta sendo manipulado.
Grato por enquanto. :xau