Usando o MSDE com o Visual Basic


O MSDE - Microsoft SQL Server 2000 Desktop Engine - é uma tecnologia que oferece armazenamento de dados local em um formato compatível com o Microsoft SQL Server 2000. Você também pode utilizar o MSDE como uma solução para o armazenamento remoto de dados. Pense no MSDE como um mecanismo de dados cliente/servidor alternativo ao Microsoft Access  . O MSDE pode ser executado no Microsoft Windows 2000 ou mais recente e no Windows 98 ou mais recente. Ele é projetado e otimizado para uso em sistema de computadores menores como, por exemplo, um computador de usuário único ou um servidor de grupo de trabalho pequeno.

Uma vez que o MSDE se baseia no mesmo mecanismo de dados do SQL Server, a maioria dos aplicativos cliente/servidor é executada em qualquer uma das versões. Entretanto, diferentemente do SQL Server 2000, o MSDE possui um limite de tamanho de banco de dados de 2 gigabytes, não oferece suporte a Symmetrical Multiprocessing (SMP) no Windows 98 ou mais recente e, quando usa replicação transacional, não pode ser um editor de replicação (embora possa agir como um assinante de replicação).

Observação   Não confunda MSDE com SQL Server 2000 Personal Edition, que inclui um conjunto completo de ferramentas de gerenciamento e a maior parte das funcionalidades do SQL Server Standard Edition, mas é otimizado para uso pessoal e é um produto separado.

Utilizando o MSDE a partir do Access

O MSDE oferece os recursos básicos do mecanismo de banco de dados do SQL Server 2000, mas não inclui interface de usuário, ferramentas de gerenciamento, capacidades de análise, suporte à replicação de mesclagem, licenças de acesso a cliente, bibliotecas para desenvolvedores ou livros on-line do SQL Server. Ele também limita o tamanho do banco de dados e a carga de trabalho do usuário. Ele utiliza a menor quantidade de memória em comparação com qualquer edição do SQL Server 2000 e, portanto, é o armazenamento ideal de dados off-line ou incorporados.

Você pode realizar algumas tarefas administrativas comuns em um banco de dados do Microsoft SQL Server.

Comando Descrição
Fazer backup do banco de dados SQL Cria um arquivo de backup (.dat) do banco de dados atual do SQL Server.
Restaurar banco de dados SQL Restaura um banco de dados SQL de um arquivo de backup (.dat).
Cancelar banco de dados SQL Exclui um banco de dados do SQL Server.
Copiar arquivo de banco de dados Copia um banco de dados do SQL Server 7.0, ou posterior, para outro SQL Server.
Transferir banco de dados Transfere um arquivo de banco de dados (.mdf) do SQL Server versão 7.0 ou posterior.

Esses comandos estarão visíveis no comando Utilitários de banco de dados no menu Ferramentas quando você instalar o Microsoft Office XP, mas somente se você instalou o MSDE em seu computador.

Obs: Para obter mais detalhes clique no link Acc2sql.exe e faça o download do arquivo Acc2sql.doc com informações para realizar a migração.

Utilitários MSDE

- Podemos usar outra ferramentas para migrar para o MSDE ou criar um banco de dados e tabelas no MSDE. Se você usa a versão 97 do Access pode baixar uma ferramenta que o auxiliará a migrar. Para fazer o download clique no link : http://www.microsoft.com/products/developer/officedeveloper/Access/prodinfo/exe/wzcs97.exe.

- Para trabalhar com o MSDE através de comandos T-SQL (Transact SQL -  linguagem SQL do SQL Server) a partir do Access você pode fazer o download clicando no no link : MSDEFromACC.zip (24 kB)

Este utilitário apresenta uma interface gráfica bem simples , mas bem melhor do que o  prompt do DOS. Para usar o utilitário o MSDE precisa estar instalado e rodando na máquina local.

- Sqlmgr.exe - Gerencia o serviço do SQL Server.

- Osql.exe - Versão DOS do SQL Service Manager . Você tem que informar os comandos na prompt do DOS. Permite que informar instruções Transact-SQL , arquivos de scripts e procedures do sistema. Usa um driver ODBC para se comunicar com o servidor. A sintaxe é:

osql -U login_id [-e] [-E] [-p] [-n] [-d db_name] [-Q "query"] [-q "query"]
[-c cmd_end] [-h headers] [-w column_width] [-s col_separator]
[-t time_out] [-m error_level] [-I] [-L] [-?] [-r {0 | 1}]
[-H wksta_name] [-P password] [-R]
[-S server_name] [-i input_file] [-o output_file] [-u] [-a packet_size]
[-b] [-O] [-l time_out]

Para maiores informações sobre o utilitário veja o link : osqlutil.htm

A seguir temos um exemplo de código usando o utilitário OSQL para criar um banco de dados:

- A partir do prompt do MS-DOS digite: OSQL /Usa /P

Iremos obter o prompt : 1>    A seguir digite :
1>	use master
2>	go
1>	create database teste
2>	go
1>	exit
Pronto você acabou de criar o banco de dados teste.

Agora outro exemplo de código usado para obter o nome do servidor e a versão atual:

	OSQL /Usa /P

	SELECT @@SERVERNAME
	GO

	SELECT @@VERSION
	GO

	exit

- CnfgSvr.exe - usado para o servidor tratar com diferentes protocolos.

Usando o Visual Basic para trabalhar com o MSDE

Podemos usar código VB para criar um banco de dados MSDE, vamos mostrar um exemplo de como fazer isto.

- Inicie um novo projeto no VB e no formulário padrão insira uma caixa de texto e um botão de comando, conforme layout abaixo:

- Agora você deve fazer uma referência para o Microsoft Distributed Management Objects Library - SQLDMO .

Agora no evento clique do botão de comando - command1 - insira o código abaixo :

Private Sub Command1_Click()
  Cria_BD_MSDE
End Sub

Private Sub Cria_BD_MSDE()

'cria uma instância do MSDE

Dim obj_MSDE As SQLDMO.SQLServer
Set obj_MSDE = New SQLDMO.SQLServer

'estabelece uma conexão

obj_MSDE.Connect "MACORATTI\NetSDK", "sa", ""

'cria e instancia os objetos : DataFile , LogFile

Dim obj_BD_Dados As SQLDMO.Database
Set obj_BD_Dados = New SQLDMO.Database

Dim obj_dat_File As SQLDMO.DBFile
Set obj_dat_File = New SQLDMO.DBFile

Dim obj_Log_File As SQLDMO.LogFile
Set obj_Log_File = New SQLDMO.LogFile

'define quais as caracteristicas do arquivo de dados

With obj_dat_File
  .Name = "Arq_Dados"
  .PhysicalName = caminho & "Arq_Dados.mdf"
  .PrimaryFile = True
  .FileGrowthType = SQLDMOGrowth_MB
  .FileGrowth = 1
End With

'associa o arquivo de dados ao objeto database

obj_BD_Dados.FileGroups("PRIMARY").DBFiles.Add obj_BD_Dados

With obj_Log_File
  .Name = "Arq_Log"
  .PhysicalName = caminho & "Arq_log.ldf"
End With

'associa o arquivo de logo ao objeto Database

obj_BD_Dados.TransactionLog.LogFiles.Add obj_Log_File

'associa o banco de dados a coleção Databases do objeto MSDE

obj_MSDE.Databases.Add obj_BD_Dados

End Sub

Criando uma conexão MSDE

Para finalizar este artigo vou mostrar a seguir como estabelecer uma conexão com uma base de dados MSDE usando ADO. No exemplo realizamos uma conexão com o banco de dados - Teste.

Privete Sub Conecta_MSDE()

Dim conexao_MSDE as ADODB.Connection
Set conexao_MSDE = New ADODB.Connection

with conexao_MSDE
  .Provider = "SQLOLEDB"
  .ConnectionString = "Data Source=Servidor;UID=sa;PWD=;initial Catalog=Teste"
  .Open
End With

End Sub

Vou ficando por aqui, aguarde em breve mais artigos sobre o MSDE ...


José Carlos Macoratti