Verificar o banco de dados

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Verificar o banco de dados

Mensagem por leandrolinauer »

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)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Verificar o banco de dados

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Verificar o banco de dados

Mensagem por leandrolinauer »

: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:

Código: Selecionar todos

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

Código: Selecionar todos

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)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Verificar o banco de dados

Mensagem por JoséQuintas »

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

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

Código: Selecionar todos

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Verificar o banco de dados

Mensagem por leandrolinauer »

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)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Verificar o banco de dados

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Verificar o banco de dados

Mensagem por leandrolinauer »

Grato pelo retorno, mas não é bem isto que eu preciso.
Obrigado
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Verificar o banco de dados

Mensagem por JoséQuintas »

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

https://github.com/JoseQuintas/JoseQuin ... oclass.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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Verificar o banco de dados

Mensagem por leandrolinauer »

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)
Ranier
Usuário Nível 2
Usuário Nível 2
Mensagens: 80
Registrado em: 02 Abr 2019 09:01
Localização: Goiania/Goias

Verificar o banco de dados

Mensagem por Ranier »

Simples.
Tenta conectar/abrir o banco de dados, não abriu, talvez pq não exista, então crie-o.
Responder