Clipper On Line • Ver Tópico - Como saber nome do banco default

Como saber nome do banco default

Discussão sobre SQL

Moderador: Moderadores

 

Como saber nome do banco default

Mensagempor JoséQuintas » 08 Ago 2021 20:31

Estou querendo passar algumas funções para stored function, mas esbarrei nisso.

por exemplo, saber se tabela existe:

METHOD TableExists( cTable ) CLASS ADOClass

   LOCAL nQtd

   ::cSQL := "SELECT COUNT(*) AS QTD FROM information_schema.TABLES WHERE table_schema=" + StringSQL( Lower( AppEmpresaApelido() ) ) + ;
      " AND table_name=" + StringSQL( cTable )
   ::Execute()
   nQtd := ::Value( "QTD" )
   ::CloseRecordset()

   RETURN nQtd > 0


Do lado do servidor, eu não vou ter o nome do banco de dados usado na conexão.
Tem como obter isso?
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como saber nome do banco default

Mensagempor JoséQuintas » 08 Ago 2021 20:42

Resolvido.

CREATE FUNCTION ze_TableExists( cName VARCHAR(50) )
RETURNS int(11)
BEGIN
DECLARE nYes INT(11) ;
SET nYes = ( SELECT COUNT(*) from information_schema.tables
             where table_schema=DATABASE() AND TABLE_NAME = cName );
RETURN IF( nYes > 0, 1, 0 );
END
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como saber nome do banco default

Mensagempor JoséQuintas » 08 Ago 2021 20:52

Testar se coluna existe

CREATE FUNCTION ze_ColumnExists(
   `cField` VARCHAR(50),
   `cTable` VARCHAR(50)
)
RETURNS int(11)
BEGIN
DECLARE nYes INT(11) ;
SET nYes = ( SELECT COUNT(*) from information_schema.columns
             where table_schema = DATABASE() AND TABLE_NAME = cTable
             AND COLUMN_NAME = cField );
RETURN IF( nYes > 0, 1, 0 );
END
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como saber nome do banco default

Mensagempor JoséQuintas » 08 Ago 2021 21:02

existe.png
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para SQL

Quem está online

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