Saber se existe uma tabela no BD

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Saber se existe uma tabela no BD

Mensagem por Itamar M. Lins Jr. »

Olá!

Código: Selecionar todos

  dbusearea( , , "SELECT COUNT(*) as nTot FROM information_schema.tables WHERE table_schema = 'basedados' AND table_name = 'country' ",'RS' )
   ? nToT
   rs->(dbCloseArea())
Tudo vem em ARRAY na memória e usamos os comandos para DBF.

Usando MariaDB e SQLMIX no Linux e Windows.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Sabe se existe um tabela no BD

Mensagem por JoséQuintas »

Em ADO:

Código: Selecionar todos

oRs := Conexao:Execute( "SELECT COUNT(*) as nTot FROM information_schema.tables WHERE table_schema = 'basedados' AND table_name = 'country' " )
? oRs:Fields( "NTOT" ):Value
oRs:Close()
A diferença acaba sendo o formato do retorno, em ADO o formato é.... ADO.
Em SQLMIX é DBF, em hbMySQL é array.

No final, a escolha é sobre o que vai ficar mais fácil para o usuário e/ou o estilo de programação do usuário.
Lógico... se não for Windows não tem ADO.

Mas.... lógico também:
Mudar de DBF pra MySQL vai precisar mudanças nos fontes e na cabeça do programador.
Mudar de ADO pra SQLMIX ou hbMySQL, apesar de também ter mudança nos fontes, a cabeça do programador já vai estar "no esquema".
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/
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

Saber se existe uma tabela no BD

Mensagem por Fernando queiroz »

JoséQuintas escreveu:Em ADO:

Código: Selecionar todos

oRs := Conexao:Execute( "SELECT COUNT(*) as nTot FROM information_schema.tables WHERE table_schema = 'basedados' AND table_name = 'country' " )
? oRs:Fields( "NTOT" ):Value
oRs:Close()
A diferença acaba sendo o formato do retorno, em ADO o formato é.... ADO.
Em SQLMIX é DBF, em hbMySQL é array.

No final, a escolha é sobre o que vai ficar mais fácil para o usuário e/ou o estilo de programação do usuário.
Lógico... se não for Windows não tem ADO.

Mas.... lógico também:
Mudar de DBF pra MySQL vai precisar mudanças nos fontes e na cabeça do programador.
Mudar de ADO pra SQLMIX ou hbMySQL, apesar de também ter mudança nos fontes, a cabeça do programador já vai estar "no esquema".
Nos meus estudo verifiquei que o ODBC é o que tem para WINDOWS/LINUX com a sintaxe mais próxima do ADO,
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Responder