Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paula Gabriela Costa Oliv

BD não salva arquivo

Recommended Posts

Olá.

Sou nova na programação e estou desenvolvendo um sistema para controle de estoque no Delphi.

 

Quando vou fazer a conexão do banco de dados como Delphi aparece a mensagem que o arquivo não foi encontrado. No local do arquivo, o mesmo não está salva em nenhum tipo.

 

O que pode estar ocorrendo?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

Sou nova na programação e estou desenvolvendo um sistema para controle de estoque no Delphi.

 

Quando vou fazer a conexão do banco de dados como Delphi aparece a mensagem que o arquivo não foi encontrado. No local do arquivo, o mesmo não está salva em nenhum tipo.

 

O que pode estar ocorrendo?

Paula, a conexão do Delphi de uma lida neste item:

Delphi e SQL Server

Acesso com dbExpress, ADO e BDE

por Guinther de Bitencourt Pauli

 

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.

Componente Propriedade Valor

SQLConnection1 LoginPrompt False

SQLConnection1 Connected True

SQLQuery1 SQLConnection SQLConnection1

SQLQuery1 SQL select * from CLIENTES

DataSetProvider1 DataSet SQLQuery1

ClientDataSet1 ProviderName DataSetProvider1

ClientDataSet1 Active True

 

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.

Componente Propriedade Valor

DataBase1 DataBaseName CLUBEDELPHI

Database1 Connected True

Query1 DataBaseName CLUBEDELPHI

Query1 SQL select * from CLIENTES

Query1 CacheUpdates True

Query1 Active True

Query1 UpdateObject UpdateSQL1

 

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.

Componente Propriedade Valor

ADOQuery1 Connection ADOConnection1

ADOQuery1 SQL select * from CLIENTES

ADOQuery1 Active True

 

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 odbExpress 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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada A. Jr.

 

Resolvi o problema deixando de usar o IBConsole. Estou usando o IBExpert e está rodando tudo

bem ! ^^

 

Show!

Faz anos que não programo em Delphi, por isso te passei a lista de conexão.

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.