• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ribeiro55

QATDB - QueryAble Text Data Base

166 mensagens neste tópico

QAT.png

Titulo do Projecto: QATDB - QueryAble Text Data Base

Última Versão: 0.48 BETA

Site Oficial: http://www.risingcognition.com/dev/ TBA

Líder do Projecto: Sérgio Ribeiro (ribeiro55)

Descrição do Projecto: Sistema de base de dados baseada num ficheiro de texto. Ideal para utilizar em pequenas necessidades de pequenas aplicações que não justifiquem soluções Microsoft e semelhantes.

Mais pontos no site (em Inglês)

Encontra-se na sua versão BETA, pelo que não se garante a perfeição das suas funcionalidades.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ora, claro que existe.

Se fossemos por aí não se fazia nada. :biggrin:

Queria apenas provar (nem que seja a mim mesmo) que um Portuga sem formação conseguia fazer algo que se chegasse perto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desculpa lá, não tinha percebido que já tinhas algo feito, do que vi gostei, continua o bom trabalho.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tambem me pareceu um projecto bem estruturado, feito com "cabeça tronco e membros".

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Confesso que a utilização possa ser um pouco vaga e que o PDF não esteja 100% virado para a explicação exaustiva.

Conto fazer uns videos de explicação (como os da Microsoft) para o pessoal que estiver interessado.

Por falar no pessoal que estiver interessado em exprimentar, respondo a qualquer post aqui ou PM em relação à QATLANG :P

O QAT eXplorer foi feito inteiramente com chamadas à biblioteca, para demonstrar a capacidade de independência que o motor tem. Por outras palavras, é possível a qualquer pessoa fazer um QAT eXplorer.

Tenho programadas umas adições interessantes como a capacidade de fazer JOINS, argumentos na query e stored procedures.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ora bem, como sou suficientemente preguiçoso para usar SQLite :D resolvi dar uma oportunidade ao teu produto.

O que acontece é que nem uma base de dados consigo criar. Faço código para criar a instância, tudo bem, e depois quando chamo a função createDatabase é que o caldo fica entornado... Vou colocar aqui o código que fiz:

Public Class Form1
    Dim x As QATDB.QATCore

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        x = New QATDB.QATCore()
        x.DebugMode = True
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If x.CreateDatabase("wcconfig", "wcadmin", "wcconfig", My.Application.Info.DirectoryPath & "\") Then
            MsgBox("Base de dados wcconfig criada!")
        Else
            MsgBox(x.LastErrorMessage)
        End If
    End Sub
End Class

Ele vai-me parar sempre ao lastError, com a mensagem:

20-06-2009 [18:10:36]  -  Unable to write the QAT database file.

O directório onde me encontro:

C:\Documents and Settings\Andre Silva\Os meus documentos\Visual Studio 2008\Projects\QATDB testing\QATDB testing\bin\Debug

Já tentei com e sem a barra final, caminho relativo "./", mas dá o mesmo erro... É do programa, ou fui eu que meti água?

EDIT: Meti água... Afinal tinha de se indicar o caminho + ficheiro. :\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom, estive a utilizar esta biblioteca até agora, e gostei, porque mesmo o facto da documentação estar ainda um pouco incompleta, não me impediu de ler e gravar os dados.

Só tenho uma sugestão, que no meu ponto de vista seria uma mais valia para o projecto:

Excepções: Para ser sincero, preferia um mecanismo de excepções em vez do actual de true/false e consulta ao lastErrorMessage. Primeiro, porque o lastErrorMessage mostra também mensagens de sucesso, e fica difícil criar programaticamente um mecanismo para apanhar erros de queries num ciclo, por exemplo. Depois, o true/false... Repara:

if not db.CreateDatabase("dcconfig", "dcadmin", "dcconfig", "dcconfig.db") then
  msgbox "ocorreu um erro ao criar"
  end
end if

' tabela de opcões
if not db.AddTable("options") then
  msgbox "ocorreu um erro criar tabela options"
endif

Agora com um sistema de excepções:

try

  db.CreateDatabase("dcconfig", "dcadmin", "dcconfig", "dcconfig.db")
  db.AddTable("options")

catch ex as QATException
  msgbox "Ocorreu um erro: " & ex.toString
end try

Com excepções evitas aquele molho de if's pelo meio do código. QATException seria uma classe que estende a classe Exception, na qual poderias criar os teus próprios códigos de erro, e por exemplo, separar a parte de relatório de erros do projecto numa classe à parte.

De resto gostei muito e tem tudo o que preciso para um projecto que estou a reanimar, precisamente pela falta de um local onde guardar as configurações.

Mas já agora, tenho outra dúvida (menos parva espero...):  estou a guardar strings com espaços no num campo, e por alguma razão que ainda não entendi, a query continua a dar erro de sintaxe, já revi as virgulas e parece estar tudo bem. Como nos teus exemplos não tinhas nada exemplos com espaços nas strings, pergunto se isso é suportado ou ainda não? E valores com virgulas?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Felizmente estou a implementar novos métodos para o errorcatcher onde podes escolher se queres lançar excepções ou disparar eventos, com o erro ou mensagem detalhado e mais individualizado.

Quanto à segunda parte, quis implementar um sistema sem datatypes mas parece que estou a complicar o conceito :D

Para preparares o valor que queres enviar em query, tens de o Modular.

Explico isso, um pouco mal confesso, na referência, sobre o título "Modulation and Demodulation"

O modulador/desmodulador está disponível na lib.

Usa o QAT eXplorer, clica no campo de escrever a query e depois carrega no botão à esquerda, com um "M" (de Modulate).

Vai-te aparecer uma caixa para escreveres. Escreve algo com espaços e vírgulas e tudo o que te lembres.

Ao carregares no OK, a introdução é modulada.

Para além disso, em cima da caixa de query tem uma série de caracteres que são utilizados internamente que quando clicados são passados para a caixa de query, já modulados.

Por exemplo, o espaço modulado fica #s

Não queria desistir da auto-detecção de datatypes e utilizar as aspas ou pelicas, pelo menos ainda não :)

Existem alguns pormenores como o AutoID que também são importantes e podem não estar muito explícitos.

Vou fazer, assim que tiver oportunidade, uns videos tipo os da Microsoft, com ambientes de teste e todo o tipo de situações.

Entretanto detectei também uns bugs na modulação, que nessa versão és capaz de descobrir, que já estão resolvidos. Vou subir a versão, oficialmente, segunda ou terça feira.

Fico bastante contente em saber que alguém, no mínimo, teve curiosidade em espreitar a lib :cheesygrin:

Estava relutante em implementar JOINS e retorno de nomes de colunas, mas isto assim anima  :)

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esta biblioteca funciona e dá para as minhas necessidades, porque não usá-la? :D

Quanto ao facto de ter de modular dados, não fazia a mínima ideia, confesso que não li essa parte do manual  :-[

Não experimentei exaustivamente, mas não há problemas se a query contiver o cardinal? (se calhar é o tal que já está resolvido)

por exemplo:

e se escrever assim #s

e#sse#sescrever#sassim:#s#s

De qualquer das maneiras, vou aguardar por essa actualização, e depois cá devo estar eu novamente :D

Cumps.

EDIT: Os métodos do QATTools são estáticos? Pela documentação dá aspecto de o serem, no exemplo da msgbox, mas no uso, tens de se instanciar a class QATTools.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não são estáticos mas é uma hella'good idea :)

Nessa versão tens de instanciar QATTools.

A próxima versão já vai ter muita coisinha nova!

Ter um user é diferente do que ser so eu e um colega meu a usar é mesmo produtivo :cheesygrin:

Já descobri mais cenas para melhorar agora contigo do que no mes ou 2 meses há que esta biblioteca foi escrita :D

Quanto aos cardinais, não tem problema nenhum. É alias, assim que deve de ir.

Pensei que fosse mais fácil, em termos programáticos porque não tens de te preocupar com pelicas ou aspas, basta modular o valor.

Mas ainda vou pensar se vale a pena enviar todos os valores com aspas ou pelicas, para evitar a modulação, para além dos já, a meio caminho, parametros.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Libertei uma nova versão.

0.42B que já conta com a tua sugestão de error reporting, colunas nomeadas em datatable e parâmetros.

As QATTools são agora métodos estáticos. Nem fazia sentido não serem. Obrigado B)

Também resolvidos estão os problemas com a modulação/desmodulação.

O QAT eXplorer também subiu de versão para suportar parâmetros.

De novo, sempre "aval" para dúvidas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nova versão. 0.43B em http://www.risingcognition.com/qat/

Esta versão já conta com 4 adicionais funções à QATLANG e suporte para operações com datas.

Funções adicionadas:

FIRST

Para apanhar certa coluna do primeiro registo

LAST

Para apanhar certa coluna do último registo

LUCKPICK

Para apanhar certa coluna de um registo aleatório

MATCHLIST

Uma espécie de JOIN do MSSQL para complementar dados da tabela base com dados de outras tabelas.

Toda a síntaxe nova está exemplificada no QATeXplorer, bem como todas as funcionalidades previstas, pelo que é boa ideia começar por aí.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tento abrir o eXplorer e o Windows diz-me sempre que ele deixou de funcionar. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para além da Framework instalada precisas de ter o QATDB.DLL junto do executável.

Isso pode ser causado por estares a tentar abrir directamente do ZIP.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu estraí tudo para o Desktop. Tenho lá o QATDB.dll e o QATDB eXplorer.exe. Tenho a .Net Framework instalada, porque tenho o VB 2008 Express.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:S

Então não sei... é estranho. :P:thumbsup:

Vou tentar extraír para outra máquina que não a minha. Pode ser algum granel com o ZIP.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

3 máquinas diferentes, duas com Vista uma com XP, correu em todas.  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens o SP1 da Framework 3.5 ?

Estupidamente não fiz "clear unused references" e pode estar a ir alguma do SP, por defeito.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é que eu vejo a versão que tenho da framework?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Abre o VB Express, lá em cima no menu "Help" selecciona o último item: "About bla bla".

Na janela que te aparecer, do lado direito, em cima, diz a versão da framework que tens instalada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se não disser SP1 à frente disso é porque não tens o SP1 instalado.

Tenho que tirar as referências não usadas.

Mas agora só posso fazer isso mais à noite...

Por outro lado, é uma runtime necessária... aconselhava-te a instalar :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora