Page 1 of 1

Driver can not set up the TDBXCommon.Parameters

Posted: Mon 23 Sep 2019 01:58
by Eden0928
DBXCommon.TDBXCommand.Prepare

Prepare the command for execution

This method prepares the command for execution.

If no parameters have been set up, the driver supports parameter metadata and the dynamic SQL statement contains parameters, Prepare sets up the command's parameters.
My test code:

Code: Select all

procedure TForm2.Button1Click(Sender: TObject);
var
  LCommand: TDBXCommand;
begin
  LCommand := SQLConnection1.DBXConnection.CreateCommand;
  LCommand.Text := 'SELECT * FROM employee WHERE empno = ?';
  LCommand.Prepare;
  Memo1.Lines.Add(IntToStr(LCommand.Parameters.Count));
end;
The result always to get 0.

How to set the sqlcoonection.param what support auto create TDBXCommand.Parameters?

Re: Driver can not set up the TDBXCommon.Parameters

Posted: Wed 25 Sep 2019 14:50
by Stellar
Thank you for providing the information. We've reproduced the issue and started to investigate possible causes of the described behavior. We will let you know the results as soon as we get them.

Re: Driver can not set up the TDBXCommon.Parameters

Posted: Tue 22 Oct 2019 03:37
by Eden0928
Hi
Do we have a date for the fix to be available?
Thanks

Re: Driver can not set up the TDBXCommon.Parameters

Posted: Wed 23 Oct 2019 13:53
by Stellar
We have fixed the issue with auto creation of parameters, and the fix will be included in the next build of dbExpress driver for SQL Server.

Re: Driver can not set up the TDBXCommon.Parameters

Posted: Tue 05 Nov 2019 02:28
by Eden0928
Could you fixed the problem to all dbExpress driver product?

Re: Driver can not set up the TDBXCommon.Parameters

Posted: Fri 08 Nov 2019 13:42
by Stellar
At the moment, we cannot give you an exact date for when the next build of dbExpress driver for SQL Server will be released.
We can provide you with a nightly build of dbExpress driver for SQL Server that includes the fix of the issue with auto creation of parameters.
To get the build, please send us a request via the e-support form. (devart.com the "Support"\"Request Support" menu).

Re: Driver can not set up the TDBXCommon.Parameters

Posted: Mon 17 Feb 2020 07:43
by Eden0928
Hi
I try the 8.1.3 trial.

But TDBXCommand.IsPrepared is always false, and TDBXCommand.Parameters.count is zero.

Could you tell me how to set the connection properties?

Re: Driver can not set up the TDBXCommon.Parameters

Posted: Mon 24 Feb 2020 16:00
by Stellar
Please use the syntax :<name> to place a parameter marker in a SQL statement when using Devart dbExpress driver for SQL Server. For example:

Code: Select all

procedure TForm2.Button1Click(Sender: TObject);
var
  LCommand: TDBXCommand;
begin
  LCommand := SQLConnection1.DBXConnection.CreateCommand;
  LCommand.Text := 'SELECT * FROM employee WHERE empno = :p1';
  LCommand.Prepare;
  Memo1.Lines.Add(IntToStr(LCommand.Parameters.Count));
end;

Re: Driver can not set up the TDBXCommon.Parameters

Posted: Tue 25 Feb 2020 07:05
by Eden0928
Stellar wrote:
Mon 24 Feb 2020 16:00
Please use the syntax :<name> to place a parameter marker in a SQL statement when using Devart dbExpress driver for SQL Server. For example:

Code: Select all

procedure TForm2.Button1Click(Sender: TObject);
var
  LCommand: TDBXCommand;
begin
  LCommand := SQLConnection1.DBXConnection.CreateCommand;
  LCommand.Text := 'SELECT * FROM employee WHERE empno = :p1';
  LCommand.Prepare;
  Memo1.Lines.Add(IntToStr(LCommand.Parameters.Count));
end;
Good!
After use Prepare method, TDBXCommand.Parameters.Count > 0.

However, why TDBXCommand.IsPrepared always is False?

Re: Driver can not set up the TDBXCommon.Parameters

Posted: Tue 25 Feb 2020 07:32
by ramyasri123
Hi
Do we have a date for the fix to be available?
Thanks

Re: Driver can not set up the TDBXCommon.Parameters

Posted: Thu 27 Feb 2020 16:00
by Stellar
The fix was included in the latest version 8.1.3 of dbExpress driver, which is available for download on our website.