Carolina Marinho Postado Março 10, 2009 Denunciar Share Postado Março 10, 2009 Preciso de uma rotina que verifique se uma tabela existe no banco de dados (estou usando sql server), caso exista, faz o select nessa tabela, caso não exista (o que daria erro no VB), seja realizado um outro procedimento...Gostaria de saber qual condição usar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 10, 2009 Denunciar Share Postado Março 10, 2009 carolina, aqui ensina como faz isso: http://www.macoratti.net/adox.htmveja onde ele faz um foreach pra mostrar todos os nomes de tabelas. faca o foreach tb e se o nome q você quer não aparecer é porque a tabela não existe. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carolina Marinho Postado Março 11, 2009 Autor Denunciar Share Postado Março 11, 2009 Kuroi, fiz o seguinte:Dim db As DAO.Database Dim existe As Boolean Dim Tabela As DAO.TableDef existe = False Set db = DBEngine.OpenDatabase("D:\Banco_de_Dados_WA\SGC.mdf") For Each Tabela In db.TableDefs If Tabela = "TBD_ODONTO_DATA_CARGA" Then existe = True End If Nextmas dá erro "Used-defined type not defined" na linha 'Dim db As DAO.Database' Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 11, 2009 Denunciar Share Postado Março 11, 2009 carolina, mas você ta usando DAO no seu projeto?? você tem q adicionar a referencia então (Microsoft DAO 3.51 Object Library).mas tem algum motivo especifico pra você tar usando DAO?? o DAO é um componente antigo, hj em dia usa-se o ADO q é muito melhor (como no exemplo q passei). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carolina Marinho Postado Março 11, 2009 Autor Denunciar Share Postado Março 11, 2009 Kuroi, acabei vendo o favorito errado :unsure: ficou assim:servidor = "WA-TAURUS" BancoDados = "SGC" cnTaurus.Provider = "SQLOLEDB" cnTaurus.Properties("Data Source").Value = servidor cnTaurus.Properties("Initial Catalog").Value = BancoDados cnTaurus.Properties("User ID").Value = "*****" cnTaurus.Properties("Password").Value = "*****" cnTaurus.Open Set rsTaurus = New ADODB.Recordset Set rsTaurus.ActiveConnection = cnTaurus Dim cat As New ADOX.Catalog Dim tbl As New ADOX.Table Dim existe As Boolean Set cat.ActiveConnection = cnTaurus existe = False For Each tbl In cat.Tables If Tabela = "TBD_ODONTO_DATA_CARGA" Then existe = True End If NextContinua dando o mesmo erro, agora na linha 'Dim cat As New ADOX.Catalog' Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 11, 2009 Denunciar Share Postado Março 11, 2009 olha la no tutorial. nas primeras linhas, ele fala quais as referencias q você tem q adicionar.a numero 1 é a do ADO, acho q você já deve ter adicionado.agora a do ADOX q ta dando erro é a numero 2.a numero 3 acho q você não vai usar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carolina Marinho Postado Março 12, 2009 Autor Denunciar Share Postado Março 12, 2009 Não tem essa opção nos componentes... 'Microsoft ActiveX Data Objects Extensions for DDL and Security 2.x ( ADOX)' :angry: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 12, 2009 Denunciar Share Postado Março 12, 2009 existe sim, mas pode ta escrito diferente dependendo da versao.veja se tem essa: Microsoft ADO Ext. 2.X for DLL and Security Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carolina Marinho Postado Março 12, 2009 Autor Denunciar Share Postado Março 12, 2009 Também não tem...Achei uma solução válida, mas pra ser feita no SQLIF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' AND TABLE_NAME='nomedatabela') SELECT 'tablename exists.' ELSE SELECT 'tablename does not exist.'Isso serviu pra mim. Mas, mesmo assim, eu ainda prefiro no VB <_< Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 12, 2009 Denunciar Share Postado Março 12, 2009 acho q você pode executar esse codigo ai como query no recordset ne.so q não vai funciona pra otros bancos.quanto ao ADOX, deve ter sim. q windows você usa??você ta entrando em referencias ou em componentes??tem q ser em menu Project -> Referencesentão, mostra um printscreen da lista de referencias, mostrando todos os q comecam com "Microsoft A..." pra ver se eu identifico. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carolina Marinho Postado Março 17, 2009 Autor Denunciar Share Postado Março 17, 2009 Eu achei!!! Eu tinha procurado em componentes... :unsure: Vou testar e volto pra dizer o que aconteceu :blush: Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Carolina Marinho
Preciso de uma rotina que verifique se uma tabela existe no banco de dados (estou usando sql server), caso exista, faz o select nessa tabela, caso não exista (o que daria erro no VB), seja realizado um outro procedimento...
Gostaria de saber qual condição usar.
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.