ClientDataSet com FireDAC

Delphi

05/05/2015

Estou migrando do DBExpress para o Firedac ( Delphi XE7), a ideia é usar no inicio o TFDQuery + TDataSetProvider + TClientDataSet, alguém sabe como funciona?

Consigo visualizar os dados mas não consigo gravar alterações no Banco ( Firebird), quando dou clientedataset.applyupdates não retorna erro mas não grava no banco.
A alteração grava no ClientDataSet mas não no banco.
Roberto Rodrigues

Roberto Rodrigues

Curtidas 0

Melhor post

Mateus Carvalho

Mateus Carvalho

13/05/2015

Eu pensei que você estava usando o FDTable.

Com o FDQuery, você tem que utilizar o ApplyUpDate, pois o Query, "gera" uma tabela temporária na memoria, ai para alterar o na base, tem que usar o código.




Nesse caso, você pode usar o FDTable, que usa a tabela em tempo real.






Att
GOSTEI 1

Mais Respostas

Mateus Carvalho

Mateus Carvalho

05/05/2015

Roberto, para conectar, eu uso as seguintes ferramentas:

1 FDConnection
1 FDtransaction
1 FDTable


No Connection, eu configuro os dados de acesso, usuário, senha e etc.
Na Table, eu seleciono a tabela que eu quero, e para salvar, apenas utilizo o comando POST, quem faz essa transação, é o componente Transaction.
GOSTEI 0
Aislan Sousa

Aislan Sousa

05/05/2015

ei será que pode me ajudar

Ola boa tarde tou com um problema talvez seja bem simples de resolver mais não tou conseguindo.

Tou desenvolvendo um sistema de cadastro para apresentar como trabalho da universidade é só cadastro de alunos
e é o seguinte:

Estou fazendo no Rad Studio XE6 com o firebird onde criei uma tabela de Alunos a conexão é o dbExpress + data Snap é que estamos estudando conexão com o fireDac e dbExpress , fizemos o sistema e ele roda na maquina que fizemos, mais para nossa surpresa quando fomos mostra para a professora só rodou o Servidor, a parte do lado do Cliente deu o seguinte erro,

Erro Socket

Exemplo: Onde nos fizemos colocamos o caminho para o banco de dados assim: 192.168.1.2:C:\Arquivos de programas\Banco\Alunos.FDB

Trocamos o o IP do pc da Universidade mais a professora desse que assim não tínhamos que desenvolver um arquivo "INI" desenvolvemos mais continua dando o mesmo erro e quando mudamos o IP da maquina onde ele foi feito também da erro. se alguém poder nos ajudar ficamos grato.
GOSTEI 0
Mateus Carvalho

Mateus Carvalho

05/05/2015

Aislan Rafael Rodrigues de Sousa, cara, normalmente, esse erro apresenta quando o data snap não está ativo ou não consegue conectar no ip especificado. Isso pode ser causado por bloqueio do firewall ou do antivírus.

De uma verificada, e post os resultados.
GOSTEI 0
Roberto Rodrigues

Roberto Rodrigues

05/05/2015

O FDTransaction substitui o DataSetProvider?
GOSTEI 0
Mateus Carvalho

Mateus Carvalho

05/05/2015

A grosso modo sim, Roberto.
GOSTEI 0
Roberto Rodrigues

Roberto Rodrigues

05/05/2015

Mac,

Você poderia me explicar melhor como você usa o FDTransaction?

Ele fica ligado ao FDConection ou na propriedade Transaction da FDTable?

Não estou utilizando FDConection e para salvar utilizo FDTable.ApplyUpdates(0) esta salvando normalmente.

Um problema que tive é não poder utilizar o dbNavigator, criei o meus próprios botões.

Tem algum artigo de como utilizar o FDTransaction?
GOSTEI 0
Mateus Carvalho

Mateus Carvalho

05/05/2015

Roberto,

Para funções básica, como adicionar, editar, deletar, etc, não se programa nenhuma linha no transaction. Basta vincula-lo na propriedade Transaction. Eu coloco ele vinculado no FDconnection, pois assim, consigo acessar varias tabelas em apenas uma conexão, mais se você colocar na table, também funciona. Não é necessário utilizar o "ApplyUpdates(0)", pois o Transaction faz isso para você.



O melhor artigo dele encontra-se na ajuda do Delphi!
GOSTEI 0
Roberto Rodrigues

Roberto Rodrigues

05/05/2015

Mac,

Então com um FDTransaction ligado no FDConnection é suficiente?
GOSTEI 0
Mateus Carvalho

Mateus Carvalho

05/05/2015

Sim, ele consegue dar conta tranquilo!
GOSTEI 0
Roberto Rodrigues

Roberto Rodrigues

05/05/2015

MAC,

Com POST no FDTable ( FDQuery) não esta salvando tenho que dar o ApplyUpDate.
Estou inserindo um registro e não grava no banco com POST.
GOSTEI 0
Mateus Carvalho

Mateus Carvalho

05/05/2015

Faz um favor então.... Coloque os parâmetros de configuração que você esta usando no fdconnection e no fdtable.

Assim facilita pra mim.
GOSTEI 0
Roberto Rodrigues

Roberto Rodrigues

05/05/2015

MAC

Anexo o Object Inspector dos componentes.

[img:descricao=FDConnection]http://arquivo.devmedia.com.br/forum/imagem/30047-20150512-182837.png[/img]
[img:descricao=FDQuery 1]http://arquivo.devmedia.com.br/forum/imagem/30047-20150512-182921.png[/img]
[img:descricao=FDQuery 2]http://arquivo.devmedia.com.br/forum/imagem/30047-20150512-182942.png[/img]
GOSTEI 0
Roberto Rodrigues

Roberto Rodrigues

05/05/2015

MAC,

O FDTable não fica pesado, não gera muito trafego na rede?
GOSTEI 0
Mateus Carvalho

Mateus Carvalho

05/05/2015

Ele consome mais que o Query, entretanto, nunca pesou nos meus sistemas, e olha que eu tenho sistemas com várias tabelas ativas ao mesmo tempo.
GOSTEI 0
Gilberto Moura

Gilberto Moura

05/05/2015

Tenta usar ele com FdtMemtable
GOSTEI 0
Marcelo Castro

Marcelo Castro

05/05/2015

Eu uso a seguinte estrutura:
FDQuery
TDataSource -- Na propriedade DataSet coloca o FDQuery
TDBGrid -- Na propriedade DataSource informde o TDataSource.
GOSTEI 0
Roberto Andrade

Roberto Andrade

05/05/2015

Alguem de vocês consegue conectar o FireDAC com o Oracle no Delphi Berlim ?
GOSTEI 0
POSTAR