Clipper On Line • Ver Tópico - Verificar o banco de dados

Verificar o banco de dados

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

Verificar o banco de dados

Mensagempor leandrolinauer » 30 Ago 2019 09:42

Bom dia a todos.
Não localizei no fórum algo sobre este assunto.
Necessito verificar se o banco de dados existe ou não, isto em REDE, porque localmente o file() resolve, em rede não localiza.
Já tentei, FILE(), HB_FILEEXISTS(), HB_VFEXISTS(), nenhum resultou satisfatório o resultado.
Necessito disto para fazer em SQL tudo que faço em DBF
Verificar se o banco existe
Verificar se a tabela existe
Verificar se a tabela esta diferente
Se alguem puder me passar porque não esta dando certo, eu fico muito grato.
Valeu pela ajuda.
:D
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Verificar o banco de dados

Mensagempor JoséQuintas » 30 Ago 2019 09:53

leandrolinauer escreveu:Necessito verificar se o banco de dados existe ou não, isto em REDE, porque localmente o file() resolve, em rede não localiza.

leandrolinauer escreveu:Necessito disto para fazer em SQL tudo que faço em DBF


Você quer ajuda pra testar não sei o que, não sei aonde, não sei com qual base de dados, e não sei com qual acesso...
Não sei se sei.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Verificar o banco de dados

Mensagempor leandrolinauer » 30 Ago 2019 11:39

:D , desculpe-me não fui claro o suficiente.
Estou migrando para FIREBIRD.
Na verdade não é testar, eu preciso de uma luz de como verificar se o banco de dados sql existe na pasta destino.
exemplo em dbf:
If !file(arquivodbf)
   Dbcreta(arquivodbf)
Else
  If "estrutura" # do arquivodbf
     Modificaestrutura(acrescenta ou remove campos)
  EndIf
  Indexa(arquivodbf)
EndIf


Preciso fazer isto aí em SQL, mas o file() não funciona
If !File(caminho+bancodedadosSQL) //não funciona,

EndIf


só localiza se for local
Exemplo: C:\PASTA\BANCO.FDB
agora se for para ver se na rede existe o banco de dados, nao da certo.
Exemplo: 192.168.2.10:C:\PASTA\BANCO.FDB
o FBCREATE() cria no caminho certinho o arquivo BANCO.FDB, mas não consigo localizar.

Pesquisei outros substitutos do FILE() mas nenhum funcionou também.
Agora se não é possível fazer isto, terei que bloquear esta ação nas estações e deixar habilitado tão somente no SERVIDOR porque aí funciona e localiza se o arquivo existe ou não.
:))
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Verificar o banco de dados

Mensagempor JoséQuintas » 30 Ago 2019 11:52

Continua vaga a situação, mas vamos tentar....

Vai conversar com o servidor, e não com o arquivo.

lErro := .T.
BEGIN SEQUENCE
   // conecta com firebird
   lErro := .F.
END SEQUENCE
IF lErro
   ? "Não conectou"
ENDIF


Agora coloque o que usa pra conectar.
Se der erro é porque não conectou.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Verificar o banco de dados

Mensagempor leandrolinauer » 30 Ago 2019 14:29

Boa tarde.
Sim, estou conectado com o servidor e criando o banco de dados quando ele não existe, porém se existir o banco de dados no servidor mesmo assim ele recria o banco de dados o que não pode ocorrer, só se não existir. certo.
Então o problema esta aqui, não segui pra frente ainda para fazer conexão e por fim as movimentações "insert" etc.
Fiz apenas a criação do banco de dados, vou partir agora para criar as tabelas.
Então eu não consigo descobrir quando em REDE no servidor a estação verificar se o banco existe ou não, isto no processo de verificação do banco de dados, não na inicialização do sistema para conectar.
Pretendo criar este processo, para o sistema mesmo, verificar se existe o banco de dados, criar o banco de dados, criar as tabelas, modificar as tabelas sem fazer manualmente através de uma administrador de banco de dados sql.

Consegui esclarecer, talvez nem tenha como ser feito isto com SQL, mas tudo bem, aí deixo para o sistema fazer isto somente no servidor e nunca na estação cliente.
:)Pos
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Verificar o banco de dados

Mensagempor JoséQuintas » 30 Ago 2019 19:53

No MySQL:

SHOW TABLES

SHOW CREATE TABLE

SELECT table_name AS TABELA FROM information_schema.TABLES WHERE table_schema='banco' AND table_name='tabela'
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Verificar o banco de dados

Mensagempor leandrolinauer » 30 Ago 2019 21:18

Grato pelo retorno, mas não é bem isto que eu preciso.
Obrigado
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Verificar o banco de dados

Mensagempor JoséQuintas » 30 Ago 2019 21:31

É com isso que faço testes no meu aplicativo: ADO + MySQL.

https://github.com/JoseQuintas/JoseQuintas/blob/master/source/ze_adoclass.prg

Métodos TableList(), TableExists(), FieldList(), FieldExists()

Só precisa ver o equivalente para sua base de dados e/ou seu conector.

Se for algo nativo do Harbour, tem função pra isso.
Se for pasta visível: File( "\\servidor\compartilhamento\nomearquivo" )
hb_Netio só pra isso seria exagero, mas também é possível.
If File( "net:\nomearquivo" )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Verificar o banco de dados

Mensagempor leandrolinauer » 31 Ago 2019 10:53

Interessante.
Eu não conectei usando ADO, sou leigo em SQL tenho muito que aprender como funciona este banco de dados.
Estou usando a contrib do harbour hbfbird, pelo que vi funciona bem, estou fazendo testes e no momento estou na criação do banco vazio.
Grato
:xau
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Verificar o banco de dados

Mensagempor Ranier » 05 Set 2019 15:56

Simples.
Tenta conectar/abrir o banco de dados, não abriu, talvez pq não exista, então crie-o.
Ranier
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 80
Data de registro: 02 Abr 2019 09:01
Cidade/Estado: Goiania/Goias
Curtiu: 0 vez
Mens.Curtidas: 9 vezes




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 13 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