Beispiel #1
0
STDMETHODIMP CBRecordset::AddNew(void)
{
	CBLock l(&m_cs);

	if(m_pFields == NULL || m_pDatabase == NULL)return E_NOTIMPL;

	if(m_arrayVariant.IsEmpty())
	{
		m_arrayVariant.SetCount(GetFieldCount());
		ZeroMemory(&m_arrayVariant[0], GetFieldCount() * sizeof(VARIANT));
	}else for(int i = 0; i < GetFieldCount(); i ++)
		VariantClear(&m_arrayVariant[i]);

	return S_OK;
}
Beispiel #2
0
void CompositeCSU::Print(OutStream &out) const
{
  switch (m_kind) {
  case CSU_Class: out << "class "; break;
  case CSU_Struct: out << "struct "; break;
  case CSU_Union: out << "union "; break;
  default: Assert(false);
  }

  out << m_name->Value() << endl;

  if (m_command)
    out << "command: " << m_command->Value() << endl;

  out << "begin_location: " << m_begin_location << endl;
  out << "end_location: " << m_end_location << endl;

  out << "width: " << m_width << endl;

  for (size_t ind = 0; ind < GetFieldCount(); ind++) {
    const DataField &df = GetField(ind);
    out << "field: " << df.offset << " "
        << df.field->GetName()->Value() << " " << df.field->GetType() << endl;
  }

  for (size_t ind = 0; ind < GetFunctionFieldCount(); ind++) {
    const FunctionField &ff = GetFunctionField(ind);
    out << "function: " << ff.field;
    if (ff.base)
      out << " from " << ff.base;
    if (ff.function)
      out << " " << ff.function->GetName();
    out << endl;
  }
}
   bool Create(const TCHAR* file)
   {
      USES_CONVERSION;
      int array_count = GetFieldCount();
      DBaseFieldVector vector;

      vector.resize(array_count);
	  for (int i = 0; i < array_count; i++)
      {
         CDaoFieldInfo info;
         DBF_FIELD_INFO* item = &vector[i];
	  
         GetFieldInfo(i, info);
         strncpy(item->name, T2CA(info.m_strName), _countof(item->name));
         item->name[_countof(item->name) - 1] = 0;
         item->decimals = 0;
         item->length = info.m_lSize;
         item->type = GetFieldType(i, info, &item->length);
      }

      zlib_filefunc_def api;
      fill_fopen_filefunc(&api);
      void* stream = api.zopen_file(api.opaque, T2CA(file), ZLIB_FILEFUNC_MODE_CREATE | ZLIB_FILEFUNC_MODE_WRITE);
      bool ok = (NULL != stream);

      if (ok)
         ok = m_dbf.Create(file, stream, &api, vector);
      return ok;
   }
Beispiel #4
0
// GetFieldCount	- Get number of fields in a string
// Returns		- The number of fields
//			  Is always greater than zero
// delim		- The delimiter character
int CStringEx::GetFieldCount( TCHAR delim )
{
	TCHAR a[2];
	a[0] = delim;
	a[1] = 0;
	return GetFieldCount( a );
}
Beispiel #5
0
int OGRFeatureDefn::IsSame( OGRFeatureDefn * poOtherFeatureDefn )
{
    if (strcmp(GetName(), poOtherFeatureDefn->GetName()) == 0 &&
        GetFieldCount() == poOtherFeatureDefn->GetFieldCount() &&
        GetGeomFieldCount() == poOtherFeatureDefn->GetGeomFieldCount())
    {
        int i;
        for(i=0;i<nFieldCount;i++)
        {
            const OGRFieldDefn* poFldDefn = GetFieldDefn(i);
            const OGRFieldDefn* poOtherFldDefn = poOtherFeatureDefn->GetFieldDefn(i);
            if (!poFldDefn->IsSame(poOtherFldDefn))
            {
                return FALSE;
            }
        }
        for(i=0;i<nGeomFieldCount;i++)
        {
            OGRGeomFieldDefn* poGFldDefn = GetGeomFieldDefn(i);
            OGRGeomFieldDefn* poOtherGFldDefn =
                poOtherFeatureDefn->GetGeomFieldDefn(i);
            if (!poGFldDefn->IsSame(poOtherGFldDefn))
            {
                return FALSE;
            }
        }
        return TRUE;
    }
    return FALSE;
}
Beispiel #6
0
CSourceODBC::DataBaseDescript::~DataBaseDescript()
{
    for ( int i = 0; i < GetFieldCount(); i++ )
    {
        delete m_fields.GetAt(i);
    }
}
Beispiel #7
0
STDMETHODIMP CBRecordset::Move(long pos)
{
	CBLock l(&m_cs);

	if(m_pFields == NULL || m_pDatabase != NULL)return E_NOTIMPL;

	pos = (pos - m_nFirstPosition) * GetFieldCount();

	if(pos < -GetFieldCount())pos = -GetFieldCount();
	else if(pos > (int)m_arrayVariant.GetCount())
		pos = (int)m_arrayVariant.GetCount();

	m_nPos = pos;

	return S_OK;
}
Beispiel #8
0
STDMETHODIMP CBRecordset::put_Value(VARIANT VarKey, VARIANT pvar)
{
	if(VarKey.vt & VT_ARRAY)
		return E_INVALIDARG;

	if(VarKey.vt == VT_UNKNOWN || VarKey.vt == VT_DISPATCH)
		return DISP_E_BADVARTYPE;

	int i;
	HRESULT hr;

	CBLock l(&m_cs);

	if(m_pFields == NULL || m_pDatabase == NULL)return E_NOTIMPL;

	if(m_arrayVariant.IsEmpty())
		AddNew();

	if(VarKey.vt == VT_I4 || VarKey.vt == VT_I2)
	{
		i = varGetNumber(VarKey);
		
		if(i < 0 || i >= GetFieldCount())
			return DISP_E_BADINDEX;
	}else
	{
		CBString strKey;

		hr = varGetString(VarKey, strKey);
		if(FAILED(hr))return hr;

		for(i = 0; i < GetFieldCount() && strKey.CompareNoCase(m_arrayFields[i]); i ++);

		if(i == GetFieldCount())return E_INVALIDARG;
	}

	i += m_nPos;

	if(i >=0 && i < (int)m_arrayVariant.GetCount())
	{
		VariantCopy(&m_arrayVariant[i], &pvar);
		return S_OK;
	}else return DISP_E_BADINDEX;

	return S_OK;
}
Beispiel #9
0
void CSourceODBC::DataBaseDescript::FieldExchange(CFieldExchange *pFX)
{
    pFX->SetFieldType(CFieldExchange::outputColumn);
    for ( int i = 0; i < GetFieldCount(); i++ )
    {
        m_fields.GetAt(i)->FieldExchange(pFX);
    }
}
Beispiel #10
0
void wxMySQLRecordset::SetFieldBuffer(unsigned int index, void * buffer)
{
	if(index >= GetFieldCount())
	{
		printf("SetFieldBuffer error in index\r\n");
		return;
	}
	m_ColDefs[index].buffer = buffer;	
}
Beispiel #11
0
void wxMySQLRecordset::SetFieldType(unsigned int index, wxMySQLFieldType type)
{
	if(index >= GetFieldCount())
	{
		printf("SetFieldType error in index\r\n");
		return;	
	}
	m_ColDefs[index].buffer_type = (enum_field_types)type;	
}
Beispiel #12
0
Field& EdiDocument::GetFieldByName(const wxString& name) {
    for( size_t i=0; i < GetFieldCount(); i++ ) {
        Field& f = GetField(i);
        if ( 0 == name.CmpNoCase(f.GetDescriptor().GetName()) ) {
            return f;
        }
    }
    THROW_COMPOSER_EXCEPTION(wxString::Format(ADVPCS_UNKNOWN_FIELD_ERR_MSG, name));
};
Beispiel #13
0
void wxMySQLRecordset::SetFieldBufferLength(unsigned int index, unsigned long * length)
{
	if(index >= GetFieldCount())
	{
		printf("SetFieldBufferLength error in index\r\n");
		return;
	}
	m_ColDefs[index].length = length;	
}
Beispiel #14
0
bool wxMySQLResult::GetFieldsInfo(wxMySQLFieldArray & array)
{
	wxMySQLField field;
	for(unsigned int i = 0; i < GetFieldCount(); i++)
	{
		if(!GetFieldInfo(&field, i)) return false;
		array.Add(field);
	}
	return true;
}
Beispiel #15
0
	const char *MyBasicResults::FieldNumToName(unsigned int colId)
	{
		if (colId >= GetFieldCount())
		{
			return NULL;
		}

		MYSQL_FIELD *field = mysql_fetch_field_direct(m_pRes, colId);
		return field ? (field->name ? field->name : "") : "";
	}
Beispiel #16
0
STDMETHODIMP CBRecordset::get_Value(VARIANT VarKey, VARIANT *pvar)
{
	if(VarKey.vt & VT_ARRAY)
		return E_INVALIDARG;

	if(VarKey.vt == VT_ERROR)
		return WriteObjectToVariant((IRecordset*)this, pvar);

	int i;

	CBLock l(&m_cs);

	if(m_pFields == NULL)return E_NOTIMPL;

	if(VarKey.vt == VT_I4 || VarKey.vt == VT_I2)
	{
		i = varGetNumber(VarKey);
		
		if(i < 0 || i >= GetFieldCount())
			return DISP_E_BADINDEX;
	}else
	{
		CBString strKey;
		HRESULT hr;

		hr = varGetString(VarKey, strKey);
		if(FAILED(hr))return hr;

		for(i = 0; i < GetFieldCount() && strKey.CompareNoCase(m_arrayFields[i]); i ++);

		if(i == GetFieldCount())return E_INVALIDARG;
	}

	i += m_nPos;

	if(i >=0 && i < (int)m_arrayVariant.GetCount())
	{
		VariantCopy(pvar, &m_arrayVariant[i]);
		return S_OK;
	}else return DISP_E_BADINDEX;

	return S_OK;
}
Beispiel #17
0
void OGRFeatureDefn::AddFieldDefn( OGRFieldDefn * poNewDefn )

{
    GetFieldCount();
    papoFieldDefn = (OGRFieldDefn **)
        CPLRealloc( papoFieldDefn, sizeof(void*)*(nFieldCount+1) );

    papoFieldDefn[nFieldCount] = new OGRFieldDefn( poNewDefn );
    nFieldCount++;
}
Beispiel #18
0
bool wxMySQLRecordset::BindFields()
{	
	if(!GetFieldCount())
	{
		printf("Error binding fields !!!\r\n");
		return false;	
	}
	printf("MYSQL_STMT_BIND_PARAM\r\n");
	return !mysql_stmt_bind_param(m_Stmt, m_ColDefs);		
}
Beispiel #19
0
OGRFieldDefn *OGRFeatureDefn::GetFieldDefn( int iField )

{
    if( iField < 0 || iField >= GetFieldCount() )
    {
        CPLError(CE_Failure, CPLE_AppDefined, "Invalid index : %d", iField);
        return NULL;
    }

    return papoFieldDefn[iField];
}
Beispiel #20
0
STDMETHODIMP CBRecordset::MoveNext(void)
{
	CBLock l(&m_cs);

	if(m_pFields == NULL || m_pDatabase != NULL)return E_NOTIMPL;

	if(m_nPos < (int)m_arrayVariant.GetCount())
		m_nPos += GetFieldCount();

	return S_OK;
}
Beispiel #21
0
STDMETHODIMP CBRecordset::MovePrevious(void)
{
	CBLock l(&m_cs);

	if(m_pFields == NULL || m_pDatabase != NULL)return E_NOTIMPL;

	if(m_nPos >= 0)
		m_nPos -= GetFieldCount();

	return S_OK;
}
Beispiel #22
0
STDMETHODIMP CBRecordset::MoveLast(void)
{
	CBLock l(&m_cs);

	if(m_pFields == NULL || m_pDatabase != NULL)return E_NOTIMPL;

	m_nPos = m_arrayVariant.GetCount();
	if(m_nPos > 0)
		m_nPos -= GetFieldCount();

	return S_OK;
}
Beispiel #23
0
int OGRFeatureDefn::GetFieldIndex( const char * pszFieldName )

{
    GetFieldCount();
    for( int i = 0; i < nFieldCount; i++ )
    {
        if( EQUAL(pszFieldName, GetFieldDefn(i)->GetNameRef() ) )
            return i;
    }

    return -1;
}
Beispiel #24
0
CSourceODBC::SDBField* CSourceODBC::DataBaseDescript::GetColomn( CString name )
{
    if ( name.IsEmpty() ) return NULL;
    if ( name.GetBuffer(0)[0] != '[' ) name = _T("[") + name + _T("]");

    for ( int i = 0; i < GetFieldCount(); i++ )
        if ( m_fields.GetAt(i)->FieldName == name )
            return m_fields.GetAt(i);

    //AfxMessageBox( _T("Неверное имя поля."));
    return NULL;
}
Beispiel #25
0
bool EdiDocument::IsHeaderValid(bool doLog) const {
    bool result = true;
    for ( size_t index = 0; index < GetFieldCount(); index++ ) {
        if ( !IsFieldValid(index, doLog) ) {
            if ( !doLog ) {
                return false;
            } else {
                result = false;
            }
        }
    }
    return result;
};
Beispiel #26
0
OGRFeatureDefn *OGRFeatureDefn::Clone()

{
    OGRFeatureDefn *poCopy;

    poCopy = new OGRFeatureDefn( GetName() );

    poCopy->SetGeomType( GetGeomType() );

    for( int i = 0; i < GetFieldCount(); i++ )
        poCopy->AddFieldDefn( GetFieldDefn( i ) );

    return poCopy;
}
Beispiel #27
0
	bool MyBasicResults::FieldNameToNum(const char *name, unsigned int *columnId)
	{
		unsigned int total = GetFieldCount();

		for (unsigned int i = 0; i < total; i++)
		{
			if (strcmp(FieldNumToName(i), name) == 0)
			{
				*columnId = i;
				return true;
			}
		}

		return false;
	}
Beispiel #28
0
bool wxMySQLResult::Fetch(wxArrayString & array)
{
	array.Clear();
	if(!m_Res) return false;
	MYSQL_ROW row;
	unsigned int i;
	if(row = mysql_fetch_row(m_Res)) 
	{
		for(i = 0; i < GetFieldCount(); i++)
		{			
			array.Add(row[i]);
		}
	}	
	return (row != NULL);
}
 bool Loop()
 {
    size_t row = 0;
    if (!(IsBOF() && IsEOF())) for (MoveFirst(); !IsEOF(); MoveNext(), row++)
    {
       //TRACE(_T("row %3d\n"), row);
       NewRecord();
       for (int i = 0; i < GetFieldCount(); i++)
       {
          COleVariant var;
    	   GetFieldValue(i, var);
          SaveField(i, var);
       }
       SaveRecord();
    }
    return true;
 }
Beispiel #30
0
bool wxMySQLResult::GetFieldInfo(wxMySQLField * field, unsigned int fieldnum)
{
	if(GetFieldCount() <= fieldnum) return false;
	MYSQL_FIELD * fld = mysql_fetch_field_direct(m_Res, fieldnum);
	if(!fld || !field) return false;
	field->m_Name = fld->name;
	field->m_NameOrg = fld->org_name;
	field->m_TableName = fld->table;
	field->m_TableNameOrg = fld->org_table;
	field->m_DBName = fld->db;
	field->m_DBCatalog = fld->catalog;
	field->m_DefaultValue = fld->def;
	field->m_Length = fld->length;
	field->m_MaxLength = fld->max_length;
	field->m_Decimals = fld->decimals;
	field->m_FieldType = (wxMySQLFieldType)fld->type;
	field->m_Flags = fld->flags;
	return true;
}