Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 10 total
Thread Working with Elevate DB
Fri, Jun 12 2015 6:25 AMPermanent Link

Michael Saunders

I have managed to get the DataSetClient / DatasetModule example going and would now like to use this as a guide to developing a project that replaces the Biolife Dataset with a set of tables from an Elevate DB Database. I believe this should be straightforward but I cannot find any examples to get me off the ground and  I would really appreciate a basic template of the coding needed for in particuilar the server side stuff  

I assume that I need to add the tables and ConfigFile stuff when I configure the server  and therefore do not need the Database/Dataset Adaptors but not what else to do and what components to place in my EDBModule

I assume also that I need to develop a Module to be registered but find the terms DataSets, CustomDataSets and Custom Datsets Module confusing  If I use the built in Databases provided then does this mean that they are not called Custom and if so why is the Module called a Custom Datsets Module

I can see that once all these silly frustrations are cleared up my requirements form this product should be well sorted

Thanks
Fri, Jun 12 2015 12:21 PMPermanent Link

Uli Becker

Michael,

it's not clear what your "scenario" is. If you just want to develop an application that communicates with EDB, you don't need any modules except you want to use stored procedures or anything else besides tables or queries.
I guess you are using the EWB Webserver?

Uli
Fri, Jun 12 2015 3:56 PMPermanent Link

Michael Saunders

Uli Becker wrote:

Michael,

it's not clear what your "scenario" is. If you just want to develop an application that communicates with EDB, you don't need any modules except you want to use stored procedures or anything else besides tables or queries.
I guess you are using the EWB Webserver?

Uli

Thanks for replying

Yes I want to use the EWB WebSever   I can already connect to EDB using the built in IDE server to a dataset I have defined using the Dataset Manger Now I would like to take this a stage further To quote from the manual

"The Elevate Web Builder web server allows modules created using Embarcadero RAD Studio and Delphi
to be registered in the web server and used to handle dynamic requests to the web server. This allows
the developer to offload computationally-intensive or database-intensive work to the natively-compiled
web server modules, and then use simple server requests in the front-end Elevate Web Builder
applications to make requests to the modules and receive back responses along with the relevant
data/content."

I can also connect to my EDB database by configuring the Server Datasets tab What confuse me is what do I do next  The above quote from the manual  implies that I need to develop a Module but the Server Content tab wants me to specify a Custom Datsets Module (Like the Biolife in the example provided I assume ? )   I understood that EDB was not a Custom Dataset however so where do I place my code and how do I start and what components do I use in my Module etc

This is all probably obvious to you but please clarify as unfortuantley ther seems no example for this anywhere

Thanks
Fri, Jun 12 2015 4:09 PMPermanent Link

Uli Becker

Michael,

it's still not clear, what you want to do with a module. Please elaborate.
If you generally want to know how a module works, I can send you some code, but not before Sunday - I'm not at home. Maybe someone else can help you immediately.

Uli
Fri, Jun 12 2015 4:38 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Michael,

<< I can also connect to my EDB database by configuring the Server Datasets
tab What confuse me is what do I do next  The above quote from the manual
implies that I need to develop a Module but the Server Content tab wants me
to specify a Custom Datsets Module (Like the Biolife in the example provided
I assume ? )   I understood that EDB was not a Custom Dataset however so
where do I place my code and how do I start and what components do I use in
my Module etc >>

You can use *any* non-visual Delphi components in a web server module.  For
a custom dataset module, you can use the included TDatabaseAdapter and
TDataSetAdapter components to hook up TDataSet-descendant components so that
you can easily generate/consume the necessary JSON for EWB.

<< This is all probably obvious to you but please clarify as unfortuantley
ther seems no example for this anywhere >>

There's no example project, other than the custom dataset module example,
but how you create/code modules is covered quite extensively in the modules
manual:

http://www.elevatesoft.com/manual?action=topics&id=ewb1mod&product=rsdelphi&version=XE&section=getting_started

as well as a complete overview of them in the EWB manual:

http://www.elevatesoft.com/manual?action=viewtopic&id=ewb1&topic=Modules

I'll be including more module example projects in EWB 2, but the above links
should be sufficient to get you started.  The reason that more module
examples weren't included in EWB 1.x is because it did not support adding
server modules to the IDE.  So, there was no way to automate the example
installations, and it was particularly difficult to explain the entire
process of setting up the web server simply for a module example project.

Tim Young
Elevate Software
www.elevatesoft.com

Fri, Jun 12 2015 5:21 PMPermanent Link

Michael Saunders

Uli Becker wrote:

Michael,

it's still not clear, what you want to do with a module. Please elaborate.
If you generally want to know how a module works, I can send you some code, but not before Sunday - I'm not at home. Maybe someone else can help you immediately.

Uli

I want to take a portion of a desktop application already written for EDB and enable it to eventually run from a hand held device The desktop app runs on a LAN and uses the EDB Server for access There will be a quite a bit of Dephi code to execute (Maybe even incorporating FastReport)  That is why I  am looking to do this using a Server Module.  I would very much appreciate  reviewing anything that you can provide as i am sure that it will help clear up my confusion  and I can certainly wait a couple of days or so  

Thanks
Fri, Jun 12 2015 6:16 PMPermanent Link

Michael Saunders

"Tim Young [Elevate Software]" wrote:

Michael,

<< I can also connect to my EDB database by configuring the Server Datasets
tab What confuse me is what do I do next  The above quote from the manual
implies that I need to develop a Module but the Server Content tab wants me
to specify a Custom Datsets Module (Like the Biolife in the example provided
I assume ? )   I understood that EDB was not a Custom Dataset however so
where do I place my code and how do I start and what components do I use in
my Module etc >>

You can use *any* non-visual Delphi components in a web server module.  For
a custom dataset module, you can use the included TDatabaseAdapter and
TDataSetAdapter components to hook up TDataSet-descendant components so that
you can easily generate/consume the necessary JSON for EWB.

<< This is all probably obvious to you but please clarify as unfortuantley
ther seems no example for this anywhere >>

There's no example project, other than the custom dataset module example,
but how you create/code modules is covered quite extensively in the modules
manual:

http://www.elevatesoft.com/manual?action=topics&id=ewb1mod&product=rsdelphi&version=XEžion=getting_started

as well as a complete overview of them in the EWB manual:

http://www.elevatesoft.com/manual?action=viewtopic&id=ewb1&topic=Modules

I'll be including more module example projects in EWB 2, but the above links
should be sufficient to get you started.  The reason that more module
examples weren't included in EWB 1.x is because it did not support adding
server modules to the IDE.  So, there was no way to automate the example
installations, and it was particularly difficult to explain the entire
process of setting up the web server simply for a module example project.

Tim Young
Elevate Software
www.elevatesoft.com

I thought I would try using EWB 1 whilst waiting for EWB 2 just to get some experience as my client is pushing me  for  some progress  So if the release of EWB 2 is imminent I could hang on  

I have already been able to compile and register a Module in the EWB Server but I am unclear as to how this would need to be altered from the Biolife example to use EDB instead  EG Do I  need to reference it as a Custom DataSet Module in the Server Configuration  even though it is a  supported Database (ie EDB DBISAM and ADO) and what EDB Components do I need (if any) in the Module

Mon, Jun 15 2015 11:46 AMPermanent Link

Uli Becker

Michael,

I uploaded one of my modules to the binaries for you. Unfortunately I
have no time to comment anything at the moment - hope it helps anyway.

Uli
Tue, Jun 16 2015 6:02 AMPermanent Link

Michael Saunders

Uli Becker wrote:

Michael,

I uploaded one of my modules to the binaries for you. Unfortunately I
have no time to comment anything at the moment - hope it helps anyway.

Uli

Many thanks Uli  Hopefully I have managed to resolve a lot of my issues and realise I was trying to do to much to soon.  Your examples resolves a few things for me as well

MIke
Tue, Jun 16 2015 7:43 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Michael,

<< I thought I would try using EWB 1 whilst waiting for EWB 2 just to get
some experience as my client is pushing me  for  some progress  So if the
release of EWB 2 is imminent I could hang on  >>

Yeah, it will be released by Monday, June 22 (probably on Monday, if it
looks like Thursday or Friday of this week for a release).

<< I have already been able to compile and register a Module in the EWB
Server but I am unclear as to how this would need to be altered from the
Biolife example to use EDB instead EG Do I  need to reference it as a Custom
DataSet Module in the Server Configuration  even though it is a  supported
Database (ie EDB DBISAM and ADO) and what EDB Components do I need (if any)
in the Module >>

Yes, you would need to reference it as a custom dataset module if you want
to use the custom dataset modules resource name setting (default
"customdatasets") as part of the path to the datasets.  You can also just
use it like a normal web server module with the modules resource name
setting (default "modules").  The only difference is the resource name used
to in the URL: the functionality of the module doesn't change.

You would replace the TClientDataSet component with the necessary ElevateDB
TEDBSession, TEDBDatabase, and TEDBTable/TEDBQuery/TEDBScript/TEDBStoredProc
components that you need to access your data, just like in a normal Delphi
data module.

You would then need to add TDatabaseAdapter and TDataSetAdapter components.
There are a couple of options here:  1) Using the same TDataSetAdapter for
all of the TEDBTable/TEDBQuery/TEDBScript/TEDBStoredProc components on the
web server module, or 2) using a different TDataSetAdapter for each.  The
main difference is in how you handle this event:

http://www.elevatesoft.com/manual?action=viewmethod&id=ewb2mod&product=rsdelphi&version=XE&comp=TEWBDatabaseAdapter&method=GetDataSetAdapter

If you go with the 1) route, then any event handler for this event must set
the TEWBDataSetAdapter.DataSet property:

http://www.elevatesoft.com/manual?action=viewprop&id=ewb2mod&product=rsdelphi&version=XE&comp=TEWBDataSetAdapter&prop=DataSet

and then call the TEWBDataSetAdapter.Initialize method:

http://www.elevatesoft.com/manual?action=viewmethod&id=ewb2mod&product=rsdelphi&version=XE&comp=TEWBDataSetAdapter&method=Initialize

being sure to handle this event:

http://www.elevatesoft.com/manual?action=viewevent&id=ewb2mod&product=rsdelphi&version=XE&comp=TEWBDataSetAdapter&event=OnInitialize

to make sure that the dataset key information is set so that the EWB dataset
adapter code can find the correct rows during updates and deletes, as well
as generate the proper row key values for BLOB load URLs that are generated
as part of the JSON for the dataset rows.

If you go with 2), then you can hard-code all of this information into each
TEWBDataSetAdapter instance on the web server module.

EWB 2 has this new TEWBDatabaseAdapter method:

http://www.elevatesoft.com/manual?action=viewmethod&id=ewb2mod&product=rsdelphi&version=XE&comp=TEWBDatabaseAdapter&method=HandleRequest

that handles all of the nitty-gritty of the dataset requests, so it will
make most of the old request handling code in EWB 1.x unnecessary.

If you have any other questions, please let me know.

Tim Young
Elevate Software
www.elevatesoft.com
Image