Hallo,
Bij het gebruik van parameter query hoef je bij OO4O je parameters niet in de zelfde volgorde te declareren als dat je de placeholders in je query gebruikt. In .NET gebruik ik nu ODP.NET van oracle nu lijkt het alsof je daarbij je parameters wel in de zelfde volgorde moet gebruiken als je placeholders.
Hoe zit het nou.
- Doe ik iets fout
- Klopt het dat je net als bij OleDbClient op volgorde moet declareren (Waarom zou oracle in OO4O dit wel ondersteunen in in ODP.NET niet)
- Waarom houd hij dan wel rekening met de 3e placeholder.
Wanneer ik nu deze query gebruik gaat alles goed
Error: geen error
Wanneer ik nu de ident en de dekking omdraai werk het niet meer.
Error :Database error: ORA-00932: inconsistent datatypes: expected DATE got NUMBER
Wanneer ik nu nogmaals de identnr gebruik, als een 3e placeholder, ookal heb ik maar 2 parameters gedeclareerd.
Error: geen error
Verder heb ik nog andere combinaties geprobeerd. Denk niet dat deze relevant zijn.
Bij het gebruik van parameter query hoef je bij OO4O je parameters niet in de zelfde volgorde te declareren als dat je de placeholders in je query gebruikt. In .NET gebruik ik nu ODP.NET van oracle nu lijkt het alsof je daarbij je parameters wel in de zelfde volgorde moet gebruiken als je placeholders.
Hoe zit het nou.
- Doe ik iets fout
- Klopt het dat je net als bij OleDbClient op volgorde moet declareren (Waarom zou oracle in OO4O dit wel ondersteunen in in ODP.NET niet)
- Waarom houd hij dan wel rekening met de 3e placeholder.
| Dim oParameter As New OracleParameter oParameter = New OracleParameter oParameter.Value = dDatum oParameter.ParameterName = "p_peildatum" oParameter.OracleDbType = OracleDbType.Date oParameter.Direction = ParameterDirection.Input cmd.Parameters.Add(oParameter) oParameter = New OracleParameter oParameter.OracleDbType = OracleDbType.Int64 oParameter.Value = CInt(Criteria.verzekerde.identificatienummer) oParameter.Direction = ParameterDirection.Input oParameter.ParameterName = "p_identnr" cmd.Parameters.Add(oParameter) |
Wanneer ik nu deze query gebruik gaat alles goed
| "SELECT * " + _ "FROM vcov " + _ "WHERE vcov_ident_nr = :p_identnr " + _ "AND vcov_dekking_tm = :p_peildat" |
Error: geen error
Wanneer ik nu de ident en de dekking omdraai werk het niet meer.
| "SELECT * " + _ "FROM vcov " + _ "WHERE vcov_dekking_tm = :p_peildat" + _ "AND vcov_ident_nr = :p_identnr " |
Error :Database error: ORA-00932: inconsistent datatypes: expected DATE got NUMBER
Wanneer ik nu nogmaals de identnr gebruik, als een 3e placeholder, ookal heb ik maar 2 parameters gedeclareerd.
| "SELECT * " + _ "FROM vcov " + _ "WHERE vcov_ident_nr = :p_identnr " + _ "AND vcov_dekking_tm = :p_peildat " + _ "AND vcov_poln = :p_identnr" |
Error: geen error
Verder heb ik nog andere combinaties geprobeerd. Denk niet dat deze relevant zijn.