GARANTIR DESCONTO

Fórum Qual componente usar #189137

16/10/2003

0

Salve pessoal

Estou começando a migrar meu banco de dados para o firebird .. no começo estou apanhando um pouco mas tudo bem .. com o tempo vou pegando o jeito da coisa. Minha duvida é a seguinte estou usando o Delphi 7 e ja criei minha primeira tabela usando o ibexpert ... quais os componentes do delphi eu devo usar para fazer a conexao com as tabelas.

Bom estou começando .. se alguem tiver mais alguma dica para poder me passar sera bem vinda.
Valewww


Marcelo Bh

Marcelo Bh

Responder

Posts

16/10/2003

Mition

Em um DataModule coloque os seguintes componentes:

da pasta DBExpress:
* SQLConnection1
* SQLDataSet1

da pasta DataAccess:
* DataSetProvider1 (aqui está o pulo do gato!)
* ClientDataSet1
* DataSource1

configurações das propriedades de
1. SQLConnection1
1.1 ConnectionName:=IBConnection
1.2 DriverName := Interbase
1.3 LoginPrompt:=false
1.4 Params
1.5 Crie uma nova Conexão clicando no botão ´+´ , selecione o driver Intebase e dê o nome (CONEXA1 por exemplo)
1.6 configure como vc já deve ter feito, NÃO ESQUECENDO O ENDEREÇO DO DATABASE E SQLDialect=3
1.7. Selecione na janela Connection Name o nome que vc criou (provavelmente CONEXA1)
1.8. Clique no botão de Confirma (ao lado do botão editar), para salvar essa conexão.
1.9. Connected:=true;

configurações das propriedades de
2. SQLDataSet12.1 SQLConnection:=SQLConnection1 (ou o nome que vc escolheu)
2.2 CommandType -> 03 opções:
2.2.1. Se vc escolher ctQuery (padrão), deverá trabalhar com instruções SQL (insert, update, delete, select) - (recomendável)
2.2.2. ctTable, instruções normais de objetos Table
2.2.3. ctStoredProc, procedimentos de instruções em SQL para ´stored procedures´ (gatilhos - muito útil, qdo necessário)
2.3. CommandText:= select * from <nome tabela> <demais comandos> ou clique em ´...´ para abrir o editor SQL e monte sua instrução. Utilize inicialmente instruções de consulta - em outras ocasiões, poderá utilizar comandos de execução (+ prá frente).
2.4. Active:=true

configurações das propriedades de
3. DataSetProvider1
3.1 DataSet:=SQLDataSet1 (ou o nome que vc escolheu)

configurações das propriedades de
4. ClientDataSet1 (manterá os registros da tabela em memória (buffer) para a navegação bidirecional - vc não estará navegando na table e sim na consulta)
4.1 ProviderName:=DataSetProvider1 (ou o nome que vc escolheu)
4.2 Active:=true
OBS.:esse componente ClientDataSet substitui o componente Table! a vantagem é que vc está trabalhando com os registro/tables em sua máquina. O servidor será atualizando (e a rede acessada) somente após a confirmação dos dados inseridos, alterados ou excluídos.

configurações das propriedades de
5. DataSource1 (aí é muita moleza - se vira!)

OBS: para cada tabela em seu data módulo, vc deverá ter um componente SQLDataSet,DataSetProvider, ClientDataSet e DataSource. (somente um SQLconnection compartilhado entre todos eles)
Se houver necessidade de vc acessar outro Banco de Dados, deverá colocar outro SQLConnection.

Coisas a se considerar:

1. As buscas são feitas através do método LOCATE dos ClientDataSets (esqueça seek, gotokey,gotonearest,...). Como as tabelas já tem seu índice ou campos indexados, ele fará a consulta por onde ele achar mais rápido (claro que depende se chave que vc está buscado é índice ou indexado)
2. Navegação é normal (first, prior, ...)
3. Não utilize o método Post (apesar de estar habilitado). Motivo: Post atualiza apenas o ClientDataSet (em buffer), e não atualizará o BD Servidor.
4. No lugar de Post, utilize o método applyUpdates(-1). Desse modo atualizará o ClientDataSet e o SQLDataSet (diretamente no BD Servidor).
Ex: DataModule1.ClientDataSet1.applyupdates(-1);
5. Daqui para frente, só utilize instruções em SQL (se preferir. Lógico!)
6. Se preferir utilizar os métodos Insert, Delete, Edit, etc, no ClientDataSet (como no Table), tudo bem, mas nunca utilize POST para confirmar e sim ApplyUpdates(-1)!
7. Se um SQLConnection estiver fechado, a partir do momento que vc abrir um SQLDataSet, a conexão será automaticamente aberta. Não acontece o mesmo se fizer o ClientDataSet.

UFA! Quanto tempo para digitar!

Boa Sorte


P.S. Uma boa bibliografia->Delphi 6 com FireBird/Interbase - Bastiaan Pieter Marinus Wilderom/Marcelo Frank - Editora Érica. Esse livro explica detalhadamente o que passei para vc! Sem falar que o livro é um projeto de PDV (posto de venda - com impressora fiscal e uso de código de barras - MUITO ÚTIL E NECESSÁRIO)
Revista Clube Delphi Edições -> 17,18,22,23 e 28.

[]´s e boa sorte!


Responder

Gostei + 0

16/10/2003

Salomao

Cara!
Se você não pretender mudar de banco de dados, utilize o IBX (interbase express), pois é de fácil utilização e configuração, aqui no clube delphi existem alguns exemplos de utilização desses componentes, basta baixar e dá uma olhadinha!!!
Espero ter ajudado!


Responder

Gostei + 0

16/10/2003

Marcelo.c

Há um exemplo muito bom de utilização do IBX em conjunto com ClientDataSet que facilita bastante a manipulação de dados, veja em:

http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=156


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar