Página 1 de 1
SQLite - Coluna DATETIME
Enviado: 23 Set 2018 21:04
por susviela@bol.com.br
Estou criando uma base de dados e tenho uma dúvida que já está solucionada mas eu acho que a colaboração de vocês pode render um código mais produtivo.
Ambiente:
HMG 3.4.4 ( SQLite nativo )
Código: Selecionar todos
LOCAL cSql := "CREATE TABLE cliente ( " +;
" idcliente INTEGER PRIMARY KEY AUTOINCREMENT, " +;
" nome CHAR(100), "+;
" idade INTEGER, "+;
" ultimocontato DATETIME DEFAULT ('0000-01-01 00:00:00'); "
Estou tendo alguma dificuldade com o retorno da consulta dessa tabela, com o seguinte código:
Código: Selecionar todos
cSql := "SELECT * FROM cliente"
...
..
DO WHILE sqlite3_step( cRet ) == 100
aLinha := {}
nI := 0
AADD( aLinha, sqlite3_column_int ( cRet, ++nI ) ) // idcliente
AADD( aLinha, sqlite3_column_text( cRet, ++nI ) ) // nome
AADD( aLinha, sqlite3_column_int( cRet, ++nI ) ) // idade
AADD( aLinha, sqlite3_column_text( cRet, ++nI ) ) // ultimocontato
AADD(aDados, aLinha)
ENDDO
Até solucionei usando a seguinte linha:
Código: Selecionar todos
cSql := "SELECT idcliente, nome, idade, DATETIME(ultimocontato) FROM cliente"
Como vocês estão tratando isso ? ( sqlite3_column_type está me retornando 3 )
SQLite - Coluna DATETIME
Enviado: 24 Set 2018 21:42
por alxsts
Olá!
susviela@bol.com.br escreveu:Como vocês estão tratando isso ?
Nunca mexi com SQLite. Este tópico é meu primeiro contato com ele. Pesquisando sobre esse SGBD verifiquei - além do que já foi exposto em outro tópico de sua autoria - que é bem leve. Ainda não vi tudo mas, pelo menos stored procedures ele não tem.
Pesquisando sobre tipos de dados, descobri que ele trata os tipos da mesma forma que o Clipper, ou seja, o conteúdo da coluna define seu tipo (ou afinidade, como é tratado no jargão SQLite). Não sei até que ponto isto é bom ou ruim. Vejam
Datatypes In SQLite Version 3
susviela@bol.com.br escreveu:Estou criando uma base de dados ...
Este é o melhor momento para já começar usando alguns padrões que podem ajudar na sequência do desenvolvimento e futuras manutenções. É uma ótima prática adotar padrão de nomenclatura para os objetos do banco de dados. Eu uso prefixos que ajudam a agrupar objetos e pesquisar no código fonte.
Prefixos para objetos (pode variar de um SGBD para outro)
- tb - tabela - tbCustomer
vw - view - vwCustomer
tg - trigger - tgInsertCustAddress
sq - sequence - sqCustID
fn - função - fnComputeAmountDue
sp - stored procedure - spListAllProducts
ix - índice - ixCustomerName
Prefixos para colunas
- fg - flag - fgActive
cd - código - cdCustomer
qt - quantidade - qtItems
vl - valor - vlTotalOrder
nm - nome - nmUser
ds - descrição - dsStatus
dt - data - dtLastUpdated
hr - hora - hrStart
ts - timestamp - tsInserted
gi - guid (global unique identifier) - giIdentifier
sg - sigla - sgUF
st - status - stOrderStatus
tx - taxa - txInterestRate
tp - tipo - tpProductType
nu - número -nuStreetNumber
id - Identity - idOrderID
pk - primary key - PKInvoice
fk - foreign key - FKOrderItemProduct
SQLite - Coluna DATETIME
Enviado: 25 Set 2018 10:40
por susviela@bol.com.br
Eric.Developer escreveu:
Não há nenhum problema no código abaixo, o erro esta apenas no CREATE, não fechou o parenteses
Ok, Desculpe o erro de digitação pois esse é um exemplo do código criado ... faltou mesmo o parenteses no final, obrigado por dispor-se em analisar o código.
alxsts escreveu:Olá!
susviela@bol.com.br escreveu:Estou criando uma base de dados ...
Este é o melhor momento para já começar usando alguns padrões que podem ajudar na sequência do desenvolvimento e futuras manutenções. É uma ótima prática adotar padrão de nomenclatura para os objetos do banco de dados. Eu uso prefixos que ajudam a agrupar objetos e pesquisar no código fonte.
Prefixos para objetos (pode variar de um SGBD para outro)
Prefixos para colunas
Opa ...
muito boa essas dicas, algumas já uso em no Postgresql onde trabalho com desenvolvimento web, e optei por usar SQLite para desenvolver em desktop pela praticidade de ser embarcado, eu envio APENAS UM EXECUTÁVEL para o cliente e BINGO !!!!!!! (Qualquer semelhança com o Clipper não é mera coincidência ! )
Facilitar a vida do usuário com certeza vai aumentar o alcance dos seus sistemas .
SQLite - Coluna DATETIME
Enviado: 28 Set 2018 17:02
por HASA
Susviela no site oficial achei esse comentário :
Se houver muitos programas clientes enviando SQL para o mesmo banco de dados em uma rede, use um mecanismo de banco de dados cliente / servidor em vez de SQLite. O SQLite funcionará em um sistema de arquivos de rede, mas devido à latência associada à maioria dos sistemas de arquivos de rede, o desempenho não será ótimo. Além disso, a lógica de bloqueio de arquivos é problemática em muitas implementações do sistema de arquivos de rede (no Unix e no Windows). Se o bloqueio de arquivo não funcionar corretamente, dois ou mais clientes podem tentar modificar a mesma parte do mesmo banco de dados ao mesmo tempo, resultando em corrupção. Como esse problema resulta de erros na implementação do sistema de arquivos subjacente, não há nada que o SQLite possa fazer para evitá-lo.
https://www.sqlite.org/whentouse.html
Será que é um balde de água fria ?
:'(
HASA
SQLite - Coluna DATETIME
Enviado: 28 Set 2018 17:12
por HASA
SQLite - Coluna DATETIME
Enviado: 29 Set 2018 11:12
por susviela@bol.com.br
HASA escreveu:Susviela no site oficial achei esse comentário :
Se houver muitos programas clientes enviando SQL para o mesmo banco de dados em uma rede, use um mecanismo de banco de dados cliente / servidor em vez de SQLite. O SQLite funcionará em um sistema de arquivos de rede, mas devido à latência associada à maioria dos sistemas de arquivos de rede, o desempenho não será ótimo. Além disso, a lógica de bloqueio de arquivos é problemática em muitas implementações do sistema de arquivos de rede (no Unix e no Windows). Se o bloqueio de arquivo não funcionar corretamente, dois ou mais clientes podem tentar modificar a mesma parte do mesmo banco de dados ao mesmo tempo, resultando em corrupção. Como esse problema resulta de erros na implementação do sistema de arquivos subjacente, não há nada que o SQLite possa fazer para evitá-lo.
https://www.sqlite.org/whentouse.html
Será que é um balde de água fria ?
Olha eu penso que para cada caso o desenvolvedor tem que procurar a melhor forma de armazenar informações, esse comentário é para evitar cobranças / expectativas em excesso sobre esse SGBD (muito verdadeira e honesta essa colocação no site do produto), se você procurar casos de sucesso do mesmo vai ver que ele é bem confiável. Se for comparar de forma injusta os DBFs também tem limitações e nem por isso deixam de ter MILHARES de casos de sucesso, aqui mesmo no fórum tem exemplos.
Se for uma aplicação com maior demanda eu penso em utilizar Postgresql, especificamente porque tenho mais conhecimento nesse SGBD, mesmo sabendo que MariaDB é mais utilizado pela comunidade harbour.
SQLite - Coluna DATETIME
Enviado: 29 Set 2018 11:32
por HASA

)
Obrigado, Carlos como é um mundo novo para mim as diversas dúvidas são inevitáveis, quanto ao PostgreSQL esse sim tive boas leituras nA Net e aqui no forum, de qualquer forma desculpe o "afobamento", vou me conter

´
:-Y
HASA
SQLite - Coluna DATETIME
Enviado: 30 Set 2018 12:32
por susviela@bol.com.br
HASA escreveu:
)
Obrigado, Carlos como é um mundo novo para mim as diversas dúvidas são inevitáveis, quanto ao PostgreSQL esse sim tive boas leituras nA Net e aqui no forum, de qualquer forma desculpe o "afobamento", vou me conter ...
HASA
Que nada colega, é essa ânsia por saber/ conhecer / criar que move os programadores.
Uma dica, para alimentar / aguçar mais o seu interesse:
1) Esse mundo 0800 é maravilhoso, baixa esse gerenciador SQLite, e dá uma brincada com ele.
https://sqlitestudio.pl/index.rvt?act=download
2) Cria uma Banco / umas tabelas nesse banco;
3) Depois vai em TOOLS / OPEN SQL Editor ; ou (ALT + E)
Divirta-se ....
SQLite - Coluna DATETIME
Enviado: 01 Out 2018 09:05
por HASA

)
- Bom dia, vamos em frente.
:|< :|<
HASA