CRIAR BANCO SQLSERVER VIA VB

FFECHER 04/09/2016 08:34:27
#466529
Bom dia
Estou com uma necessidade nem sei se viável:
Partindo do principio que existe o sql instalado na maquina
gostaria que um programa vb descobrisse o nome do banco na maquina , executasse um script de criação de todas as tabelas de minha aplicacao
E possivel ? Alguem pode me ajudar ?
Atenciosamente
Fernando
KERPLUNK 04/09/2016 15:42:36
#466535
Criar o banco de dados por script é bastante simples, mas encontrar as instâncias de forma automática é um pouco mais complicado. Existe um serviço chamado [Ô]SQL Server Browser Service[Ô], ele precisa estar instalado e rodando tanto na máquina cliente quanto no servidor, então existe aqui uma dependência bastante grande e que muito provavelmente um usuário comum não saberia identificar se a possui ou não. Além disso, é um serviço do windows que precisa ser consumido, o que é notoriamente uma das coisas que o VB6 não é nem um pouco bom em fazer, pra não dizer EXTREMAMENTE difícil. Então no mínimo o nome da instância será necessário para que você possa conectar no servidor e executar o script de criação. Com .NET isso é muito mais fácil, com dois comandos temos uma lista de todas as instâncias SQL Server ao alcance da máquina onde o comando foi executado(à nível de LAN).

Mas quem sabe existe uma outra maneira. Quem sabe você está indo [Ô]pelo caminho errado[Ô]. Explique o que precisa fazer, todo o cenário que talvez exista uma outra solução que possamos ajudar...
DS2T 04/09/2016 15:43:36
#466536
Resposta escolhida
Partindo do princípio que você tem o SQL instalado na máquina, conhece o nome da instância, senha e usuário...

Basta se conectar com o banco Master (que já vem como padrão do SQL Server) e usar a instrução SQL CREATE DATABASE.

Segue a documentação sobre a instrução:

https://msdn.microsoft.com/pt-br/library/ms176061.aspx


Abraços!
FFECHER 05/09/2016 11:33:12
#466555
BOM DIA

Obrigado pela ajuda ! O que eu gostaria de fazer é o seguinte : Ter minha aplicação disponivel na net para futuros clientes baixarem em suas maquinas com a unica exigencia de existir nessa maquina o sql server express instalado sendo assim apos a instalação da minha aplicação na primeira execução da mesma ela criar o banco de dados automaticamente dentro do sql server permitindo assim que o usuário facas testes necessarios na aplicacao.
Grato
Fernando Fecher
FFECHER 13/09/2016 18:02:22
#466869
Por favor alguem teria como explicar como pelo menos o vb executar um script para criacao total de um banco sql server express
Atenciosamente
fernando
KERPLUNK 13/09/2016 18:54:36
#466870
O script é um arquivo texto normal, você lê como um arquivo texto normal. Como o conteúdo são queries, basta executá-las.
DS2T 13/09/2016 19:20:53
#466871
Basta executar mesmo o script, mas eu recomendo duas práticas:

1 - Usar a dll Microsoft.SqlServer.Smo.dll ... Com ela, você consegue executar um script como se tivesse no Management SQL. Recurso interessante, porque ele trata instruções como [Ô]GO[Ô], que não são nativas do SQL em si... e que se você tentar executar no SqlCommand vai dar pau.

2 - Criar um interpretador para ler o seu arquivo e executar linha a linha tratada.


Eu já testei os dois métodos e ambos funcionam bem. Cada um com suas vantagens e desvantagens.

No primeiro caso, você fica dependente de algumas dlls (porque o Smo trabalha em conjunto com outras) e isso nunca é bom. A vantagem é que é super simples e você não precisa tratar nada (tipo nosso amigo GO)

No segundo caso, você vai perder algumas horas montando seu interpretador. Você fica completamente livre de qualquer uso de dll, mas em compensação, é um pouco mais trabalhoso. Mas uma vez feito, poderá ser usado em qualquer projeto.
KERPLUNK 13/09/2016 20:35:35
#466878
O DS2T tem razão, mas para fazer uso da biblioteca SMO, você precisa ter instalado o SQL Server Management Objects
Tópico encerrado , respostas não são mais permitidas