ElevateDB Connection

I am attempting to connect to a custom ElevateDB server with DataAbstract.

The server has a custom signature. When I try to use the custom signature I get an error: “Cannot perform this operation when the engine has been started”

Any help would be appreciated.

My connection string looks like this:

ElevateDB?DataBaseName={dbname};RemoteHost={ipaddress};RemotePort={port};Signature={signature string};EngineType=etClient;SessionType=stRemote;RemoteEncryption=True;EncryptionPassword={encrypt password};Server={ipaddress};Database={database path};UserID={user id};Password={password>;

Hi,

try to connect to ElevateDB server w/o DA with TEDBDatabase & TEDBSession.
will it be successful?

Hi Evgeny,

I am able to connect to my custom server just fine using the TEDBSession and TEDBDatabase components.

Hi,

can you set breakpoint in TDAEElevateDBConnection.DoApplyConnectionString (uDAElevateDBDriver.pas) and see that properties of TEDBSession/TEDBDatabase wasn’t initialized properly?

you can use simple testcase:

  • create a new project
  • drop DriverManager and ConnectionManager, relink them
  • add uDAElevateDBDriver to uses section
  • create a new connection inside ConnectionManager with your connection string
  • use this code:
var
  a:  IDAConnection;
  str: IROStrings;
begin
  a := DAConnectionManager1.NewConnection(DAConnectionManager1.Connections[0]);
  a.GetTableNames(str);
  showmessage(str.Text);

Hi Evgeny,

The error I am getting is happening in the Schema Modeler tool.

Hi,

try to use my steps.
probably some properties aren’t initialized by driver when it parsed your connection string.

Hi Evgeny,

Where do I use the code you sent?

create a new project, add button and put this code in that handler, like

procedure TForm107.Button1Click(Sender: TObject);
var
  a:  IDAConnection;
  str: IROStrings;
begin
  a := DAConnectionManager1.NewConnection(DAConnectionManager1.Connections[0]);
  a.GetTableNames(str);
  showmessage(str.Text);
end;

Thanks, that’s what I thought.

Hi Evgeny,

Ok, I’m not sure what that was all about, but it is working correctly now.

Unfortunately, now there is a message stating:

ElevateDB Error #1100 A connection to the server at ‘xxxxxx’ cannot be established (‘The stream signature received is invalid’)

Upon further investigation you need to add a RemoteSignature option to specify the remote connection’s signature.

In addition, I notice that there is no way to set the CharacterSet property for the session. That option is also necessary to correctly specify a session.

Hi,

can you test this driver uDAElevateDBDriver.zip (7.3 KB) and give some feedback, pls?

you can specify missing properties via

  • @Session.<Name>=<value>
  • @Engine.<Name>=<value>

Thanks, logged as bugs://84479

bugs://84479 got closed with status fixed.