Clipper On Line • Ver Tópico - DBF não gravando

DBF não gravando

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

DBF não gravando

Mensagempor asimoes » 16 Jan 2020 10:49

Quintas, vou planejar o uso disso, muito bom.

Perguntas:

O dbf fica no servidor, para a aplicação acessar a base na rede como fica ?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4684
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 315 vezes
Mens.Curtidas: 225 vezes

DBF não gravando

Mensagempor JoséQuintas » 16 Jan 2020 12:00

asimoes escreveu:Perguntas:
O dbf fica no servidor, para a aplicação acessar a base na rede como fica ?


Estamos falando de ADSLocal
ADS local é pra usar comando SQL e ficar mais rápido o acesso.
Vai acessar igual DBF/CDX: precisa enxergar a pasta do servidor.

Ao mesmo tempo, o fonte vai estar pronto com SQL.
Vai poder usar qualquer base SQL depois - isso é bom

Faça testes:
Vai ficar espantado com a velocidade.
Não é um cliente/servidor, mas já faz muita diferença.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14341
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 859 vezes

DBF não gravando

Mensagempor Softwhouse » 17 Jan 2020 09:24

SQLite para quem precisa: https://hmglights.wordpress.com/2014/03 ... m-precisa/

Alguém teria as imagens do rc ? Nos fontes não acompanha e o link do download do executável não funciona.
Fernando
Softwhouse
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 240
Data de registro: 07 Dez 2011 17:44
Cidade/Estado: Porto Alegre/RS
Curtiu: 0 vez
Mens.Curtidas: 5 vezes

DBF não gravando

Mensagempor Marcos Kieron » 17 Jan 2020 12:36

Creio que não existe nada mais rápido que SQLite local
Marcos Kieron
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 66
Data de registro: 14 Jan 2020 10:29
Cidade/Estado: São Paulo/SP
Curtiu: 0 vez
Mens.Curtidas: 5 vezes

DBF não gravando

Mensagempor JoséQuintas » 17 Jan 2020 15:08

Marcos Kieron escreveu: Creio que não existe nada mais rápido que SQLite local


Pode até ser mas...

Estamos falando de pegar o aplicativo atual, usando DBF, e continuar usando os mesmos DBFs.
O programador pode alterar UM ÚNICO RELATÓRIO pra usar SQL encima de DBFs e ganhar muita velocidade.
Altera um relatório pra SQL, outro, e mais outro... e se um dia quiser usar SQLite ou MySQL ou outra coisa... já vai estar no jeito, já usando comandos SQL.

É mais fácil, pra quem está entrando no mundo SQL, trabalhar com seus próprios arquivos, e fazer testes sem precisar nenhum tipo de conversão.

Estou querendo trazer os programadores que ainda só usam DBF para o mundo SQL, de uma maneira fácil pra eles.
Depois de começar... aí eles podem decidir por conta própria o que vém depois.

SQLite, até onde sei, é pra uso por uma única pessoa, SEM COMPARTILHAMENTO, SEM REDE.
Não sei se dá pra ficar recomendando o uso, sem esse tipo de alerta.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14341
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 859 vezes

DBF não gravando

Mensagempor Mario Mesquita » 17 Jan 2020 16:55

Boa tarde!

Muito interessante esse ADS. Foi o que vc me recomendou, né, Quintas?

Se faz SQL, mas ainda se pode usar DBF e fazer uma transição suave e já preparar seu programa para um SGDB, parece sensacional.

Pra mim, que não tem prática alguma com SQL, parece ótimo.

Tem algum tutorial de como usa o ADS?

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 429
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 6 vezes
Mens.Curtidas: 8 vezes

DBF não gravando

Mensagempor asimoes » 17 Jan 2020 18:07

Mario Mesquita escreveu:Tem algum tutorial de como usa o ADS?

Mário,

Basicamente, você precisa saber a string de conexão, tem um exemplo do Quintas, aqui http://www.pctoledo.com.br/forum/viewtopic.php?f=57&t=23841

Também precisa instalar o driver OleDb do ADS
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4684
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 315 vezes
Mens.Curtidas: 225 vezes

DBF não gravando

Mensagempor JoséQuintas » 17 Jan 2020 19:07

Lembro de ter visto em algum lugar sobre o uso de ADS diretamente no Harbour, por comandos SQL.
Não sei se é a RDDADS ou outra.
Pode ser interessante, principalmente pra Linux, que não tem ADO.

A RDDADS não vém pronta no Harbour, e não sei se vai ser fácil pra todos criar essa lib opcional.

No Windows, pra ver o SQL funcionando, sem precisar quebrar a cabeça procurando como gerar a LIB, o melhor é o ADO, porque o Harbour tá pronto pra ele.

Depois, gostando do resultado, decide se vai atrás de como gerar essa parte opcional do Harbour, ou se vai continuar com ADO.

Por enquanto é bom saber que também existe essa opção.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14341
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 859 vezes

DBF não gravando

Mensagempor asimoes » 18 Jan 2020 00:51

Tenho um dbf com 51 campos, fiz um select * e ficou faltando colunas, o oledb tem limite para trazer as colunas ?

Isso parece estar relacionado a campos com conteúdo nulo, engraçado que tem campo nulo que aparece. por ser um problema na exibição ou limitação do browser
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4684
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 315 vezes
Mens.Curtidas: 225 vezes

DBF não gravando

Mensagempor JoséQuintas » 18 Jan 2020 09:26

asimoes escreveu:Tenho um dbf com 51 campos, fiz um select * e ficou faltando colunas, o oledb tem limite para trazer as colunas ?
Isso parece estar relacionado a campos com conteúdo nulo, engraçado que tem campo nulo que aparece. por ser um problema na exibição ou limitação do browser


Sim, campos nulos.
A montagem do tbrowse é baseada no primeiro registro.
E o ADS segue o padrão do SQL SERVER, onde quando a data está vazia retorna NULL. Acaba sendo coluna vazia, tamanho zero.
Em outras bases, o mesmo pode acontecer com string, onde o tamanho pode ser variável, e vai ajustar pro primeiro tamanho que aparecer.
Por isso pode ser interessante criar o tbrowse manualmente.
Ou talvez algum adicional no comando SQL...
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14341
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 859 vezes

DBF não gravando

Mensagempor asimoes » 18 Jan 2020 20:18

JoséQuintas escreveu:Sim, campos nulos.
A montagem do tbrowse é baseada no primeiro registro.
E o ADS segue o padrão do SQL SERVER, onde quando a data está vazia retorna NULL. Acaba sendo coluna vazia, tamanho zero.
Em outras bases, o mesmo pode acontecer com string, onde o tamanho pode ser variável, e vai ajustar pro primeiro tamanho que aparecer.
Por isso pode ser interessante criar o tbrowse manualmente.
Ou talvez algum adicional no comando SQL...


Quintas, descobri que usando "TableType=ADS_VFP" traz os nulos, mesmo que existam no primeiro registro
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4684
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 315 vezes
Mens.Curtidas: 225 vezes

DBF não gravando

Mensagempor asimoes » 18 Jan 2020 20:25

Quintas,

Realmente é muito rápido, gostei!
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4684
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 315 vezes
Mens.Curtidas: 225 vezes

DBF não gravando

Mensagempor asimoes » 18 Jan 2020 22:02

Para usar o formato DD/MM/YYYY com o ADS OleDb

hDLL := Hb_libLoad( "ace32.dll" )

nStatus := Hb_dynCall( { "AdsSetDateFormat", hDLL, HB_DYN_CALLCONV_STDCALL}, "DD/MM/YYYY" )
ex.: select * from apa01 where d_venc between '01/01/2018' and '31/12/2018'


Da pra modificar outros parâmetros de outras funções da lib carregando a dll
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4684
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 315 vezes
Mens.Curtidas: 225 vezes

DBF não gravando

Mensagempor asimoes » 18 Jan 2020 22:43

Achei isso do Alexander Kressin

https://harbour.github.io/doc/rddads.html
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4684
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 315 vezes
Mens.Curtidas: 225 vezes

DBF não gravando

Mensagempor JoséQuintas » 18 Jan 2020 22:53

Encontrei isto lá:

Note that the default local server is usable for file sharing on a small network.
The default DLL is limited to 5 users, but an unlimited version is available from Extended Systems.


Se for limitação da atual, melhor usar a antiga limitada a 20 usuários.
O arquivo que eu usava: ADSLOCAL.CFG

[SETTINGS]
;              Advantage Local Server configuration file
;
; The Advantage Local Server DLL (for Windows) and SO (for Linux) reads
; this configuration file when the DLL/SO is loaded. Values input
; after the keyword and equal sign are used to configure the DLL/SO.
; If no value is inserted after a keyword and equal sign, the default
; is used. This file should be located in the same directory as your
; Advantage Local Server DLL (adsloc32.dll) or SO (libadsloc.so).
;
; Licenses
;
LICENSES=20
; Number of Connections
; Default = 20; Range = 1 - No upper limit
CONNECTIONS=20
;
; Number of Tables
; Default = 50; Range = 1 - No upper limit
TABLES=100
;
; Number of Index Files
; Default = 75; Range = 1 - No upper limit
INDEXES=100
;
; Number of Data Locks
; Default = 500; Range = 1 - No upper limit
LOCKS=500
;
; Maximum Size of Error Log (in KBytes)
; Default = 1000 KBytes; Range = 1 KByte - No upper limit
ERROR_LOG_MAX=1000
;
; Error Log and Assert Log Path
; Default = C:\
ERROR_ASSERT_LOGS=
;
; ANSI Character Set
; Default = Use the currently configured ANSI character set that is active
;           on the workstation.
; If you do not wish to use the ANSI character set that is active on the
;   current workstation, the available ANSI character sets to be used are:
;     Danish, Dutch, Engl(Amer), Engl(UK), Engl(Can), Finnish, French,
;     French Can, German, Icelandic, Italian, Norwegian, Portuguese, Spanish,
;     Span(Mod), Swedish, Russian, ASCII, Turkish, Polish, or Baltic
ANSI_CHAR_SET=Engl(UK)
;
; OEM/Localized Character Set
; Default = USA
; Options are:
;   USA, DANISH, DUTCH, FINNISH, FRENCH, GERMAN, GREEK437, GREEK851, ICELD850,
;   ICELD861, ITALIAN, NORWEGN, PORTUGUE, SPANISH, SWEDISH, MAZOVIA, PC_LATIN,
;   ISOLATIN, RUSSIAN, NTXCZ852, NTXCZ895, NTXSL852, NTXSL895, NTXHU852,
;   NTXPL852, or TURKISH
OEM_CHAR_SET=USA
;
; Local File Flush Frequency (in milliseconds)
; Default = 20000 ms (20 seconds); Range = 0 ms - 100000 ms
FLUSH_FREQUENCY=2000
;
; Lowercase All Paths
; Default = 0 (false)
; Options are: 0 (for false) and 1 (for true)
; Option to force the Linux Advantage Local Server SO to lowercase all
;    paths and filenames before attempting to access them on disk. This
;    option is ignored by the Advantage Local Server DLL for Windows.
LOWERCASE_ALL_PATHS=


Lembro que tem outra configuração, pra usar em terminal remoto, mas não lembro mais qual era.
Alguma coisa parecida com TIERS ou algo assim.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14341
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 859 vezes

Anterior Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Ahrefs [Bot] e 9 visitantes


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
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro