Logo Hardware.com.br
GBastos
GBastos Super Participante Registrado
777 Mensagens 4 Curtidas

Que banco de dados? (Delphi)

#1 Por GBastos 14/11/2005 - 17:16
Olá pessoal!

Vou fazer um programa para usar no meu trabalho (em Delphi 7, muito provavelmente), o único problema é que a política de informática é muito rígida (é um banco) e nada pode ser instalado, mesmo que seja free..

Quanto ao programa não tem problema, basta não adicionar nada no registro e embutir as dlls, o grande problema é o banco de dados.. O único banco de dados instalado nas máquinas é o Access (se é que aquilo pode se chamar de banco de dados :lol: )..

Então vem a minha pergunta: o que utilizar como banco de dados? O Access mesmo, apesar de todos os seus problemas? Ou seria mais vantagem guardar tudo em um txt, apesar da lentidão da busca? Ou XML? Mas não seria tão lento quanto o txt? Ou conhecem algum bd free que não necessite de instalação?
GBastos
GBastos Super Participante Registrado
777 Mensagens 4 Curtidas
#3 Por GBastos
14/11/2005 - 21:28
A questão é que não é possível falar com o responsável, o banco é nacional e estatal ainda por cima e as políticas são definidas em Brasília e seguidas a ferro e fogo.. Inclusive todos os aplicativos desenvolvidos por eles e disponibilizados para os clientes (cobrança de boletos, arrecadação sindical, etc.) é feito em VB com base Access.. Eu bem sei que dá cada problema louco, era eu que consertava e manipulava essas bases.. big_green.png Mas acho que compactando regularmente e fazendo backup diário, talvez seja utilizável, não?
Ah sim, o programa é pra uso próprio, ou, em outras palavras, pra adiantar meu lado :lol:.. Então ninguém vai reclamar, a não ser eu mesmo..

PS: A frase é de quem mesmo? Raul?
Ever tried. Ever failed. No matter. Try again. Fail again. Fail better.
GBastos
GBastos Super Participante Registrado
777 Mensagens 4 Curtidas
#5 Por GBastos
15/11/2005 - 16:25
Heheheh, pois é, grande Raul!

Mas o negocio é o seguinte: tudo na área de desenvolvimento (em Brasília) é desenvolvido em VB (e Cobol, mas é melhor deixar quieto :lol: ); aqui (Salvador) eu trabalho em uma área que não tem nada a ver, a gente atende solicitações de clientes, só que é tudo na base do papel, até quando chega um e-mail, primeiro ele é impresso.. hehehe Então eu queria facilitar meu trabalho, fazendo um sisteminha de chamados para organizar tudo.. Então esse é o problema: tenho total autonomia para fazer o que quiser e como quiser, mas tenho essas limitações quanto à instalação..
E aí? Que banco de dados uso? Alguma sugestão? Ou parto pra ignorância e faço em XML ou txt mesmo?
Ever tried. Ever failed. No matter. Try again. Fail again. Fail better.
GBastos
GBastos Super Participante Registrado
777 Mensagens 4 Curtidas
#7 Por GBastos
15/11/2005 - 22:32
gto
olhe, fazer em xml não fica tãão ruim, usando o ClientDataSet
eu nunca trabalhei com quantidades grandes de dados, m...


Pois é, não rola mesmo, qualquer coisa que você instalar, sua máquina é excluída da rede e logo depois vem gente do setor de suporte reclamar e copiar a imagem no hd.. :roll:

Não vai ser muito grande, seria coisa de umas duas tabelas, uma com os dados dos clientes (que são poucos) e outra com as ocorrências que são em torno de cinco por dia..

Qual a experiência que vc tem com XML? A velocidade de busca não fica muito prejudicada?

E afinal, é tão impráticavel assim usar Access? :lol: Mesmo fazendo um backup diário e manutenção frequente? Apesar dos pesares, já vi uma base Access de quase 300 MB (de uma funerária, diga-se de passagem :lol: ) rodando redondo..
Ever tried. Ever failed. No matter. Try again. Fail again. Fail better.
The Brink of Time
The Brink of... Veterano Registrado
1.5K Mensagens 2 Curtidas
#8 Por The Brink of...
16/11/2005 - 02:07
GBastos, pra você, sozinho, coisas pequenas, talvez não seja. Mas tem de tomar cuidado na implementação do mesmo. Assim como você viu bases de dados de 300mb funcionarem redondo, já vi em lan Houses uma base abrir as pernas com apenas 30mb. Agora: será que é em toda pesquisa que os 300mb rodam "redondo"? O problema do access é que ele funciona "bonitinho", mas sempre naquela hora em que voce precisa dele ele te deixa na mão.

Não tenho experiência com XML, procure por bancos de dados com xml ou xml databases implementations ou coisas assim no google, e dê uma olhada. Se é algo pra agilizar seu serviço, analise friamente as desvantagens e vantagens de cada metodo.
Alguém pare o mundo que eu quero descer!
gto
gto Tô em todas Registrado
2.1K Mensagens 18 Curtidas
#9 Por gto
16/11/2005 - 17:58
Opa!!

Que ruim, políticas internas inflexíveis, grr ! :x
Conheço uma porrada dessas empresas que acham que o user 'sempre' vai estragar a máquina quando mexe..
anyway, vamos lá

Cara, minha experiência com XML é de coisas pequenas, do tipo, um arquivo com no máximo 40, 50 registros, coisa pouca mesmo
( eu uso XML pra guardar a configuração do meu programa de backup, diga-se de passagem ainda em desenvolvimento smile.png )

Funciona muito bem ao meu ver, usando o ClientDataSet do delphi 7. Quanto a velocidade, * acho * que funciona assim: o componente carrega todo o arquivo em memória quando você chama o procedimento LoadFromFile. Certeza não tenho pq como sempre foi arquivos pequenos, não da pra notar demora. Mas eu fico de fazer um teste assim que sobrar um tempo, depois posto o resultado aqui :wink:

Ao Access, eu, pessoalmente, nunca usei (nunca tive coragem :mrgreen: ), mas um amigo meu que desenvolve em VB vive reclamando, e quando eu trabalhava na assistência já tive que dar muita má notícia por causa dele heheh
Mas pq não tentar né!

Vou testar arquivos grandes dps posto o result
wololo
GBastos
GBastos Super Participante Registrado
777 Mensagens 4 Curtidas
#10 Por GBastos
16/11/2005 - 18:51
The Brink of Time
GBastos, pra você, sozinho, coisas pequenas, talvez não seja. Mas tem de tomar cuidado na implementação do mes...


Rapaz, o pessoal lá não tinha reclamação não, só mandavam a base de dados uma vez por mês para manutenção devido a um bug do programa (tinha um campo que deveria ter o mesmo valor para cada carnê mas o programa colocava um diferente para cada parcela, e ainda por cima os caras declararam o campo como inteiro, ou seja, sempre que chegava em 32.768 dava overflow..)

Mas é claro que eu nunca confiaria no Access pra essa quantidade de dados, ainda mais de cobrança... :lol: E ainda por cima, tirando emprego dos colegas, com esse movimento todo não dava pra desenvolver um sistema próprio?!?! :roll:

gto, se for isso mesmo, maravilha! Eu sempre que possível faço programas com arquivos txt, mas esse negócio de ficar lendo linha por linha é dose.. Mesmo que o clientdataset gerencie isso, é muita E/S... Veja aí, se possível, e poste o resultado! Valeu!

E ainda estou aberto à outras sugestões... Na verdade, minha primeira opção seria um bd mesmo, mas que não precisasse de instalação.. Procurei no google, sourceforge, etc, mas não achei nenhum..
Ever tried. Ever failed. No matter. Try again. Fail again. Fail better.
Kleber Costa
Kleber Costa General de Pijama Registrado
5.2K Mensagens 1 Curtida
#11 Por Kleber Costa
16/11/2005 - 20:20
Gbastos, eu não sei te dizer como fazer mas usando o SQLite você deve achar uma solução! A piori seria o seguinte, você iria compilar o seu programa com o suporte a API do sqlite embutida e teria o bd.sqlite a parte! Seriam 2 arquivos(programa.exe e db.sqlite) sem precisar instalar nada no windows e funcionando 100%!! Nunca fiz algo do tipo mas sei que dá pra fazer!
Salve! Ó terra dos altos coqueiros!
De belezas soberbo estendal!
Nova Roma dos bravos guerreiros
Pernambuco, imortal, imortal!


Linux User #262254
GBastos
GBastos Super Participante Registrado
777 Mensagens 4 Curtidas
#12 Por GBastos
17/11/2005 - 23:28
Muito interessante esse SQLite, Kleber! Não conhecia, vou dar uma olhada, talvez seja isso..

Edit: achei dois problemas:
1) Consegui convencer o chefe lá a utilizar no nosso setor o programa que vou fazer, afinal são só duas pessoas mesmo.. :lol: Só que li na wikipedia que ele trava o banco todo no início da transação e no site deles diz que o bicho funciona a base de transações:

The traditional File/Open operation does an sqlite3_open() and executes a BEGIN TRANSACTION to get exclusive access to the content. File/Save does a COMMIT followed by another BEGIN TRANSACTION.


Vou ver se tem jeito de duas pessoas acessarem ao mesmo tempo..

2) Pelo site não tem nada em relação a Delphi, só C e TCL.. Tenho que ver se acho algum wrapper pronto e funcionando..

De qualquer forma, vou tentar fazer um proof of concept com o SQLite e XML, e ver no que é que dá... (gto, quando tiver testado, post! big_green.png )
Ever tried. Ever failed. No matter. Try again. Fail again. Fail better.
gto
gto Tô em todas Registrado
2.1K Mensagens 18 Curtidas
#13 Por gto
18/11/2005 - 17:23
Opa, opa, novidades

testei com uma base grandinha aqui, o lance ficou ultra fast, até me surpreendi
criei um programa de teste, quem quiser baixar, tem os fontes e um binario pré-compilado

o único problema que eu notei, que você poderá enfrentar, é que toda alteração no ClientDataSet só vai refletir no arquivo quando você chamar o SaveToFile, e um cliente que por ventura esteja conectado ao mesmo tempo na base terá que usar o LoadFromFile para ver as alterações feitas.. é como se você tivesse que dar load/save no db

Vocês podem ver ali que eu coloquei em alguns botões as chamadas, mas mesmo assim você possa se interessar em adicionar um "sincronizar", ou qualquer outra solução

eis o link: http://www.digitalw.com.br/gto/clientds.zip
não sei quanto tempo vai ficar online, uma semana acho wink.png

ps: sem tirar sarro com o meu programinha!!! :mrgreen:

[]'s
wololo
peczenyj
peczenyj Geek Registrado
3K Mensagens 75 Curtidas
#14 Por peczenyj
18/11/2005 - 17:29
salva em formato csv ou com os campos separados por TAB, strings protegidas com aspas, se mudar a extensão para xls vc pode abrir no excel bonitinho até (da mesma forma q um csv).
tu vai poder usar uma planilia eletronica pra ajustar os dados caso dê alguma M... e faz os parsers na mão, acho que tu não vai precisar de tabelas auxiliares e, se precisar, não vai ser muito complicado.
pode ficar ruim ? pode, mas ai é tudo complicado mesmo...
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal