ocintab.inl

来自「一个通用的oracle OCI开发程序包」· INL 代码 · 共 121 行

INL
121
字号
template<class T>
COCINestedTable<T>::COCINestedTable(const COCISession& Sess, COCIType type)
: COCICollection<T>(Sess, type)
{
}

template<class T>
COCINestedTable<T>::COCINestedTable(const COCISession& Sess, dvoid* instance, COCIType type)
: COCICollection<T>(Sess, instance, type)
{
}

template<class T>
COCINestedTable<T>::COCINestedTable(const COCINestedTable<T>& src)
: COCICollection<T>(src)
{
}

template<class T>
COCINestedTable<T>::~COCINestedTable()
{
}

template<class T>
void COCINestedTable<T>::remove(sb4 index)
{
  
  CHECK(get_session().get_error(),
        OCITableDelete (get_session().get_env(), 
                        get_session().get_error(),
                        index, 
                        (OCITable*)get_obj().get_instance()));
}

template<class T>
bool COCINestedTable<T>::exists(sb4 index)
{
  boolean exists = false;
  CHECK(get_session().get_error(), 
        OCITableExists (get_session().get_env(),
                        get_session().get_error(),
                       (OCITable*)get_obj().get_instance(),
                       index, 
                       &exists));
  return (bool)exists;
}

template<class T>
sb4 COCINestedTable<T>::first()
{
  sb4 index = 0;
  CHECK(get_session().get_error(),
        OCITableFirst (get_session().get_env(),
                       get_session().get_error(),
                       (OCITable*)get_obj().get_instance(),
                       &index));

  return index;
}

template<class T>
sb4 COCINestedTable<T>::last()
{
  sb4 index = 0;
  CHECK(get_session().get_error(),
        OCITableLast (get_session().get_env(),
                      get_session().get_error(),
                      (OCITable*)get_obj().get_instance(),
                      &index));
  return index;
}

template<class T>
bool COCINestedTable<T>::next(sb4& index)
{
  boolean exists = false;
  sb4 next_index = 0;
  CHECK(get_session().get_error(),
        OCITableNext (get_session().get_env(),
                      get_session().get_error(),
                      index, 
                      (OCITable*)get_obj().get_instance(),
                      &next_index,
                      &exists));

  if(next_index != 0)
  {
    index = next_index;
  }
  else
  {
    index = last() + 1;
  }
  return (bool)exists;
}

template<class T>
bool COCINestedTable<T>::prev(sb4& index)
{
  boolean exists = false;
  sb4 prev_index = 0;
  CHECK(get_session().get_error(),
        OCITablePrev (get_session().get_env(),
                      get_session().get_error(),
                      index,
                      (OCITable*)get_obj().get_instance(),
                      &prev_index,
                      &exists ));   

  if(index == first() && prev_index == 0)
  {
    index = first() - 1;
  }
  else
  {
    index = prev_index;
  }

  return (bool)exists;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?