Conexão com DBexpress e MSSQL

Delphi

13/05/2004

O que devo fazer para conectar o DBEXPRESS com o MSSQL, estou tentando e não estou conseguindo. Será necessário algum driver, dll ou coisa semelhante.
Alguem poderi dar um help sobre o assunto.


Vrssoftware

Vrssoftware

Curtidas 0

Respostas

Fer_nanda

Fer_nanda

13/05/2004

Coloque a msg de erro q está dando... mas te adiantando é preciso colocar a libmySQL.dll junto com seu exe


GOSTEI 0
Vinicius2k

Vinicius2k

13/05/2004

Colega,

Qual a versão do Delphi ? O driver nativo para o SQL Server só está presente a partir do Delphi 7...

Este artigo do Guinther trata passo a passo como configurar 3 formas de acesso diferentes para o SQL Server... ( ignore qualquer referência à figuras pois retirei apenas o texto)
[b:d15db44682]Delphi e SQL Server[/b:d15db44682] [b:d15db44682]Acesso com dbExpress, ADO e BDE[/b:d15db44682] [u:d15db44682]por Guinther de Bitencourt Pauli[/u:d15db44682] Este artigo mostra passo a passo como acessar o banco de dados SQL Server da Microsoft a partir do Delphi. Se você não tem o SQL Server, poderá fazer download de uma versão de avaliação a partir do endereço www.microsoft.com/downloads. A instalação do produto é extremamente simples (tanto quanto a do Interbase): com apenas alguns cliques seu servidor SQL já deve estar rodando. Após instalado, aparecerá um ícone na taskbar indicando que o servidor está rodando (Figura 1). Figura1: SQL Server rodando Neste artigo faremos um exemplo bastante simples de como acessar um banco de dados no SQL Server. Para isso, você poderá utilizar um dos três engines de acesso a dados descritos a seguir: • dbExpress: disponível no Delphi 7 Enterprise e Architect (o dbExpress do Delphi 6 não acessa o SQL Server); • ADO / OLEDB: disponível a partir do Delphi 5; • BDE: Delphi 7 ou anterior (versão Enterprise ou Client/Server). A versão Professional permite acesso ao SQL Server somente via BDE/ODBC. Criando um banco de dados Poderíamos utilizar neste exemplo o banco Northwind de demonstração, no entando criaremos um novo banco de dados, processo que também é relativamente simples. Abra o Enterprise Manager localizado no menu Iniciar|Programas|Microsoft SQL Server. Registre seu servidor caso ele não apareça na lista, e depois dê um clique de direita sobre o item Databases, escolhendo a opção New Database (Figura 2). Figura2: Criando um banco de dados no SQL Server Dê o nome de “ClubeDelphi” ao banco de dados (Figura 3). Figura3: Propriedades do banco de daods Criando uma tabela Selecione o novo banco criado, e dê um clique de direita no item Tables, escolhendo a opção New Table. Utilize a estrutura mostrada na Figura 4 para criar a nova tabela. Selecione o campo ID e clique no botão para defini-lo como campo chave primária da tabela. Figura4: Criando uma tabela no SQL Server Clique no botão para salvar a tabela, dando a ela nome de CLIENTES (Figura 5). Figura5: Configurando o nome da nova tabela Acesso com dbExpress Crie uma nova aplicação no Delphi. Adicione um DataModule e dê a ele o nome de “dm”. Nota: o formulário do exemplo é o mesmo para os 3 engines de acesso que utilizaremos a seguir. Dessa forma, se você não vai utilizar o BDE ou ADO ao invés de dbExpress, passe para a respectiva sessão, e depois vá até o tópico “Configurando o formulário principal”. Coloque no DataModule os seguintes componentes: SQLConnection, SQLQuery (da paleta dbExpress), DataSetProvider e ClientDataSet (Data Access). Veja a Figura 6. Figura6: Acesso ao SQL Server com dbExpress Dê um duplo clique no SQLConnection. No editor de conexões do dbExpress clique no botão “+”, escolha MSSQL na lista e dê o nome de CLUBEDELPHI para a conexão (Figura 7). Figura7: Criando uma conexão ao SQL Server com dbExpress Ajuste os parâmetros da conexão conforme mostra a Figura 8. Figura8: Configurando as propriedades da conexão no editor do dbExpress Observe que HostName é nome do servidor registrado (nesse caso SNAP) e DataBase é nome do banco (nesse caso ClubeDelphi). Para este exemplo utilizarei o mecanismo de autenticação integrada do SQL Server (veja o 3º parâmetro em destaque), de forma que as credenciais para a conexão com o banco de dados serão as do usuário atual logado no Windows. Atenção: Há um patch para o dbExpress do Delphi 7 que corrige alguns problemas de autenticação de usuários no SQL Server. Você pode fazer download dessa atualização a partir do endereço www.borland.com/products/downloads/download_delphi.html Configure as propriedades dos componentes como mostrado a Tabela 1. ComponentePropriedadeValor SQLConnection1LoginPromptFalse SQLConnection1ConnectedTrue SQLQuery1SQLConnectionSQLConnection1 SQLQuery1SQLselect * from CLIENTES DataSetProvider1DataSetSQLQuery1 ClientDataSet1ProviderNameDataSetProvider1 ClientDataSet1ActiveTrue Tabela1: Configurando as propriedades dos componentes do DataModule Nota: neste exemplo utilizaremos uma query bastante simples (select * from). No entanto, em uma aplicação real, é essencial que você utilize consultas parametrizadas para otimizar o tráfego de dados entre o servidor SQL e o cliente, aumentando a performance de sua aplicação. Acesso com BDE Coloque no DataModule os seguintes componentes: Database, Query e UpdateSQL (da paleta Data Access (se for D6 ou D7 a paleta passou a se chamar BDE). Veja a Figura 9. Figura9: Acesso ao SQL Server com BDE Dê um duplo clique no Database e configure uma conexão ao SQL Server conforme mostrado na Figura 10. Figura10: Configurando uma conexão BDE ao SQL Server Nota: observe que neste caso estamos utilizando a conta padrão do DBA no SQL Server. Configure os componentes conforme mostrado na Tabela 2. ComponentePropriedadeValor DataBase1DataBaseNameCLUBEDELPHI Database1ConnectedTrue Query1DataBaseNameCLUBEDELPHI Query1SQLselect * from CLIENTES Query1CacheUpdatesTrue Query1ActiveTrue Query1UpdateObjectUpdateSQL1 Tabela2: Configurando as propriedades cox componentes do DataModule Dê um duplo clique no UpdateSQL e configure as instruções SQL de atualização conforme mostrado na Figura 11 (aperte o botão Generate SQL depois de selecionar a tabela e os campos). Figura 11: Configurando o UpdateSQL Nota: observe que ao utilizar dbExpress não é necessário configurar um UpdateSQL, pois as instruções de atualização são geradas pelo Resolver do DataSetProvider. Acesso com ADO Coloque no DataModule os seguintes componentes: ADOConnection e ADOQuery (paleta ADO). Veja a Figura 12. Figura 12: Acesso ao SQL Server com ADO Dê um duplo clique no ADOConnection e no editor clique no botão Build. Escolha a opção Microsoft OLE DB Provider for SQL Server (Figura 13). Figura 13: Acesso ao SQL Server com ADO Na aba conexão escolha o servidor, marque a opção para autenticação integrada, selecione o banco de dados ClubeDelphi na lista (Figura 14) e aperte Ok. Figura 14: Acesso ao SQL Server com ADO Configure os componentes conforme mostrado na Tabela 3. ComponentePropriedadeValor ADOQuery1ConnectionADOConnection1 ADOQuery1SQLselect * from CLIENTES ADOQuery1ActiveTrue Tabela 3: Configurando as propriedades dos componentes do DataModule Configurando o formulário principal Volte ao formulário principal, aperte Alt+F11 e escolha a unit do DataModule. Coloque um DataSource (paleta Data Access) e um DBGrid (paleta Data Controls). Aponte o DataSource do DBGrid para DataSource1. Aponte a propriedade DataSet do DataSource de acordo com o engine que você está utilizando: • dbExpress: aponte para dm.ClientDataSet1; • BDE: aponte para dm.Query1; • ADO: aponte para dm.ADOQuery1; Coloque também um Button e no seu evento OnClick digite (no caso de você estar utilizando dbExpress / ClientDataSet). dm.ClientDataSet1.ApplyUpdates(0); // Aplica a cache do ClientDataSet Caso esteja utilizando BDE¸digite: dm.Query1.ApplyUpdates; // Aplica a cache da Query Se estiver usando ADO nenhuma modificação é necessária. Seu formulário deve estar semelhante ao da Figura 15. Figura 15: Formulário principal da aplicação Execute a aplicação e insira alguns registros (Figura 16), e aperte o botão para enviar as atualizações ao servidor SQL. Figura 16: Testando a aplicação Você poderá utilizar Query Analizer (Figura 17) para verificar se os dados foram inseridos com sucesso no banco de dados. Este utilitário é semelhante ao Interactive SQL, para quem trabalha com o Interbase. Figura 17: Verificando no Query Analaizer se os dados foram inseridos com sucesso dbExpress x ADO x BDE Alguns podem estar se perguntando: qual o melhor desses 3 engines para acesso ao SQL Server? Se você tiver oportunidade de escolher, pessoalmente eu aconselharia o uso do dbExpress. Todos sabem que o ADO/OLE DB tem uma ótima performance com o SQL Server e o Access. No entanto, isso tornaria mais difícil a migração para outro banco de dados (Interbase ou Firebird, por exemplo), caso fosse a escolha de um outro cliente seu, que não quisesse optar pelo SQL Server. Nesse caso, seria necessário utilizar um driver OLE DB ou ODBC para o banco desejado, causando a adição de uma camada extra à aplicação. Ao utilizar dbExpress, você estará construindo uma aplicação que poderá se conectar da mesma forma a uma variedade de banco de dados (SQL Server, Oracle, DB2, IB, FB, MySQL etc), com grande escalabilidade e perfomance. A boa nova é que o dbExpress ao se conectar ao SQL Server também utiliza internamente OLE DB: ou seja, não haverá diferenças significativas de performance ao se comparar dbExpress com os componentes do ADO Delphi 8 Se você estiver usando o Delphi 8, poderá então utilizar o BDE ou dbExpress para acesso ao SQL Server, se estiver construindo uma aplicação VCL Forms (os passos são os mesmos descritos aqui para o Delphi 7). No entanto, se você estiver construíndo uma aplicação Windows Forms ou Web Forms, poderá então utilizar um dos seguintes managed providers para ADO.NET: • SQL Server Managed Provider (para acesso nativo ao SQL Server); • OLE DB Managed Provider (para acesso com OLE DB); • BDP (Borland Data Provider); Confira na edição 43 da revista ClubeDelphi o artigo sobre ADO.NET que mostra como usar o SQL Server Managed Provider no Preview do Delphi for .NET. Em futuros artigos estarei mostrando como usar ADO.NET para acesso ao SQL Server a partir da IDE do Delphi 8. Um abraço é até a próxima!


Espero ter ajudado...
T+


GOSTEI 0
Daiane Fontoura

Daiane Fontoura

13/05/2004

Vinicius2k

Poderia por favor postar o Link deste artigo?
Estou enfrentado o mesmo problema para conectar meu dbExpress com o SQLServer 2008, porém minha aplicação trabalha cliente servidor preciso conseguir acesso remoto.
GOSTEI 0
POSTAR