Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

System.IndexOutOfRangeException thrown when executing sql [DNET361] #366

Closed
firebird-automations opened this issue Dec 29, 2010 · 5 comments

Comments

@firebird-automations
Copy link

Submitted by: Tomasz Chudobiecki (tomekc)

When trying to execute sql which selects 122 fields we get System.IndexOutOfRangeException

w FirebirdSql.Data.Common.IscHelper.VaxInteger(Byte[] buffer, Int32 index, Int32 length)
w FirebirdSql.Data.Client.Managed.Version10.GdsStatement.ParseTruncSqlInfo(Byte[] info, Byte[] items, Descriptor[]& rowDescs)
w FirebirdSql.Data.Client.Managed.Version10.GdsStatement.ProcessPrepareResponse(GenericResponse response)
w FirebirdSql.Data.Client.Managed.Version11.GdsStatement.Prepare(String commandText)
w FirebirdSql.Data.FirebirdClient.FbCommand.Prepare(Boolean returnsSet)
w FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteCommand(CommandBehavior behavior, Boolean returnsSet)
w FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteReader(CommandBehavior behavior)
w FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteDbDataReader(CommandBehavior behavior)
w System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
w DevExpress.Xpo.DB.ConnectionProviderSql.InternalGetData(IDbCommand command, CriteriaOperatorCollection targets, Int32 skipClause, Int32 topClause)
w DevExpress.Xpo.DB.ConnectionProviderSql.SelectDataSimple(Query query, CriteriaOperatorCollection targets)'
w DevExpress.Xpo.DB.ConnectionProviderSql.SelectDataSimple(Query query, CriteriaOperatorCollection targets)
w DevExpress.Xpo.DB.ConnectionProviderSql.SelectData(Query query, CriteriaOperatorCollection targets)

Commits: ac473d3

@firebird-automations
Copy link
Author

Commented by: Pham Huu Le Quoc Phuc (phucphlq)

See DNET260

@firebird-automations
Copy link
Author

Commented by: Tomasz Chudobiecki (tomekc)

Yes I am aware of that issue but I am using FirebridClient 2.6.0.0 version and I still get System.IndexOutOfRangeException when trying to execute select with 122 fields

@firebird-automations
Copy link
Author

Commented by: @cincuranet

Provide a test case.

@firebird-automations
Copy link
Author

Commented by: Tomasz Chudobiecki (tomekc)

CREATE TABLE PROW (
PROW_ID INTEGER NOT NULL,
SNAUK_ID INTEGER,
KATEDRA_ID INTEGER,
PROWFUNKCJA_ID INTEGER,
STANOWISKO_ID INTEGER,
OSOBA_ID INTEGER,
PROW_SKROT VARCHAR(15) COLLATE UNICODE_CI,
PROW_TELUCZ VARCHAR(30) COLLATE UNICODE_CI,
PROW_ETAT CHAR(1) COLLATE UNICODE_CI,
PROW_PENSUM INTEGER,
PROW_POKOJ VARCHAR(100) COLLATE UNICODE_CI,
PROW_KONSULT VARCHAR(200) COLLATE UNICODE_CI,
PROW_OCENYPRZEZINT CHAR(1) COLLATE UNICODE_CI,
PROW_UWAGI BLOB SUB_TYPE 1 SEGMENT SIZE 80,
KMOD VARCHAR(20) COLLATE UNICODE_CI,
DMOD TIMESTAMP,
KMODINS VARCHAR(20) COLLATE UNICODE_CI,
DMODINS TIMESTAMP,
PROW_AKTYWNY CHAR(1) COLLATE UNICODE_CI,
ZASOB_ID INTEGER,
PROW_IMIEOJCA VARCHAR(30) COLLATE UNICODE_CI,
PROW_IMIEMATKI VARCHAR(30) COLLATE UNICODE_CI,
PROW_KONTOBANK VARCHAR(50) COLLATE UNICODE_CI,
"OptimisticLockField" INTEGER
);
COMMIT;
CREATE TABLE SNAUK (
SNAUK_ID INTEGER NOT NULL,
SNAUK_SKROT VARCHAR(5) COLLATE UNICODE_CI,
SNAUK_NAZWA VARCHAR(50) COLLATE UNICODE_CI,
SNAUK_RODZ VARCHAR(3) COLLATE UNICODE_CI,
KMOD VARCHAR(20) COLLATE UNICODE_CI,
DMOD TIMESTAMP,
"OptimisticLockField" INTEGER
);
COMMIT;
CREATE TABLE KATEDRA (
KATEDRA_ID INTEGER NOT NULL,
KATEDRA_NAZWA VARCHAR(120) NOT NULL COLLATE UNICODE_CI,
KATEDRA_BLOKUJOCENY DATE,
DMOD DATE,
KMOD VARCHAR(20) COLLATE UNICODE_CI,
"OptimisticLockField" INTEGER,
PROW_ID INTEGER,
ZASOB_ID INTEGER
);
COMMIT;
CREATE TABLE PROWFUNKCJA (
PROWFUNKCJA_ID INTEGER NOT NULL,
PROWFUNKCJA_NAZWA VARCHAR(50) NOT NULL COLLATE UNICODE_CI,
KMOD VARCHAR(20) COLLATE UNICODE_CI,
DMOD TIMESTAMP,
"OptimisticLockField" INTEGER
);
COMMIT;
CREATE TABLE STANOWISKO (
STANOWISKO_ID INTEGER NOT NULL,
STANOWISKO_NAZWA VARCHAR(50) NOT NULL COLLATE UNICODE_CI,
KMOD VARCHAR(20) COLLATE UNICODE_CI,
DMOD TIMESTAMP,
"OptimisticLockField" INTEGER
);
COMMIT;
CREATE TABLE OSOBA (
OSOBA_ID INTEGER NOT NULL,
MIASTO_ID INTEGER,
OBYWATELSTWO_ID INTEGER,
NAROD_ID INTEGER,
KRAJPOCH_ID INTEGER,
OSOBA_TYP CHAR(1) COLLATE UNICODE_CI,
OSOBA_NAZWISKO VARCHAR(50) COLLATE UNICODE_CI,
OSOBA_IMIE VARCHAR(30) COLLATE UNICODE_CI,
OSOBA_IMIE2 VARCHAR(24) COLLATE UNICODE_CI,
OSOBA_PLEC CHAR(1) COLLATE UNICODE_CI,
OSOBA_DATAUR DATE,
OSOBA_MIEJSCEUR VARCHAR(50) COLLATE UNICODE_CI,
OSOBA_ADRULICA VARCHAR(40) COLLATE UNICODE_CI,
OSOBA_ADRKODP VARCHAR(7) COLLATE UNICODE_CI,
OSOBA_GMINA VARCHAR(30) COLLATE UNICODE_CI,
OSOBA_NRALBP VARCHAR(10) COLLATE UNICODE_CI,
OSOBA_NRALB INTEGER,
OSOBA_NRALBS VARCHAR(15) COLLATE UNICODE_CI,
OSOBA_KORULICA VARCHAR(40) COLLATE UNICODE_CI,
OSOBA_KORKODP VARCHAR(7) COLLATE UNICODE_CI,
OSOBA_KORGMINA VARCHAR(30) COLLATE UNICODE_CI,
OSOBA_TELKOM VARCHAR(50) COLLATE UNICODE_CI,
OSOBA_TELEFON1 VARCHAR(20) COLLATE UNICODE_CI,
OSOBA_TELEFON2 VARCHAR(20) COLLATE UNICODE_CI,
OSOBA_ZDJECIE BLOB SUB_TYPE 0 SEGMENT SIZE 80,
OSOBA_LOGIN VARCHAR(20) COLLATE UNICODE_CI,
OSOBA_HASLO VARCHAR(40) COLLATE UNICODE_CI,
OSOBA_HASLON VARCHAR(40) COLLATE UNICODE_CI,
OSOBA_INT CHAR(1) COLLATE UNICODE_CI,
OSOBA_POWIAD INTEGER,
OSOBA_QUOTA INTEGER,
OSOBA_HOMEPATH VARCHAR(30) COLLATE UNICODE_CI,
OSOBA_VP CHAR(1) COLLATE UNICODE_CI,
OSOBA_LOGINVP VARCHAR(20) COLLATE UNICODE_CI,
OSOBA_HASLOVP VARCHAR(20) COLLATE UNICODE_CI,
OSOBA_ZRODLODANYCH VARCHAR(100) COLLATE UNICODE_CI,
OSOBA_SPRZECIWUDDO CHAR(1) COLLATE UNICODE_CI,
OSOBA_KODKRESK VARCHAR(150) COLLATE UNICODE_CI,
OSOBA_PESEL VARCHAR(15) COLLATE UNICODE_CI,
OSOBA_NIP VARCHAR(20) COLLATE UNICODE_CI,
OSOBA_SERIADOW VARCHAR(5) COLLATE UNICODE_CI,
OSOBA_NRDOW VARCHAR(20) COLLATE UNICODE_CI,
OSOBA_NRDOWWYDANY VARCHAR(100) COLLATE UNICODE_CI,
OSOBA_PASZPORT VARCHAR(30) COLLATE UNICODE_CI,
OSOBA_EMAILPRYW VARCHAR(50) COLLATE UNICODE_CI,
OSOBA_EMAILUCZ VARCHAR(250) COLLATE UNICODE_CI,
OSOBA_WWW VARCHAR(100) COLLATE UNICODE_CI,
OSOBA_DANE1 VARCHAR(100) COLLATE UNICODE_CI,
OSOBA_DANE2 VARCHAR(100) COLLATE UNICODE_CI,
OSOBA_DANE3 VARCHAR(100) COLLATE UNICODE_CI,
OSOBA_DANE4 VARCHAR(100) COLLATE UNICODE_CI,
OSOBA_POPRDANEOS CHAR(1) COLLATE UNICODE_CI,
OSOBA_POPRZDJECIE CHAR(1) COLLATE UNICODE_CI,
OSOBA_POPRKONTO CHAR(1) COLLATE UNICODE_CI,
OSOBA_DATAWAZN DATE,
KMODINS VARCHAR(20) COLLATE UNICODE_CI,
DMODINS DATE,
KMOD VARCHAR(20) COLLATE UNICODE_CI,
DMOD TIMESTAMP,
OSOBA_ZMIANAHASLA CHAR(1) COLLATE UNICODE_CI,
OSOBA_WDLICZBALOGOWAN INTEGER,
MIASTO_IDKOR INTEGER,
OSOBA_ANKIETER CHAR(1) COLLATE UNICODE_CI,
OSOBA_DODANAPRZEZBK CHAR(1) COLLATE UNICODE_CI,
OSOBA_POTW INTEGER,
"OptimisticLockField" INTEGER,
OSOBA_POPRDANEREK CHAR(1) COLLATE UNICODE_CI
);
COMMIT;

        connection\.Open\(\);
        FbCommand command;
        FbDataReader reader;
        string select = "select N0\.\\"PROW\_ID\\", N0\.\\"SNAUK\_ID\\", N1\.\\"SNAUK\_SKROT\\",N1\.\\"SNAUK\_NAZWA\\",N1\.\\"SNAUK\_RODZ\\",N1\.\\"KMOD\\",N1\.\\"DMOD\\",N1\.\\"OptimisticLockField\\",N0\.\\"KATEDRA\_ID\\", " \+

"N2.\"PROW_ID\",N2.\"ZASOB_ID\",N2.\"KATEDRA_NAZWA\",N2.\"KATEDRA_BLOKUJOCENY\",N2.\"DMOD\",N2.\"KMOD\",N2.\"OptimisticLockField\",N0.\"PROWFUNKCJA_ID\",N3.\"PROWFUNKCJA_NAZWA\", " +
"N3.\"KMOD\", N3.\"DMOD\",N3.\"OptimisticLockField\",N0.\"STANOWISKO_ID\",N4.\"STANOWISKO_NAZWA\",N4.\"KMOD\",N4.\"DMOD\",N4.\"OptimisticLockField\",N0.\"OSOBA_ID\",N5.\"MIASTO_ID\", " +
"N5.\"OBYWATELSTWO_ID\", N5.\"NAROD_ID\",N5.\"KRAJPOCH_ID\",N5.\"MIASTO_IDKOR\",N5.\"OSOBA_ANKIETER\",N5.\"OSOBA_DODANAPRZEZBK\",N5.\"OSOBA_NAZWISKO\",N5.\"OSOBA_IMIE\",N5.\"OSOBA_IMIE2\", " +
"N5.\"OSOBA_PLEC\",N5.\"OSOBA_DATAUR\",N5.\"OSOBA_MIEJSCEUR\",N5.\"OSOBA_ADRULICA\",N5.\"OSOBA_ADRKODP\",N5.\"OSOBA_GMINA\",N5.\"OSOBA_NRALBP\",N5.\"OSOBA_NRALB\",N5.\"OSOBA_POTW\", " +
"N5.\"OSOBA_NRALBS\", N5.\"OSOBA_KORULICA\",N5.\"OSOBA_KORKODP\",N5.\"OSOBA_KORGMINA\",N5.\"OSOBA_TELKOM\",N5.\"OSOBA_TYP\",N5.\"OSOBA_TELEFON1\",N5.\"OSOBA_TELEFON2\",N5.\"OSOBA_ZDJECIE\", " +
"N5.\"OSOBA_LOGIN\",N5.\"OSOBA_HASLO\",N5.\"OSOBA_HASLON\",N5.\"OSOBA_INT\",N5.\"OSOBA_POWIAD\",N5.\"OSOBA_QUOTA\",N5.\"OSOBA_HOMEPATH\",N5.\"OSOBA_VP\",N5.\"OSOBA_LOGINVP\", " +
"N5.\"OSOBA_HASLOVP\",N5.\"OSOBA_ZRODLODANYCH\",N5.\"OSOBA_SPRZECIWUDDO\",N5.\"OSOBA_KODKRESK\",N5.\"OSOBA_PESEL\",N5.\"OSOBA_NIP\",N5.\"OSOBA_SERIADOW\",N5.\"OSOBA_NRDOW\", " +
"N5.\"OSOBA_NRDOWWYDANY\",N5.\"OSOBA_PASZPORT\",N5.\"OSOBA_EMAILPRYW\",N5.\"OSOBA_EMAILUCZ\",N5.\"OSOBA_WWW\",N5.\"OSOBA_DANE1\",N5.\"OSOBA_DANE2\",N5.\"OSOBA_DANE3\",N5.\"OSOBA_DANE4\", " +
"N5.\"OSOBA_POPRDANEOS\",N5.\"OSOBA_POPRZDJECIE\",N5.\"OSOBA_POPRKONTO\",N5.\"OSOBA_DATAWAZN\",N5.\"OSOBA_ZMIANAHASLA\",N5.\"OSOBA_WDLICZBALOGOWAN\",N5.\"OSOBA_POPRDANEREK\",N5.\"KMODINS\", " +
"N5.\"DMODINS\",N5.\"KMOD\",N5.\"DMOD\",N5.\"OptimisticLockField\",N0.\"ZASOB_ID\",N0.\"PROW_SKROT\",N0.\"PROW_IMIEOJCA\",N0.\"PROW_IMIEMATKI\",N0.\"PROW_KONTOBANK\",N0.\"PROW_TELUCZ\"," +
"N0.\"PROW_ETAT\",N0.\"PROW_AKTYWNY\",N0.\"PROW_PENSUM\",N0.\"PROW_POKOJ\",N0.\"PROW_KONSULT\",N0.\"PROW_OCENYPRZEZINT\",N0.\"PROW_UWAGI\",N0.\"KMOD\",N0.\"DMOD\",N0.\"KMODINS\", " +
"N0.\"DMODINS\",N0.\"OptimisticLockField\" " +
"from (((((\"PROW\" N0 " +
" left join \"SNAUK\" N1 on (N0.\"SNAUK_ID\" = N1.\"SNAUK_ID\")) " +
"left join \"KATEDRA\" N2 on (N0.\"KATEDRA_ID\" = N2.\"KATEDRA_ID\"))" +
"left join \"PROWFUNKCJA\" N3 on (N0.\"PROWFUNKCJA_ID\" = N3.\"PROWFUNKCJA_ID\")) " +
"left join \"STANOWISKO\" N4 on (N0.\"STANOWISKO_ID\" = N4.\"STANOWISKO_ID\")) " +
"left join \"OSOBA\" N5 on (N0.\"OSOBA_ID\" = N5.\"OSOBA_ID\")) " +
"where (N0.\"PROW_AKTYWNY\" = 'T')";
command = new FbCommand(select, connection);
reader = command.ExecuteReader();
reader.Close();

@firebird-automations
Copy link
Author

Modified by: @cincuranet

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: 2.6.1 [ 10400 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants