![]() | ![]() Products ![]() ![]() ![]() ![]() |
Home » Technical Support » ElevateDB Technical Support » Support Forums » ElevateDB General Discussion » View Thread |
Messages 1 to 10 of 13 total |
![]() |
Tue, Aug 6 2013 6:48 AM | Permanent Link |
Abdulaziz Al-Jasser | Hi,
What is the best/fastest way to move data between a client dataset and edbtable? I am sure streams are not considered. Regards, Abdulaziz Jasser |
Tue, Aug 6 2013 12:33 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. ![]() | Abdulaziz,
<< What is the best/fastest way to move data between a client dataset and edbtable? I am sure streams are not considered. >> Unfortunately, the only way to do so is row-by-row. If you have any other questions, please let me know. Tim Young Elevate Software www.elevatesoft.com |
Tue, Aug 6 2013 3:27 PM | Permanent Link |
Michael Riley ZilchWorks | Tim Young [Elevate Software] wrote:
> Abdulaziz, > > << What is the best/fastest way to move data between a client dataset > and edbtable? I am sure streams are not considered. >> > > Unfortunately, the only way to do so is row-by-row. > > If you have any other questions, please let me know. > > Tim Young > Elevate Software > www.elevatesoft.com Tim, What about importing from a store if the ClientDataSet was saved as a file? -- Michael Riley GySgt USMC (Ret) www.zilchworks.com |
Mon, Aug 12 2013 4:47 PM | Permanent Link |
Barry | Michael Riley,
>What about importing from a store if the ClientDataSet was saved as a file?< He would have to import and parse the stored ClientDataset file into a TEDBTable. It would of course be much slower because he would have to write the TClientDataset data to disk, then read it back in. Problems also arise if he doesn't have write access locally and if he did, he'd have to clean up the file contents when he's done because it may contain sensitive information. It is much better (more secure and faster) to work with the memory table directly. TkbmMemTable has a SaveToDataset method that will copy rows in the TkbmMemTable memory table to any TDataset, including TEDBTable. Perhaps that would be better than using a TClientDataset. It also has a DeltaHandler so only modified rows can be copied back. If Abdulaziz Jasser doesn't want to purchase TkbmMemTable (is there still a free version available?), he can look at edbmigrate.pas (\code\source subdirectory) to move data from a TClientDataset to an TEDBTable. It will take a bit of tweaking, but it is doable. Barry |
Tue, Aug 13 2013 1:25 PM | Permanent Link |
Abdulaziz Al-Jasser | Barry wrote:
<<He would have to import and parse the stored ClientDataset file into a TEDBTable. It would of course be much slower because he would have to write the TClientDataset data to disk, then read it back in. Problems also arise if he doesn't have write access locally and if he did, he'd have to clean up the file contents when he's done because it may contain sensitive information. It is much better (more secure and faster) to work with the memory table directly.>> Thanks Barry for the comments. However, I am facing a little problem with EDB memory tables since they are physically located on the server side. I use them very much and they are very handy except when it comes to a remote server (Internet with slow connection). I do a lot of data validations and manipulations before sending them back to the server. Therefore I need to do them locally. Clinetdataset should do the job (since I do that at the row/field level), but losing the SQL feature is a pain. Regards, Abdulaziz Jasser |
Tue, Aug 13 2013 6:31 PM | Permanent Link |
Barry | Abdulaziz Jasser,
>Thanks Barry for the comments. However, I am facing a little problem with EDB memory tables since they are physically located on the server side. I use them very much and they are very handy except when it comes to a remote server (Internet with slow connection). I do a lot of data validations and manipulations before sending them back to the server. Therefore I need to do them locally. Clinetdataset should do the job (since I do that at the row/field level), but losing the SQL feature is a pain.< The EDB memory tables are only stored on the server if they are not temporary. Temporary EDB memory tables are stored locally on the client machine. Even so, I believe a kbmMemTable will be much faster (5x to 10x) than a local EDBTable memory table. kbmMemTable also has (somewhat limited) SQL capabilities that are quite remarkable. (You can apply SQL to a kbmMemTable.) Barry |
Wed, Aug 14 2013 3:42 AM | Permanent Link |
Roy Lambert NLH Associates ![]() | Abdulaziz
>but losing the SQL feature is a pain. What sort of SQL are you needing? Roy Lambert |
Wed, Aug 14 2013 9:17 AM | Permanent Link |
Abdulaziz Al-Jasser | Barry,
<<EDB memory tables are only stored on the server if they are not temporary.>> This is not what Tim said in the bellow link. This a copy/paste from Tim comment: "Just to clarify, temporary tables are never created on the local machine with remote sessions. They are created on the server, but isolated by session." http://www.elevatesoft.com/forums?action=view&category=edb&id=edb_general&msg=15351&start=1&keywords=CREATE Temporary&searchbody=True&forum=EDB_Announce&forum=EDB_General&forum=EDB_SQL&forum=EDB_Connect&forum=EDB_Extensions&forum=EDB_Beta&forum=EDB_Binaries&forum=EDB_Suggestions&forum=EDB_ThirdParty&forum=EDB_Discussion#15351 Roy, <<What sort of SQL are you needing?>> I use UPDATE, DELETE, and INSERT to manipulate the data locally before sending it back to the server. I also use row/field manipulation. Regards, Abdulaziz Jasser |
Wed, Aug 14 2013 11:55 AM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. ![]() | Barry,
<< The EDB memory tables are only stored on the server if they are not temporary. Temporary EDB memory tables are stored locally on the client machine. >> Abdulaziz is correct - with remote sessions, all tables are stored on the server, even temporary tables. Tim Young Elevate Software www.elevatesoft.com |
Wed, Aug 14 2013 11:57 AM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. ![]() | Abdulaziz,
<< Thanks Barry for the comments. However, I am facing a little problem with EDB memory tables since they are physically located on the server side. I use them very much and they are very handy except when it comes to a remote server (Internet with slow connection). I do a lot of data validations and manipulations before sending them back to the server. Therefore I need to do them locally. Clinetdataset should do the job (since I do that at the row/field level), but losing the SQL feature is a pain. >> Why aren't you just using a local session and local in-memory tables (all EDB) for the memory storage on the client side ? Then you can use any number of techniques to get the data back and forth, and you have complete SQL capabilities. Tim Young Elevate Software www.elevatesoft.com |
Page 1 of 2 | Next Page » | |
Jump to Page: 1 2 |
This web page was last updated on Wednesday, August 14, 2024 at 03:12 PM | Privacy Policy![]() © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? ![]() |