コード例 #1
0
ファイル: excelreader.cpp プロジェクト: zhili/GeCellGenerator
    /**
     * full one row data
     *
     * @param nRow row number, base 1
     * @param nBeg column begin, base 1
     * @prarm data
     */
    void excelreader::SetData(int nRow, int nBeg,
                               const std::list<std::wstring>& data)
    {
        if (data.size() <= 0)
        {
            return;
        }

        int nEnd = nBeg + static_cast<int>(data.size()) - 1;

        // create array
        CComSafeArray<VARIANT> arr(static_cast<ULONG>(0));
        for (std::list<std::wstring>::const_iterator it = data.begin();
             it != data.end(); ++it)
        {
            arr.Add(_variant_t(it->c_str()).Detach(), FALSE);
        }
        VARIANT vArr;
        vArr.vt = VT_ARRAY | VT_VARIANT;
        vArr.parray = (SAFEARRAY*)arr;

        // select range
        WCHAR szTmp[4];
        wsprintfW(szTmp, L"%i", nRow);
        std::wstring sTmp = GetColumnName(nBeg) + szTmp + L":"
            + GetColumnName(nEnd) + szTmp;
        _variant_t parm(sTmp.c_str());
        _variant_t result;
        AutoWrap(DISPATCH_PROPERTYGET, &result, pXlSheet, L"Range",
                 1, (VARIANT)parm);

        //full the range
        AutoWrap(DISPATCH_PROPERTYPUT, NULL, result.pdispVal, L"Value",
                 1, vArr);
    }
コード例 #2
0
ファイル: mythstorage.cpp プロジェクト: garybuhrmaster/mythtv
QString SimpleDBStorage::GetSetClause(MSqlBindings &bindings) const
{
    QString tagname(":SET" + GetColumnName().toUpper());
    QString clause(GetColumnName() + " = " + tagname);

    bindings.insert(tagname, user->GetDBValue());

    return clause;
}
コード例 #3
0
ファイル: mythstorage.cpp プロジェクト: garybuhrmaster/mythtv
QString GenericDBStorage::GetSetClause(MSqlBindings &bindings) const
{
    QString keycolumnTag = ":SETKEY" + keycolumn.toUpper();
    QString columnTag    = ":SETCOL" + GetColumnName().toUpper();

    bindings.insert(keycolumnTag, keyvalue);
    bindings.insert(columnTag,    user->GetDBValue());

    return keycolumn + " = " + keycolumnTag + ", " +
        GetColumnName() + " = " + columnTag;
}
コード例 #4
0
QString ChannelDBStorage::GetSetClause(MSqlBindings &bindings) const
{
    QString fieldTag = (":SET" + id.getField().toUpper());
    QString nameTag = (":SET" + GetColumnName().toUpper());

    QString query(id.getField() + " = " + fieldTag + ", " +
                  GetColumnName() + " = " + nameTag);

    bindings.insert(fieldTag, id.getValue());
    bindings.insert(nameTag, user->GetDBValue());

    return query;
}
コード例 #5
0
ファイル: profilegroup.cpp プロジェクト: DocOnDev/mythtv
QString ProfileGroupStorage::GetSetClause(MSqlBindings &bindings) const
{
    QString idTag(":SETID");
    QString colTag(":SET" + GetColumnName().toUpper());

    QString query("id = " + idTag + ", " +
            GetColumnName() + " = " + colTag);

    bindings.insert(idTag, m_parent.getProfileNum());
    bindings.insert(colTag, user->GetDBValue());

    return query;
}
コード例 #6
0
QString GameDBStorage::GetSetClause(MSqlBindings &bindings) const
{
    QString playerID(":SETPLAYERID");
    QString colTag(":SET" + GetColumnName().toUpper());

    QString query("gameplayerid = " + playerID + ", " +
                  GetColumnName() + " = " + colTag);

    bindings.insert(playerID, parent.getGamePlayerID());
    bindings.insert(colTag, user->GetDBValue());

    return query;
}
コード例 #7
0
ファイル: gamesettings.cpp プロジェクト: tomhughes/mythtv
 QString GetSetClause(MSqlBindings &bindings) const override // SimpleStorage
 {
     bindings.insert(":SETPLAYERID", m_id.Value());
     bindings.insert(":SETCOLUMN",   m_user->GetDBValue());
     return QString("gameplayerid = :SETPLAYERID, "
                    "%2 = :SETCOLUMN").arg(GetColumnName());
 }
コード例 #8
0
ファイル: mythstorage.cpp プロジェクト: garybuhrmaster/mythtv
void SimpleDBStorage::Load(void)
{
    MSqlQuery query(MSqlQuery::InitCon());
    MSqlBindings bindings;
    query.prepare(
        "SELECT CAST(" + GetColumnName() + " AS CHAR)"
        " FROM " + GetTableName() +
        " WHERE " + GetWhereClause(bindings));
    query.bindValues(bindings);

    if (!query.exec() || !query.isActive())
    {
        MythDB::DBError("SimpleDBStorage::Load()", query);
    }
    else if (query.next())
    {
        QString result = query.value(0).toString();
        // a 'NULL' QVariant does not get converted to a 'NULL' QString
        if (!query.value(0).isNull())
        {
            initval = result;
            user->SetDBValue(result);
        }
    }
}
コード例 #9
0
ファイル: excelreader.cpp プロジェクト: zhili/GeCellGenerator
	double excelreader::GetDataAsDouble(int row, int col) {
		if (row < 0 || col < 0)
			throw ExcelException("cell not exit");
		WCHAR szTmp[5];
        wsprintfW(szTmp, L"%i", row);
        std::wstring sTmp = GetColumnName(col) + szTmp + L":"
            + GetColumnName(col) + szTmp;
        _variant_t parm(sTmp.c_str());
        _variant_t result;
		AutoWrap(DISPATCH_PROPERTYGET, &result, pXlSheet, L"Range",
                1, (VARIANT)parm);
        _variant_t data;
        AutoWrap(DISPATCH_PROPERTYGET, &data, result.pdispVal, L"Value", 0);

        return (double)data;
    }
コード例 #10
0
void InputColumnDeriver::Visit(const QueryDerivedScan *op) {
  // QueryDerivedScan should only be a renaming layer
  ExprMap output_cols_map;
  for (auto expr : required_cols_) {
    expression::ExpressionUtil::GetTupleValueExprs(output_cols_map, expr);
  }
  vector<AbstractExpression *> output_cols =
      vector<AbstractExpression *>(output_cols_map.size());
  ExprMap input_cols_map;
  vector<AbstractExpression *> input_cols(output_cols.size(), nullptr);
  for (auto &entry : output_cols_map) {
    auto tv_expr =
        reinterpret_cast<expression::TupleValueExpression *>(entry.first);
    output_cols[entry.second] = tv_expr;
    // Get the actual expression
    auto input_col = const_cast<QueryDerivedScan *>(op)
                         ->alias_to_expr_map[tv_expr->GetColumnName()]
                         .get();
    // QueryDerivedScan only modify the column name to be a tv_expr, does not
    // change the mapping
    input_cols[entry.second] = input_col;
  }
  output_input_cols_ =
      pair<vector<AbstractExpression *>, vector<vector<AbstractExpression *>>>{
          output_cols, {input_cols}};
}
コード例 #11
0
bool Tile::SerializeHeaderTo(SerializeOutput &output) {
  std::size_t start;

  // Use the cache if possible
  if (column_header != NULL) {
    PL_ASSERT(column_header_size != INVALID_OID);
    output.WriteBytes(column_header, column_header_size);
    return true;
  }

  PL_ASSERT(column_header_size == INVALID_OID);

  // Skip header position
  start = output.Position();
  output.WriteInt(-1);

  // Status code
  output.WriteByte(-128);

  // Column counts as a short
  output.WriteShort(static_cast<int16_t>(column_count));

  // Write an array of column types as bytes
  for (oid_t column_itr = 0; column_itr < column_count; ++column_itr) {
    type::Type::TypeId type = schema.GetType(column_itr);
    output.WriteByte(static_cast<int8_t>(type));
  }

  // Write the array of column names as strings
  // NOTE: strings are ASCII only in metadata (UTF-8 in table storage)
  for (oid_t column_itr = 0; column_itr < column_count; ++column_itr) {
    // Column name: Write (offset, length) for column definition, and string to
    // string table
    const std::string &name = GetColumnName(column_itr);

    // Column names can't be null, so length must be >= 0
    int32_t length = static_cast<int32_t>(name.size());
    PL_ASSERT(length >= 0);

    // this is standard string serialization for voltdb
    output.WriteInt(length);
    output.WriteBytes(name.data(), length);
  }

  // Write the header size which is a non-inclusive int
  size_t Position = output.Position();
  column_header_size = static_cast<int32_t>(Position - start);

  int32_t non_inclusive_header_size =
      static_cast<int32_t>(column_header_size - sizeof(int32_t));
  output.WriteIntAt(start, non_inclusive_header_size);

  // Cache the column header
  column_header = new char[column_header_size];
  PL_MEMCPY(column_header, static_cast<const char *>(output.Data()) + start,
            column_header_size);

  return true;
}
コード例 #12
0
ファイル: RoomTypes.cpp プロジェクト: Chaduke/bah.mod
int DefaultRoomColumns::GetColumnIndex(const char *columnName)
{
	unsigned i;
	for (i=0; i < TC_TABLE_COLUMNS_COUNT; i++)
		if (strcmp(columnName,GetColumnName(i))==0)
			return i;
	return -1;
}
コード例 #13
0
ファイル: RoomTypes.cpp プロジェクト: Chaduke/bah.mod
bool DefaultRoomColumns::HasColumnName(const char *columnName)
{
	unsigned i;
	for (i=0; i < TC_TABLE_COLUMNS_COUNT; i++)
		if (strcmp(columnName,GetColumnName(i))==0)
			return true;
	return false;
}
コード例 #14
0
ファイル: MuleListCtrl.cpp プロジェクト: windreamer/amule-dlp
void CMuleListCtrl::SaveSettings()
{
	wxCHECK_RET(!m_name.IsEmpty(), wxT("Cannot save settings for unnamed list"));
	
	wxConfigBase* cfg = wxConfigBase::Get();

	// Save sorting, column and order
	wxString sortOrder;
	for (CSortingList::iterator it = m_sort_orders.begin(); it != m_sort_orders.end();) {
		wxString columnName = GetColumnName(it->first);
		if (!columnName.IsEmpty()) {
			sortOrder += columnName;
			sortOrder += wxT(":");
			sortOrder += it->second & SORT_DES ? wxT("1") : wxT("0");
			sortOrder += wxT(":");
			sortOrder += it->second & SORT_ALT ? wxT("1") : wxT("0");
			if (++it != m_sort_orders.end()) {
				sortOrder += wxT(",");
			}
		} else {
			++it;
		}
	}
	
	cfg->Write(wxT("/eMule/TableOrdering") + m_name, sortOrder);

	// Save column widths. ATM this is also used to signify hidden columns.
	wxString buffer;
	for (int i = 0; i < GetColumnCount(); ++i) {
		wxString columnName = GetColumnName(i);
		if (!columnName.IsEmpty()) {
			if (!buffer.IsEmpty()) {
				buffer << wxT(",");
			}
			int currentwidth = GetColumnWidth(i);
			int savedsize = (m_column_sizes.size() && (i < (int) m_column_sizes.size())) ? m_column_sizes[i] : 0;
			buffer << columnName << wxT(":") << ((currentwidth > 0) ? currentwidth : (-1 * savedsize));
		}
	}

	cfg->Write(wxT("/eMule/TableWidths") + m_name, buffer);
}	
コード例 #15
0
ファイル: excelreader.cpp プロジェクト: zhili/GeCellGenerator
	std::string excelreader::GetDataAsString(int row, int col) {
       if (row < 0 || col < 0)
           throw ExcelException("Cell not exit");
       	WCHAR szTmp[6];
        wsprintfW(szTmp, L"%i", row);
        std::wstring sTmp = GetColumnName(col) + szTmp + L":"
            + GetColumnName(col) + szTmp;
        _variant_t parm(sTmp.c_str());
        _variant_t result;
		AutoWrap(DISPATCH_PROPERTYGET, &result, pXlSheet, L"Range",
                1, (VARIANT)parm);
        _variant_t data;
        AutoWrap(DISPATCH_PROPERTYGET, &data, result.pdispVal, L"Value", 0);
        //if (VariantChangeType(&data, &data, 0, VT_BSTR) != S_OK) {
        //   throw ExcelException("Cannot convert data to string");
        //}
		//CW2A ansiBuffer((_bstr_t)data);
		//CT2A cc((_bstr_t)data);
        //std::string s(cc); 
		return tostr(data);
    }
コード例 #16
0
uint32 DBRowDescriptor::FindColumn( const char* name ) const
{
	uint32 cc = ColumnCount();
    PyString* stringName = new PyString( name );
    
	for( uint32 i = 0; i < cc; i++ )
    {
		if( stringName->hash() == GetColumnName( i )->hash() )
        {
            PyDecRef( stringName );
			return i;
        }
    }

    PyDecRef( stringName );
	return cc;
}
コード例 #17
0
void OperatorToPlanTransformer::Visit(const PhysicalProject *) {
  auto project_prop = requirements_->GetPropertyOfType(PropertyType::PROJECT)
                          ->As<PropertyProjection>();
  (void)project_prop;

  size_t project_list_size = project_prop->GetProjectionListSize();

  // expressions to evaluate
  TargetList tl = TargetList();
  // columns which can be returned directly
  DirectMapList dml = DirectMapList();
  // schema of the projections output
  std::vector<catalog::Column> columns;

  for (size_t project_idx = 0; project_idx < project_list_size; project_idx++) {
    auto expr = project_prop->GetProjection(project_idx);
    std::string column_name;

    // if the root of the expression is a column value we can
    // just do a direct mapping
    if (expr->GetExpressionType() == ExpressionType::VALUE_TUPLE) {
      auto tup_expr = (expression::TupleValueExpression *)expr;
      column_name = tup_expr->GetColumnName();
      dml.push_back(
          DirectMap(project_idx, std::make_pair(0, tup_expr->GetColumnId())));
    }
    // otherwise we need to evaluat the expression
    else {
      column_name = "expr" + std::to_string(project_idx);
      tl.push_back(Target(project_idx, expr->Copy()));
    }
    columns.push_back(catalog::Column(
        expr->GetValueType(), type::Type::GetTypeSize(expr->GetValueType()),
        column_name));
  }
  // build the projection plan node and insert aboce the scan
  std::unique_ptr<planner::ProjectInfo> proj_info(
      new planner::ProjectInfo(std::move(tl), std::move(dml)));
  std::shared_ptr<catalog::Schema> schema_ptr(new catalog::Schema(columns));
  std::unique_ptr<planner::AbstractPlan> project_plan(
      new planner::ProjectionPlan(std::move(proj_info), schema_ptr));

  output_plan_ = std::move(project_plan);
}
コード例 #18
0
ファイル: ctlSQLGrid.cpp プロジェクト: SokilV/pgadmin3
void ctlSQLGrid::AppendColumnHeader(wxString &str, wxArrayInt columns)
{
	if(settings->GetColumnNames())
	{
		bool CopyQuoting = (settings->GetCopyQuoting() == 1 || settings->GetCopyQuoting() == 2);
		size_t i;

		for(i = 0; i < columns.Count() ; i++)
		{
			long columnPos = columns.Item(i);
			if(i > 0)
				str.Append(settings->GetCopyColSeparator());

			if(CopyQuoting)
				str.Append(settings->GetCopyQuoteChar());
			str.Append(GetColumnName(columnPos));
			if(CopyQuoting)
				str.Append(settings->GetCopyQuoteChar());

		}
		str.Append(END_OF_LINE);
	}
}
コード例 #19
0
ファイル: Statement.cpp プロジェクト: openlink/WebDB_ODBC
bool
StatementObject::Invoke(NPIdentifier name, const NPVariant *args,
                               uint32_t argCount, NPVariant *result)
{
//sprintf(tmp, "stmt Invoke [%s]\n", NPN_UTF8FromIdentifier(name)); log(tmp);
  NPError rc;
  VOID_TO_NPVARIANT(*result);
  int index = 0;

  if (name == mc_Init_id) {

    if (argCount < 2) {
      NPN_SetException(this, "Too few parameters count");
      return true;
    }
#if 0
    if (!(NPVARIANT_IS_INT32(args[0]) && NPVARIANT_IS_OBJECT(args[1]))) {
      NPN_SetException(this, "Wrong argument type");
      return true;
    }

    SQLHANDLE hdbc = (SQLHANDLE)(long)NPVARIANT_TO_INT32(args[0]);
#else
    if (!(NPVARIANT_IS_OBJECT(args[0]) && NPVARIANT_IS_OBJECT(args[1]))) {
      NPN_SetException(this, "Wrong argument type");
      return true;
    }

    SQLHANDLE hdbc = (SQLHANDLE)NPVARIANT_TO_OBJECT(args[0]);
#endif

    Init(hdbc, NPVARIANT_TO_OBJECT(args[1]));

    return true;

  } else if (name == mc_AddParameter_id) {
    if (argCount < 1) {
      NPN_SetException(this, "Too few parameters count");
      return true;
    }

    AddParam(args);
    return true;

  } else if (name == mc_Execute_id) {
    if (argCount < 1) {
      NPN_SetException(this, "Too few parameters count");
      return true;
    }
    if (!NPVARIANT_IS_STRING(args[0])) {
      NPN_SetException(this, "Wrong argument type");
      return true;
    }

    Execute((NPString*)&NPVARIANT_TO_STRING(args[0]));
    return true;

  } else if (name == mc_Close_id) {
    Close();
    return true;

  } else if (name == mc_Fetch_id) {
    bool ret;
    rc = Fetch(&ret);
    if (rc != NPERR_NO_ERROR)
      return true;
    BOOLEAN_TO_NPVARIANT(ret, *result);
    return true;

  } else if (name == mc_MoreResults_id) {
    bool ret;
    rc = MoreResults(&ret);
    if (rc != NPERR_NO_ERROR)
      return true;
    BOOLEAN_TO_NPVARIANT(ret, *result);
    return true;

  } else if (name == mc_GetColumnName_id) {
    const char *ret;
    if (argCount < 1) {
      NPN_SetException(this, "Too few parameters count");
      return true;
    }

    if (NPVARIANT_IS_INT32(args[0]))
      index = NPVARIANT_TO_INT32(args[0]);
    else if (NPVARIANT_IS_DOUBLE(args[0]))
      index = (int)NPVARIANT_TO_DOUBLE(args[0]);
    else {
      NPN_SetException(this, "Wrong argument type");
      return true;
    }

    rc = GetColumnName(index, &ret);
    if (rc != NPERR_NO_ERROR)
      return true;
    STRING_TO_NPVARIANT(ret, *result);
    return true;

  } else if (name == mc_GetVariant_id) {
    if (argCount < 1) {
      NPN_SetException(this, "Too few parameters count");
      return true;
    }

    if (NPVARIANT_IS_INT32(args[0]))
      index = NPVARIANT_TO_INT32(args[0]);
    else if (NPVARIANT_IS_DOUBLE(args[0]))
      index = (int)NPVARIANT_TO_DOUBLE(args[0]);
    else {
      NPN_SetException(this, "Wrong argument type");
      return true;
    }

    GetVariant(index, result);
    return true;

  } else if (name == mc_GetColumnType_id) {
    int ret;
    if (argCount < 1) {
      NPN_SetException(this, "Too few parameters count");
      return true;
    }

    if (NPVARIANT_IS_INT32(args[0]))
      index = NPVARIANT_TO_INT32(args[0]);
    else if (NPVARIANT_IS_DOUBLE(args[0]))
      index = (int)NPVARIANT_TO_DOUBLE(args[0]);
    else {
      NPN_SetException(this, "Wrong argument type");
      return true;
    }

    rc = GetColumnType(index, &ret);
    if (rc != NPERR_NO_ERROR)
      return true;
    INT32_TO_NPVARIANT(ret, *result);
    return true;

  } else if (name == mc_IsColumnNullable_id) {
    bool ret;
    if (argCount < 1) {
      NPN_SetException(this, "Too few parameters count");
      return true;
    }

    if (NPVARIANT_IS_INT32(args[0]))
      index = NPVARIANT_TO_INT32(args[0]);
    else if (NPVARIANT_IS_DOUBLE(args[0]))
      index = (int)NPVARIANT_TO_DOUBLE(args[0]);
    else {
      NPN_SetException(this, "Wrong argument type");
      return true;
    }

    rc = IsColumnNullable(index, &ret);
    if (rc != NPERR_NO_ERROR)
      return true;
    BOOLEAN_TO_NPVARIANT(ret, *result);
    return true;

  } else if (name == mc_GetTables_id) {
    if (argCount < 4) {
      NPN_SetException(this, "Too few parameters count");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[0]) || NPVARIANT_IS_STRING(args[0]))) {
      NPN_SetException(this, "Wrong 1 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[1]) || NPVARIANT_IS_STRING(args[1]))) {
      NPN_SetException(this, "Wrong 2 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[2]) || NPVARIANT_IS_STRING(args[2]))) {
      NPN_SetException(this, "Wrong 3 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[3]) || NPVARIANT_IS_STRING(args[3]))) {
      NPN_SetException(this, "Wrong 4 argument type");
      return true;
    }

    GetTables(&args[0], &args[1], &args[2], &args[3]);
    return true;

  } else if (name == mc_GetColumns_id) {
    if (argCount < 4) {
      NPN_SetException(this, "Too few parameters count");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[0]) || NPVARIANT_IS_STRING(args[0]))) {
      NPN_SetException(this, "Wrong 1 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[1]) || NPVARIANT_IS_STRING(args[1]))) {
      NPN_SetException(this, "Wrong 2 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[2]) || NPVARIANT_IS_STRING(args[2]))) {
      NPN_SetException(this, "Wrong 3 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[3]) || NPVARIANT_IS_STRING(args[3]))) {
      NPN_SetException(this, "Wrong 4 argument type");
      return true;
    }

    GetColumns(&args[0], &args[1], &args[2], &args[3]);
    return true;

  } else if (name == mc_GetTypeInfo_id) {
    if (argCount < 1) {
      NPN_SetException(this, "Too few parameters count");
      return true;
    }

    if (NPVARIANT_IS_INT32(args[0]))
      index = NPVARIANT_TO_INT32(args[0]);
    else if (NPVARIANT_IS_DOUBLE(args[0]))
      index = (int)NPVARIANT_TO_DOUBLE(args[0]);
    else {
      NPN_SetException(this, "Wrong argument type");
      return true;
    }

    GetTypeInfo(index);
    return true;

  } else if (name == mc_GetPrimaryKeys_id) {
    if (argCount < 3) {
      NPN_SetException(this, "Too few parameters count");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[0]) || NPVARIANT_IS_STRING(args[0]))) {
      NPN_SetException(this, "Wrong 1 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[1]) || NPVARIANT_IS_STRING(args[1]))) {
      NPN_SetException(this, "Wrong 2 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[2]) || NPVARIANT_IS_STRING(args[2]))) {
      NPN_SetException(this, "Wrong 3 argument type");
      return true;
    }

    GetPrimaryKeys(&args[0], &args[1], &args[2]);
    return true;

  } else if (name == mc_GetForeignKeys_id) {
    if (argCount < 6) {
      NPN_SetException(this, "Too few parameters count");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[0]) || NPVARIANT_IS_STRING(args[0]))) {
      NPN_SetException(this, "Wrong 1 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[1]) || NPVARIANT_IS_STRING(args[1]))) {
      NPN_SetException(this, "Wrong 2 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[2]) || NPVARIANT_IS_STRING(args[2]))) {
      NPN_SetException(this, "Wrong 3 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[3]) || NPVARIANT_IS_STRING(args[3]))) {
      NPN_SetException(this, "Wrong 4 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[4]) || NPVARIANT_IS_STRING(args[4]))) {
      NPN_SetException(this, "Wrong 5 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[5]) || NPVARIANT_IS_STRING(args[5]))) {
      NPN_SetException(this, "Wrong 6 argument type");
      return true;
    }

    GetForeignKeys(&args[0], &args[1], &args[2], &args[3], &args[4], &args[5]);
    return true;

  } else if (name == mc_GetProcedures_id) {
    if (argCount < 3) {
      NPN_SetException(this, "Too few parameters count");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[0]) || NPVARIANT_IS_STRING(args[0]))) {
      NPN_SetException(this, "Wrong 1 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[1]) || NPVARIANT_IS_STRING(args[1]))) {
      NPN_SetException(this, "Wrong 2 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[2]) || NPVARIANT_IS_STRING(args[2]))) {
      NPN_SetException(this, "Wrong 3 argument type");
      return true;
    }

    GetProcedures(&args[0], &args[1], &args[2]);
    return true;

  } else if (name == mc_GetProcedureColumns_id) {
    if (argCount < 4) {
      NPN_SetException(this, "Too few parameters count");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[0]) || NPVARIANT_IS_STRING(args[0]))) {
      NPN_SetException(this, "Wrong 1 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[1]) || NPVARIANT_IS_STRING(args[1]))) {
      NPN_SetException(this, "Wrong 2 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[2]) || NPVARIANT_IS_STRING(args[2]))) {
      NPN_SetException(this, "Wrong 3 argument type");
      return true;
    }
    if (!(NPVARIANT_IS_NULL(args[3]) || NPVARIANT_IS_STRING(args[3]))) {
      NPN_SetException(this, "Wrong 4 argument type");
      return true;
    }

    GetProcedureColumns(&args[0], &args[1], &args[2], &args[3]);
    return true;
  
  }  

  return false;
}
コード例 #20
0
//*****************************************************************************
void CBCGPDBGridCtrl::Sort (int nColumn, BOOL bAscending, BOOL bAdd)
{
    if (m_bIsSorting || !CanSortByColumn (nColumn))
    {
        return;
    }

    if (!m_bDbSort || m_strSQL.IsEmpty ())
    {
        CBCGPGridCtrl::Sort (nColumn, bAscending, bAdd);
        return;
    }

    SetCurSel (NULL);

    m_CachedItems.CleanUpCache ();

    CString strSQLOrign = m_strSQL;

    CString strColumn = GetColumnName (nColumn);
    if (strColumn.Find (_T(' ')) >= 0)
    {
        strColumn = _T('\'') + strColumn + _T('\'');
    }

    CString strSQL;
    strSQL.Format (_T("%s ORDER BY %s %s"),
                   m_strSQL, strColumn,
                   bAscending ? _T(" ASC") : _T(" DESC"));

    if (bAdd)
    {
        for (POSITION pos = m_Columns.m_mapSortColumn.GetStartPosition (); pos != NULL; )
        {
            int nListColumn, nState;

            m_Columns.m_mapSortColumn.GetNextAssoc (pos, nListColumn, nState);

            if (nState != 0 && nListColumn != nColumn)
            {
                CString strListColumn = GetColumnName (nListColumn);
                if (strListColumn.Find (_T(' ')) >= 0)
                {
                    strListColumn = _T('\'') + strListColumn + _T('\'');
                }

                CString strOrder;
                strOrder.Format (_T(", %s %s"),
                                 strListColumn,
                                 nState > 0 ? _T(" ASC") : _T(" DESC"));

                strSQL += strOrder;
            }
        }
    }

    CWaitCursor wait;

    m_bRebuildTerminalItems = TRUE;

    m_bIsSorting = TRUE;

    if (OpenSQL (strSQL))
    {
        m_Columns.SetSortColumn (nColumn, bAscending, bAdd);
    }

    RedrawWindow (m_rectHeader);

    m_bIsSorting = FALSE;
    m_strSQL = strSQLOrign;
}
コード例 #21
0
ファイル: TdsColumnData.cpp プロジェクト: 05storm26/codelite
TdsColumnData::TdsColumnData(TDSCOLUMN* pColumn)
{
  m_nColumnType = GetColumnType(pColumn);
  m_nColumnSize = GetColumnSize(pColumn);
  m_strColumnName = GetColumnName(pColumn);
}
コード例 #22
0
CString IllusionExcelFile::RCString(int irow,int icol){
	CString tmp;
	tmp.Format(_T("%s%d"),GetColumnName(icol),irow);
	return tmp;
}