Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi-BCB/Database/dbExpressCore    [ Add a report in this area ]  
Report #:  105280   Status: Open
GetNextReader does not work
Project:  Delphi Build #:  XE, XE2
Version:    16.4 Submitted By:   Rogerio Potenza
Report Type:  Feature Specification issue Date Reported:  4/30/2012 4:41:19 AM
Severity:    Serious / Highly visible problem Last Updated: 5/16/2012 11:58:17 PM
Platform:    All platforms Internal Tracking #:   28227
Resolution: None (Resolution Comments) Resolved in Build: : None
Duplicate of:  None
Voting and Rating
Overall Rating: No Ratings Yet
0.00 out of 5
Total Votes: None
Description
The function getnextreader dont work, always return nil.

MS SQL Server 2008 R2.
I use only MS SQL Server.

-------------
procedure TForm9.Button1Click(Sender: TObject);
var
    Dbx : TDBXCommand;
    reader,reader2 : TDBXReader;
begin
    Dbx:= SQLConnection1.DBXConnection.CreateCommand;
    Dbx.CommandType:= TDBXCommandTypes.DbxSql;
    Dbx.Text:= 'select suser_name() as opee; select getdate() as data;';
    reader:= Dbx.ExecuteQuery;
    reader2:= Dbx.GetNextReader;
end;
-------------
Steps to Reproduce:
Components : TDBXCommand and TSQLConnection
Execute two or more select in TDBXCommand and the return of TDBXCommand.GetNextReader won't work.
The return is always nil.
I think that i'm doing something wrong on my code.
I attached my test project.
Thanks.
Workarounds
None
Attachment
GetNextReader.zip
Comments

Tomohiro Takahashi at 4/30/2012 5:09:21 AM -
What version of MS SQL Server do you use?

Does your issue occur only with MS SQL Server?
what about other RDBMS?

>    Dbx.CommandType:= TDBXCommandTypes.DbxStoredProcedure;
>    Dbx.Text:= 'select suser_name() as opee; select getdate() as data;';
First of all, why do you set DbxStoredProcedure for select statement?
TDBXCommandTypes class is defined as below?
-------------
  ///<summary>The type of command to be executed by a command</summary>
  TDBXCommandTypes = class
    const
      ///<summary>Used for any SQL statement including selects, inserts, updates, deletes, etc</summary>
      DbxSQL                 = 'Dbx.SQL';
      ///<summary>Used for any stored procedure</summary>
      DbxStoredProcedure     = 'Dbx.StoredProcedure';
      ///<summary>Used to retrieve all rows an columns of a table</summary>
      DbxTable              = 'Dbx.Table';
...
...
-------------

Rogerio Potenza at 4/30/2012 12:41:42 PM -
Sql Server 2008 R2
I use only MS Sql Server.
I changed the DbxStoredProcedure by DbxSql and it keep the same. Please compile the attached project and verify that the function getnextreader return always nil.

Tomohiro Takahashi at 4/30/2012 9:03:36 PM -
AFAIK, there is a way to get multiple resultsets via dbExpress/dbGo(ADO) and its TSQLStoredProc/TADOStoredProc.
Please see this documentation.
[Fetching Multiple Result Sets]
http://docwiki.embarcadero.com/RADStudio/en/Fetching_Multiple_Result_Sets

and, if you need more intensive support and official reply from Embarcadero, please contact technical support service. Sorry for the inconvenience.
http://support.embarcadero.com/

Rogerio Potenza at 5/1/2012 4:04:27 PM -
Ok. Are you saying that it is not possible to implementing getnextreader with Tdbxcommand? You have to put a note in the next help update to avoid people using this function..
and I dont need intensive support... I'm just showing a function that it is not working and you have to review, because i always upgrade embarcadero products and i always hope products and the help products with high level of quality.

Tomohiro Takahashi at 5/17/2012 7:28:42 PM -
This report was opened with valid Internal Tracking Number.
Thanks.

Server Response from: ETNACODE01