Comentários sobre: Copiando estrutura e dados de um DBXReader para ClientDataSet – DataSnap 2010 http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/ Andreano Lanusse blog - artigos, tutoriais e vídeos sobre tecnologia, desenvolvimento de software (Delphi XE4, C#, PHP, .NET) e técnicas de programação Thu, 07 Jun 2012 14:54:28 +0000 hourly 1 https://wordpress.org/?v=6.5.7 Por: Willian Rodrigues » TDBXJsonTools copiar/converter dados entre TDataSet – TJSONObject – DBXReader http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-9812 Thu, 07 Jun 2012 14:54:28 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-9812 […] […]

]]>
Por: TDBXJsonTools copiar/converter dados entre TDataSet - TJSONObject - DBXReader | Andreano Lanusse | Tecnologia e Desenvolvimento de Software | Delphi, FireMonkey http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-9057 Mon, 16 Apr 2012 04:26:10 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-9057 […] […]

]]>
Por: Júlio César Ferreira (@jcmferreira) http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-7143 Sat, 26 Nov 2011 21:37:06 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-7143 Grande Andreano…

Estou tentando adaptar o sistema da empresa para a tecnologia DataSnap, que é extremamente incrível.

Em nosso caso, nossas queries no lado do servidor, são realizadas através dos componentes ADODB.

Minha pergunta: É possível realizar um TDBXDataSetReader.Create a partir de um TADOQuery e disponibilizar o TDBXReader criado para as aplicações clientes?

]]>
Por: Andreano Lanusse http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-6910 Fri, 04 Nov 2011 00:34:05 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-6910 @Wender, o suporte a Blob foi implementado no Delphi XE2 Update 2, leia esse artigo http://www.andreanolanusse.com/pt/copyreadertoclientdataset-blob-e-a-mensagem-feature-not-implemented/

]]>
Por: CopyReaderToClientDataSet, Blob e a mensagem “Feature not implemented” | Andreano Lanusse Blog | Tecnologia e Desenvolvimento de Software http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-6908 Thu, 03 Nov 2011 23:59:40 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-6908 […] […]

]]>
Por: Rafael Pasa http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-6723 Thu, 20 Oct 2011 18:55:54 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-6723 Boa tarde Andreano!!!

Preciso copiar um DBXreader para um objeto. Tenho uma classe que converte um clientDataSet para um objeto, segue o código abaixo:

class procedure TMsysClassUtils.CarregarDoClientDataSet(const _AFields: TFields; _AObj: TObject);
var
PropList: PPropList;
PropListCount: byte;
I: integer;
begin
PropListCount := GetPropList(_AObj, PropList);
for I := 0 to pred(PropListCount) do
begin
if not _AFields.FieldByName(string(PropList[I].Name)).IsNull then
SetPropValue(_AObj, string(PropList[I].Name), _AFields.FieldByName(string(PropList[I].Name)).AsVariant);
end;
end;

Então pensei em converter o DBXREader para um ClienteDataSet e depois para o objeto. mas ae tive um problema, no Reader vem um campo Observações(Tipo Blob).E a função CopyReaderToClientDataSet dispara um exceção NotImplemeted.
Tem aguma forma de adaptar essa minha função para manipular um DBXREaders e suportar Blob, ou alguma outra solução para meu problema

]]>
Por: Claudio http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-6459 Fri, 16 Sep 2011 18:29:56 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-6459 Andreano, Boa Tarde.

Estou utilizando TDBXReader para navegadar dados do servidor para o cliente.
O problemas é o seguinte:

Tenho um metodo no Servidor chamdo GetListaDeClientes e no cliente executo o seguinte comando
vReader := proxyCliente.GetListaDeClientes;

Quando executo esse comando FreeAndNil(vReader) e FreeAndNil(proxyCliente) o sistema da um erro ‘Invalid Pointer’, mas segui exatamento o exemplo que foi postado.
O que pode ser?
Estou utilizando Delphi2010.

]]>
Por: Wendel Wagner http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-5913 Mon, 27 Jun 2011 20:37:29 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-5913 if Assigned(Reader) then
begin
Try
//Tentando com a Opção Normal, se der erro copiamos um a um
TDBXDataSetReader.CopyReaderToClientDataSet(Reader, pCds);
except
while Reader.Next do
begin

pCDS.Append;

//Preenchendo a tabela
for I := 0 to Reader.ColumnCount – 1 do
begin
//Pega o nome do campo
VCampo := Copy( Reader. Query.Fields[I].FieldName,1,32);

for y := 0 to pCds.FieldCount – 1 do
begin
VNome_Campo := Copy(pCds.Fields[y].FieldName,1,32);

if VNome_Campo = VCampo then
pCds.Fields[y].Value := Query.Fields[I].Value;
end;
end;

pCds.FieldByName(‘SEL_GRID’).Value := ‘N’;

pCDS.Post;

Query.Next;
end;
End;
end;

Com a opção CopytoCds qdo tem coluna Blob da erro de “!FEATURE NOT IMPLEMENTED”..Estou tentando copiar coluna por coluna..mas ainda nao deu certo..existe outra forma de fazer isso?

]]>
Por: Carlos Gonzaga http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-5607 Tue, 14 Jun 2011 13:51:14 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-5607 Resolvi o problema com os campos definidos em run-time.
Veja a rotina que define 2 (dois) campos do tipo string de tamanho variado no ClientDataSet (cdsBusca) .
Isso responde tbm a pergunta do Carvalho, pois internamente o padrão para campos string é 20
procedure TfrmBusca.DoDefColumns;
var f:TFieldDef ;
begin
cdsBusca.FieldDefs.Clear ;

f.Name :=’NOME’;
f.DataType :=ftString ;
f.Size :=50 ;

f.Name :=’EMAIL’;
f.DataType :=ftString ;
f.Size :=80 ;

cdsBusca.CreateDataSet ;
end;

]]>
Por: Rodrigo Martim http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-5594 Mon, 13 Jun 2011 14:55:06 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-5594 OBS: A solução partiu 100% do Sr Andreano. estou postando por que notei que ele não postou este complemento.

Problema resolvido:

Apenas para complementar e ajudar pessoas que venham a ter a mesma duvida.

Tem que compilar o .pas e jogar a dcu gerada pelo mesmo na pasta lib\debug e lib\release dentro das pasta do delphi, apos isso a correção irá funcionar.

Mais uma vez obrigado pela dica Andreano.
Sucesso!

]]>
Por: Rodrigo Martim http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-5404 Fri, 27 May 2011 16:24:40 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-5404 Boa tarde Andreano,

Fiz o ajuste no arquivo DBXDBReaders.pas, incluindo o conteudo postado por você ao Marcos, porem continuo com o problema.

1º Pergunta: Existe alguma forma de depurar esta Unit? Gostaria de entender o que está acontecendo.

2º Pergunta: Há necessidade de alguma compilação apos alterar o DBXDBReaders.pas ou só salvar e compilar o projeto?

Embarcadero® Delphi® XE Version 15.0.3953.35171

Agradecido desde já pela sua ajuda,
Atenciosamente,
Rodrigo Martim.

]]>
Por: Carlos Gonzaga http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-4883 Fri, 15 Apr 2011 18:40:34 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-4883 Felismente so temos a liçença do Delphi 2007! Estou avaliando o delphi 2010 p/ adota-lo, mas estou encontrando estes probleminhas.

]]>
Por: Andreano Lanusse http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-4851 Thu, 14 Apr 2011 07:20:23 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-4851 Em resposta a Carlos Gonzaga.

Carlos,

Se você está usando a versão comprada do Delphi, você tem os fontes da VCL. O trial não traz os fontes da VCL.

]]>
Por: Carlos Gonzaga http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-4843 Wed, 13 Apr 2011 21:02:11 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-4843 Andreano !
Seguindo a dica q vc passou p/ o Marcos. Como eu posto as alterações p/ uam nova unit DBXDBReaders.dcu ja q faz parte da lib da VCL?

]]>
Por: Rodrigo http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-3821 Thu, 03 Feb 2011 01:52:53 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-3821 Olá Andreano, estou com uma dúvida, é a seguinte:

tenho a consulta “SELECT * FROM TABELA WHERE ID=:pID”

como passar pelo dbexpress vários valores para a coluna ID?

visto que se eu utilizar, ClientDataSet1.Params[0].AsInteger := 1 só poderei trazer o registro cujo valor da coluna ID é 1,

Gostaria de trazer vários registros cujo valor da coluna ID seria 1,2,3,4,60,90,80,56

]]>
Por: Andreano Lanusse http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-3797 Tue, 01 Feb 2011 09:10:55 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-3797 Oi Marcos,

Vai na unit DBXDBReaders na procedure CopyValueTypeProperties, localize a linha onde está
if ValueType.DataType = TDBXDataTypes.WideStringType then

e mude para

if ValueType.DataType in [TDBXDataTypes.WideStringType, TDBXDataTypes.AnsiStringType] then

Isso irá resolver o problema de truncar.

]]>
Por: Marcos Rodrigues http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-3778 Sun, 30 Jan 2011 20:28:52 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-3778 Também estou com este problema alguém tem a solução?

]]>
Por: Andreano Lanusse http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-2028 Tue, 07 Dec 2010 03:39:46 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-2028 Em resposta a Rodrigo Carvalho.

Oi Rodrigo,

obrigado por visitar o blog e bom saber que estas aprendendo, estamos cada vez mais trazendo materiais em português.

Sobre o seu problema, o seu ClientDataSet já tinha os TFields pré definidos? Se você está criando os TFields antes não precisaria, pois o método faz isso pra você.

]]>
Por: Rodrigo Carvalho http://www.andreanolanusse.com/pt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comment-2022 Mon, 06 Dec 2010 22:44:26 +0000 http://www.andreanolanusse.com/pt/?p=934#comment-2022 Andreano, muito legal estes posts sobre DataSnap. Tenho aprendido bastante com eles e engatinhado na tecnologia, meio aos trancos e barrancos devido a deficiencia de material para estudo (principalmente em português) mas tá indo.rsrs… Tenho uma dúvida que gostaria de compartilhar aki no seu blog. Quando uso o método toClientDataSet ele trunca os campos do Reader, você sabe como posso resolver isso? Ex: Tenho um campo no Reader com 150 caracteres, no reader legal tenho os 150 depois q converto, nos novos campos do clientdataset ele armazena apenas os 20 primeiros caracteres. Já observei que 20 é o número padrão quando criamos um datasetfiels do tipo string… tem algo haver?
Grande abraço.

]]>