Como armazenar array? Campo , TXT ou o que?
Preciso armazenar 260 valores booleanos em cada registro;
Creio não ser a melhor opção criar um campo para cada valor, pois a tabela ficaria com pelo menos 300 campos. Me sugeriram usar um vetor e achei um grande idéia mas não sei qual a melhor maneira de armazenar este array que recebe 260 valores.
Seria ÓTIMO se fosse possível armazenar o array em um campo só da tabela mas até onde sei não é. Uso Firebird e Delphi 7.
Sei que posso criar um TXT mas não sei se seria seguro criar um TXT para cada registro e puxa-los de uma pasta qualquer. Me disseram também para colocar esse TXT em um campo BLOB mas já ouvi comenta´rio que isso também não é bom.
Bom, o modo como for armazenar estes dados será fundamental no desenvolvimento da aplicação e não gostaria de me arrepender depois.
Por isso peço algumas opiniões sobre isso.
Então a questão é:
Como armazenar 260 valores (ou um array) booleanos no Firebird?
Obrigado desde já;
Creio não ser a melhor opção criar um campo para cada valor, pois a tabela ficaria com pelo menos 300 campos. Me sugeriram usar um vetor e achei um grande idéia mas não sei qual a melhor maneira de armazenar este array que recebe 260 valores.
Seria ÓTIMO se fosse possível armazenar o array em um campo só da tabela mas até onde sei não é. Uso Firebird e Delphi 7.
Sei que posso criar um TXT mas não sei se seria seguro criar um TXT para cada registro e puxa-los de uma pasta qualquer. Me disseram também para colocar esse TXT em um campo BLOB mas já ouvi comenta´rio que isso também não é bom.
Bom, o modo como for armazenar estes dados será fundamental no desenvolvimento da aplicação e não gostaria de me arrepender depois.
Por isso peço algumas opiniões sobre isso.
Então a questão é:
Como armazenar 260 valores (ou um array) booleanos no Firebird?
Obrigado desde já;
Ricna
Curtidas 0
Respostas
Gandalf.nho
19/08/2004
O Interbase/Firebird permite criar arrays nas tabelas, dê uma olhada na documentação sobre os tipos de dados.
GOSTEI 0
Afarias
19/08/2004
Não aconselho usar arrays do IB (ou FB) pelo ´fraco´ suporte existente (só podem ser manipulados por API)
Quando quero guardar um ´array´ de valores boleanos costumo usar um campo Interger -- mas como no seu caso o array é muito grande, então sugiro q use um varchar(260) dai vc coloca em cada posição do valor um V ou F (ou T/F ou 0/1)
T+
Quando quero guardar um ´array´ de valores boleanos costumo usar um campo Interger -- mas como no seu caso o array é muito grande, então sugiro q use um varchar(260) dai vc coloca em cada posição do valor um V ou F (ou T/F ou 0/1)
T+
GOSTEI 0
Vinicius2k
19/08/2004
Eu faço como o afarias, com a exceção de que não importando o tamanho do array eu sempre uso Varchar(N)...
Creio que seja a melhor solução... vc só vai precisar de montar uma função para ler este array dando os valores aos devidos componentes e vice-versa...
T+
Creio que seja a melhor solução... vc só vai precisar de montar uma função para ler este array dando os valores aos devidos componentes e vice-versa...
T+
GOSTEI 0
Ipc$
19/08/2004
Será que não seria melhor guardá-los num Blob?
Um varchar(260) é uma string que ficaria muito fácil alguém escrever qualquer coisa nela.
Já um Blob é mais difícil e o campo ficaria mais seguro.
Vc cria um TMemoryStream, dá um setsize de 260 e colocar os valores lá.
Um varchar(260) é uma string que ficaria muito fácil alguém escrever qualquer coisa nela.
Já um Blob é mais difícil e o campo ficaria mais seguro.
Vc cria um TMemoryStream, dá um setsize de 260 e colocar os valores lá.
GOSTEI 0
Vinicius2k
19/08/2004
Bem, pode até ser... eu particularmente só uso Blobs em último caso... praticamente apenas com imagens...
Só não entendi uma coisa... como assim ´fica fácil alguém escrever qualquer coisa nela´ ?
Só se vc quer dizer editando diretamente no banco, pq este campo não permitiria edição direta e, logicamente, os componentes que vão dar os valores boleanos à cada posição da string, tem que estar setados para só permitir o domínio escolhido (T/F, S/N, 0/1, etc...)
T+
Só não entendi uma coisa... como assim ´fica fácil alguém escrever qualquer coisa nela´ ?
Só se vc quer dizer editando diretamente no banco, pq este campo não permitiria edição direta e, logicamente, os componentes que vão dar os valores boleanos à cada posição da string, tem que estar setados para só permitir o domínio escolhido (T/F, S/N, 0/1, etc...)
T+
GOSTEI 0
Ipc$
19/08/2004
No caso de um Select * p/ um DBGrid; pronto, a segurança foi embora.
GOSTEI 0
Vinicius2k
19/08/2004
Falando como um bom mineiro : ´Uai, aí vc bagunçou o trem...´ :D
Afinal, quem vai determinar o select é o próprio desenvolvedor... que, se quiser, também pode exibir e/ou deixar o blob em modo de edição direta...
Quando faço isso com ´arrays´ eu sei que não pode ser editado manualmente de forma nenhuma, então eu não o deixo disponível em lugar nenhum...
Acho q continuei sem entender seu ponto de vista... :roll:
T+
Afinal, quem vai determinar o select é o próprio desenvolvedor... que, se quiser, também pode exibir e/ou deixar o blob em modo de edição direta...
Quando faço isso com ´arrays´ eu sei que não pode ser editado manualmente de forma nenhuma, então eu não o deixo disponível em lugar nenhum...
Acho q continuei sem entender seu ponto de vista... :roll:
T+
GOSTEI 0
Afarias
19/08/2004
Sem falar q não se pode usar um BLOB com SQL (sem usar uma UDF) -- assim, só seria possível manipular os dados no cliente!
T+
T+
GOSTEI 0
Ipc$
19/08/2004
Bom, depende do ponto de vista, da aplicação, da empresa.
Particularmente, ainda acho que um (Blobinho) ainda é mais seguro do que uma string.
Particularmente, ainda acho que um (Blobinho) ainda é mais seguro do que uma string.
GOSTEI 0