Clipper On Line • Ver Tópico - SQLite - Coluna DATETIME

SQLite - Coluna DATETIME

Discussão sobre SQL

Moderador: Moderadores

 

SQLite - Coluna DATETIME

Mensagempor susviela@bol.com.br » 23 Set 2018 21:04

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 )

   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:

  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:

  cSql := "SELECT idcliente, nome, idade, DATETIME(ultimocontato) FROM cliente"


Como vocês estão tratando isso ? ( sqlite3_column_type está me retornando 3 )
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Avatar de usuário

susviela@bol.com.br
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 154
Data de registro: 30 Jun 2017 11:17
Cidade/Estado: São José / SC
Curtiu: 77 vezes
Mens.Curtidas: 14 vezes

SQLite - Coluna DATETIME

Mensagempor alxsts » 24 Set 2018 21:42

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
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2190
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 13 vezes
Mens.Curtidas: 151 vezes

SQLite - Coluna DATETIME

Mensagempor Eric.Developer » 25 Set 2018 02:20

Não há nenhum problema no código abaixo, o erro esta apenas no CREATE, não fechou o parenteses.
susviela@bol.com.br escreveu:...Estou tendo alguma dificuldade com o retorno da consulta dessa tabela, com o seguinte código:
   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
Delphi, SQL, FastReport | Xailer VxH Fivewin Hwgui Minigui [x]Harbour
Contate-me: Desenvolvimentos | Treinamentos | Facebook | Projetos
Download oficial: Xailer + Harbour. Ferramenta profissional e mais completa:
  • GUI, IDE, Form designer, Assistente código, Gerenciador projetos, Debug
  • Gerador relatórios, SQL nativo, DataControls, Editor DBF/SQLite, e muito mais
Avatar de usuário

Eric.Developer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 157
Data de registro: 31 Ago 2010 22:16
Curtiu: 0 vez
Mens.Curtidas: 7 vezes

SQLite - Coluna DATETIME

Mensagempor susviela@bol.com.br » 25 Set 2018 10:40

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 .
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Avatar de usuário

susviela@bol.com.br
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 154
Data de registro: 30 Jun 2017 11:17
Cidade/Estado: São José / SC
Curtiu: 77 vezes
Mens.Curtidas: 14 vezes

SQLite - Coluna DATETIME

Mensagempor HASA » 28 Set 2018 17:02

:-o
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
Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1007
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 0 vez
Mens.Curtidas: 38 vezes

SQLite - Coluna DATETIME

Mensagempor HASA » 28 Set 2018 17:12

Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1007
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 0 vez
Mens.Curtidas: 38 vezes

SQLite - Coluna DATETIME

Mensagempor susviela@bol.com.br » 29 Set 2018 11:12

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.
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Avatar de usuário

susviela@bol.com.br
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 154
Data de registro: 30 Jun 2017 11:17
Cidade/Estado: São José / SC
Curtiu: 77 vezes
Mens.Curtidas: 14 vezes

SQLite - Coluna DATETIME

Mensagempor HASA » 29 Set 2018 11:32

:))
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
Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1007
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 0 vez
Mens.Curtidas: 38 vezes

SQLite - Coluna DATETIME

Mensagempor susviela@bol.com.br » 30 Set 2018 12:32

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 ....
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Avatar de usuário

susviela@bol.com.br
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 154
Data de registro: 30 Jun 2017 11:17
Cidade/Estado: São José / SC
Curtiu: 77 vezes
Mens.Curtidas: 14 vezes

SQLite - Coluna DATETIME

Mensagempor HASA » 01 Out 2018 09:05

:D :))
- Bom dia, vamos em frente.
:|< :|<
HASA
Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1007
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 0 vez
Mens.Curtidas: 38 vezes




Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro