{"id":305,"date":"2010-04-24T15:55:01","date_gmt":"2010-04-24T23:55:01","guid":{"rendered":"http:\/\/www.andreanolanusse.com\/en\/?p=305"},"modified":"2012-02-07T00:17:16","modified_gmt":"2012-02-07T08:17:16","slug":"copying-dbxreader-to-clientdataset-datasnap-2010","status":"publish","type":"post","link":"http:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/","title":{"rendered":"Copying data from DBXReader to ClientDataSet"},"content":{"rendered":"<p>If you are using DataSnap 2010\/XE for sure use DBXFramework, which I strong recommend for operations where you don&#8217;t use Data Aware components or bi-directional datasets.<\/p>\n<p>There are situations where you will need to copy data from DBXReader to TClientDataSet or TParams, for this kind of situation Delphi has the unit DBXDBReaders.pas, which contain some classes that allow this kind of operation.<\/p>\n<p>The TDBXDataSetReader class contain the method CopyReaderToClientDataSet, on this method you pass the DBXReader that contain the data to copy to the ClientDataSet, which is the second parameter, the follow code demonstrate that:<\/p>\n<pre class=\"brush: delphi\">var\r\n  Reader: TDBXReader;\r\n  DepClient: TDepartmentClient;\r\nbegin\r\n  DepClient := TDepartmentClient.Create(DMClientContainer.MyDSServer.DBXConnection, False);\r\n\r\n  try\r\n    Reader := DepClient.GetDepartmentsOrderBy;\r\n\r\n    try\r\n      if Assigned(Reader) then\r\n      begin\r\n        TDBXDataSetReader.CopyReaderToClientDataSet(Reader, DMClientContainer.CDSCopy);\r\n      end;\r\n    finally\r\n      FreeAndNil(Reader);\r\n    end;\r\n\r\n  finally\r\n    DepClient.Free;\r\n  end;<\/pre>\n<p>The ClientDataSet CDSCopy already exist and is part of the DataModule DMClientContainer. if you don&#8217;t have a ClientDataSet created, use the method TDBXDataSetReader.ToClientDataSet, it wil return a new ClientDataSet.<\/p>\n<p>My DataSnap 2010 samples was updated and you can <strong><a href=\"http:\/\/cc.embarcadero.com\/Item\/27391\" target=\"_blank\">download from here<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you are using DataSnap 2010\/XE for sure use DBXFramework, which I strong recommend for operations where you don&#8217;t use Data Aware components or bi-directional datasets. There are situations where you will need to copy data from DBXReader to TClientDataSet or TParams, for this kind of situation Delphi has the unit DBXDBReaders.pas, which contain some [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_s2mail":"yes","footnotes":""},"categories":[10],"tags":[21,34,90],"class_list":["post-305","post","type-post","status-publish","format-standard","hentry","category-delphi","tag-datasnap","tag-dbexpress","tag-delphi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Copying data from DBXReader to ClientDataSet | Andreano Lanusse | Technology and Software Development<\/title>\n<meta name=\"description\" content=\"If you are using DataSnap 2010\/XE for sure use DBXFramework, which I strong recommend for operations where you don&#039;t use Data Aware components or\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Copying data from DBXReader to ClientDataSet | Andreano Lanusse | Technology and Software Development\" \/>\n<meta property=\"og:description\" content=\"If you are using DataSnap 2010\/XE for sure use DBXFramework, which I strong recommend for operations where you don&#039;t use Data Aware components or\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/\" \/>\n<meta property=\"og:site_name\" content=\"Andreano Lanusse | Technology and Software Development\" \/>\n<meta property=\"article:published_time\" content=\"2010-04-24T23:55:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2012-02-07T08:17:16+00:00\" \/>\n<meta name=\"author\" content=\"Andreano Lanusse\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andreano Lanusse\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/\"},\"author\":{\"name\":\"Andreano Lanusse\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b\"},\"headline\":\"Copying data from DBXReader to ClientDataSet\",\"datePublished\":\"2010-04-24T23:55:01+00:00\",\"dateModified\":\"2012-02-07T08:17:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/\"},\"wordCount\":145,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b\"},\"keywords\":[\"DataSnap\",\"dbExpress\",\"Delphi\"],\"articleSection\":[\"Delphi\"],\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/\",\"url\":\"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/\",\"name\":\"Copying data from DBXReader to ClientDataSet | Andreano Lanusse | Technology and Software Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#website\"},\"datePublished\":\"2010-04-24T23:55:01+00:00\",\"dateModified\":\"2012-02-07T08:17:16+00:00\",\"description\":\"If you are using DataSnap 2010\/XE for sure use DBXFramework, which I strong recommend for operations where you don't use Data Aware components or\",\"breadcrumb\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.andreanolanusse.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Copying data from DBXReader to ClientDataSet\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#website\",\"url\":\"https:\/\/www.andreanolanusse.com\/en\/\",\"name\":\"Andreano Lanusse | Technology and Software Development\",\"description\":\"Where Andreano Lanusse talk about technology, software development, programming techniques, databases, games and more through articles, tutorials and videos\",\"publisher\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.andreanolanusse.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b\",\"name\":\"Andreano Lanusse\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/49ab23ef70c249c0cb3469f14ef07edc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/49ab23ef70c249c0cb3469f14ef07edc?s=96&d=mm&r=g\",\"caption\":\"Andreano Lanusse\"},\"logo\":{\"@id\":\"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/image\/\"},\"description\":\"Andreano Lanusse is an expert and enthusiastic on software development industry, at Embarcadero he is focused on helping to make sure the products being developed meet the expectations of Embarcadero's customers, as well as defining market strategies for Latin America. Today as Latin Lead Evangelist he spends great deal of time in developer conferences, tradeshows, user group, and visiting customers throughout Latin America. Before Embarcadero, he worked 13 years for Borland, Andreano has worked as Support Coordinator, Engineer, Product Manager, including Product Line Sales Manager, where was responsible to manage the relationship with Brazil developer community, also has worked as Principal Consultant for Borland Consulting Services on the development and management of critical applications. He previously served as Chief Architect for USS Solu\u00e7\u00f5es Gerenciadas (now USS Tempo). Andreano holds a bachelor's degree in Business Administration Marketing Emphasis from Sumare Institute, MBA in Project Management from FGV, certification in Microsoft products, all Borland ALM products, and all CodeGear product line.\",\"sameAs\":[\"http:\/\/www.andreanolanusse.com\",\"https:\/\/x.com\/andreanolanusse\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Copying data from DBXReader to ClientDataSet | Andreano Lanusse | Technology and Software Development","description":"If you are using DataSnap 2010\/XE for sure use DBXFramework, which I strong recommend for operations where you don't use Data Aware components or","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/","og_locale":"en_US","og_type":"article","og_title":"Copying data from DBXReader to ClientDataSet | Andreano Lanusse | Technology and Software Development","og_description":"If you are using DataSnap 2010\/XE for sure use DBXFramework, which I strong recommend for operations where you don't use Data Aware components or","og_url":"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/","og_site_name":"Andreano Lanusse | Technology and Software Development","article_published_time":"2010-04-24T23:55:01+00:00","article_modified_time":"2012-02-07T08:17:16+00:00","author":"Andreano Lanusse","twitter_misc":{"Written by":"Andreano Lanusse","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/#article","isPartOf":{"@id":"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/"},"author":{"name":"Andreano Lanusse","@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b"},"headline":"Copying data from DBXReader to ClientDataSet","datePublished":"2010-04-24T23:55:01+00:00","dateModified":"2012-02-07T08:17:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/"},"wordCount":145,"commentCount":3,"publisher":{"@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b"},"keywords":["DataSnap","dbExpress","Delphi"],"articleSection":["Delphi"],"inLanguage":"en","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/","url":"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/","name":"Copying data from DBXReader to ClientDataSet | Andreano Lanusse | Technology and Software Development","isPartOf":{"@id":"https:\/\/www.andreanolanusse.com\/en\/#website"},"datePublished":"2010-04-24T23:55:01+00:00","dateModified":"2012-02-07T08:17:16+00:00","description":"If you are using DataSnap 2010\/XE for sure use DBXFramework, which I strong recommend for operations where you don't use Data Aware components or","breadcrumb":{"@id":"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.andreanolanusse.com\/en\/copying-dbxreader-to-clientdataset-datasnap-2010\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.andreanolanusse.com\/en\/"},{"@type":"ListItem","position":2,"name":"Copying data from DBXReader to ClientDataSet"}]},{"@type":"WebSite","@id":"https:\/\/www.andreanolanusse.com\/en\/#website","url":"https:\/\/www.andreanolanusse.com\/en\/","name":"Andreano Lanusse | Technology and Software Development","description":"Where Andreano Lanusse talk about technology, software development, programming techniques, databases, games and more through articles, tutorials and videos","publisher":{"@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.andreanolanusse.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"},{"@type":["Person","Organization"],"@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/b51fdf99c01fcd6ae0a5ae894c23837b","name":"Andreano Lanusse","image":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/49ab23ef70c249c0cb3469f14ef07edc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/49ab23ef70c249c0cb3469f14ef07edc?s=96&d=mm&r=g","caption":"Andreano Lanusse"},"logo":{"@id":"https:\/\/www.andreanolanusse.com\/en\/#\/schema\/person\/image\/"},"description":"Andreano Lanusse is an expert and enthusiastic on software development industry, at Embarcadero he is focused on helping to make sure the products being developed meet the expectations of Embarcadero's customers, as well as defining market strategies for Latin America. Today as Latin Lead Evangelist he spends great deal of time in developer conferences, tradeshows, user group, and visiting customers throughout Latin America. Before Embarcadero, he worked 13 years for Borland, Andreano has worked as Support Coordinator, Engineer, Product Manager, including Product Line Sales Manager, where was responsible to manage the relationship with Brazil developer community, also has worked as Principal Consultant for Borland Consulting Services on the development and management of critical applications. He previously served as Chief Architect for USS Solu\u00e7\u00f5es Gerenciadas (now USS Tempo). Andreano holds a bachelor's degree in Business Administration Marketing Emphasis from Sumare Institute, MBA in Project Management from FGV, certification in Microsoft products, all Borland ALM products, and all CodeGear product line.","sameAs":["http:\/\/www.andreanolanusse.com","https:\/\/x.com\/andreanolanusse"]}]}},"_links":{"self":[{"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/posts\/305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/comments?post=305"}],"version-history":[{"count":0,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/posts\/305\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/media?parent=305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/categories?post=305"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/en\/wp-json\/wp\/v2\/tags?post=305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}