Unable to cast object of type 'CoreLab.Oracle.a6' to type 'CoreLab.Oracle.OracleCursor'.
Posted: Tue 22 Jan 2008 20:37
When trying to execute the following code I got this exception:
Unable to cast object of type 'CoreLab.Oracle.a6' to type 'CoreLab.Oracle.OracleCursor'.
Why?
Here's my code:
The 'sessao' objects is the handler of my OracleConnection and OracleTransaction...
Why can't I cast my reader's column to OracleCursor, since it IS a cursor?!
Thanks in advance![/b]
Unable to cast object of type 'CoreLab.Oracle.a6' to type 'CoreLab.Oracle.OracleCursor'.
Why?
Here's my code:
Code: Select all
StringBuilder sql = new StringBuilder();
sql.AppendLine("SELECT CLG.CLG_ID");
sql.AppendLine(" , JRD.JRD_ID");
sql.AppendLine(" , JRD.JRD_CNPJ");
sql.AppendLine(" , JRD.JRD_FRN");
sql.AppendLine(" , JRD.JRD_CLN");
sql.AppendLine(" , JRD.JRD_AGT");
sql.AppendLine(" , JRD.JRD_PRS");
sql.AppendLine(" , JRD.JRD_TPT");
sql.AppendLine(" , OBSJRD.JRDOBS_OBS");
sql.AppendLine(" , LOGO.LG_PATH");
sql.AppendLine(" , PSS.PSS_ID");
sql.AppendLine(" , PSS.PSS_CODSISCOMEX");
sql.AppendLine(" , PSS.PSS_DESCPAIS");
sql.AppendLine(" , CURSOR( SELECT *");
sql.AppendLine(" FROM TB_JRD_FN_FX FNFX");
sql.AppendLine(" WHERE FNFX.CLG_ID = :IDCLG");
sql.AppendLine(" AND FNFX.JRD_ID = :IDJRD");
sql.AppendLine(" AND FNFX.JRD_CNPJ = :JRDCNPJ ) AS FONESFAX");
sql.AppendLine(" , CURSOR( SELECT *");
sql.AppendLine(" FROM TB_JRD_INS_EST EST");
sql.AppendLine(" WHERE EST.CLG_ID = :IDCLG");
sql.AppendLine(" AND EST.JRD_ID = :IDJRD ) AS INSCEST");
sql.AppendLine(" , CURSOR( SELECT *");
sql.AppendLine(" FROM TB_JRD_INS_SFR SFR");
sql.AppendLine(" WHERE SFR.CLG_ID = :IDCLG");
sql.AppendLine(" AND SFR.JRD_ID = :IDJRD");
sql.AppendLine(" AND SFR.JRD_CNPJ = :JRDCNPJ ) AS INSCSFR");
sql.AppendLine(" , CURSOR( SELECT *");
sql.AppendLine(" FROM TB_JRD_END ENDE");
sql.AppendLine(" WHERE ENDE.CLG_ID = :IDCLG");
sql.AppendLine(" AND ENDE.JRD_ID = :IDJRD");
sql.AppendLine(" AND ENDE.JRD_CNPJ = :JRDCNPJ ) AS ENDERECOS");
sql.AppendLine(" , CURSOR( SELECT *");
sql.AppendLine(" FROM TB_JRD_CTT CTT");
sql.AppendLine(" WHERE CTT.CLG_ID = :IDCLG");
sql.AppendLine(" AND CTT.JRD_ID = :IDJRD");
sql.AppendLine(" AND CTT.JRD_CNPJ = :JRDCNPJ ) AS CTTS");
sql.AppendLine(" , CURSOR( SELECT *");
sql.AppendLine(" FROM TB_JRD_CTT_FN_FX CTTFNFX");
sql.AppendLine(" WHERE CTTFNFX.CLG_ID = :IDCLG");
sql.AppendLine(" AND CTTFNFX.JRD_ID = :IDJRD");
sql.AppendLine(" AND CTTFNFX.JRD_CNPJ = :JRDCNPJ ) AS CTTFNFX");
sql.AppendLine(" , CURSOR( SELECT CTTEND.*");
sql.AppendLine(" , EST.EST_ID");
sql.AppendLine(" , EST.EST_NOMELOCAL");
sql.AppendLine(" FROM TB_JRD_CTT_END CTTEND");
sql.AppendLine(" , TB_EST EST");
sql.AppendLine(" WHERE CTTEND.CLG_ID = :IDCLG");
sql.AppendLine(" AND CTTEND.JRD_ID = :IDJRD");
sql.AppendLine(" AND CTTEND.JRD_CNPJ = :JRDCNPJ ) AS CTTENDS");
sql.AppendLine(" , CURSOR( SELECT *");
sql.AppendLine(" FROM TB_JRD_CTT_ENV_EML CTTEML");
sql.AppendLine(" WHERE CTTEML.CLG_ID = :IDCLG");
sql.AppendLine(" AND CTTEML.JRD_ID = :IDJRD");
sql.AppendLine(" AND CTTEML.JRD_CNPJ = :JRDCNPJ ) AS CTTEML");
sql.AppendLine(" FROM TB_CLG CLG");
sql.AppendLine(" , TB_CLG_JRD JRD");
sql.AppendLine(" , TB_PSS PSS");
sql.AppendLine(" , TB_JRD_OBS OBSJRD");
sql.AppendLine(" , TB_LOGO LOGO");
sql.AppendLine(" , TB_JRD_CTT_OBS OBSCTT");
sql.AppendLine(" WHERE CLG.CLG_ID = :IDCLG");
sql.AppendLine(" AND JRD.CLG_ID = CLG.CLG_ID");
sql.AppendLine(" AND JRD.JRD_ID = :IDJRD");
sql.AppendLine(" AND JRD.JRD_CNPJ = :JRDCNPJ");
sql.AppendLine(" AND JRD.CLG_ID = CLG.CLG_ID");
sql.AppendLine(" AND PSS.PSS_ID = CLG.PSS_ID");
sql.AppendLine(" AND OBSJRD.JRD_ID(+) = JRD.JRD_ID");
sql.AppendLine(" AND OBSJRD.CLG_ID(+) = JRD.CLG_ID");
sql.AppendLine(" AND OBSJRD.JRD_CNPJ(+) = JRD.JRD_CNPJ");
sql.AppendLine(" AND LOGO.JRD_ID(+) = JRD.JRD_ID");
sql.AppendLine(" AND LOGO.CLG_ID(+) = JRD.CLG_ID");
sql.AppendLine(" AND LOGO.JRD_CNPJ(+) = JRD.JRD_CNPJ");
sql.AppendLine(" AND OBSCTT.JRD_ID(+) = JRD.JRD_ID");
sql.AppendLine(" AND OBSCTT.CLG_ID(+) = JRD.CLG_ID");
sql.AppendLine(" AND OBSCTT.JRD_CNPJ(+) = JRD.JRD_CNPJ");
OracleCommand cmd = new OracleCommand();
sessao = new Sessao(true);
cmd.CommandText = sql.ToString();
cmd.Connection = sessao.Conexao;
cmd.Parameters.Add(new OracleParameter("IDCLG", OracleDbType.Number));
cmd.Parameters.Add(new OracleParameter("IDJRD", OracleDbType.Number));
cmd.Parameters.Add(new OracleParameter("JRDCNPJ", OracleDbType.VarChar));
cmd.Parameters["IDCLG"].Value = 347;
cmd.Parameters["IDJRD"].Value = 223;
cmd.Parameters["JRDCNPJ"].Value = "12312312312311";
OracleDataReader reader = cmd.ExecuteReader();
OracleCursor curs;
reader.Read();
// curs = reader[13] as OracleCursor;
curs = (OracleCursor)reader[13];
sessao.FecharConexao();
Why can't I cast my reader's column to OracleCursor, since it IS a cursor?!
Thanks in advance![/b]