Exemplo n.º 1
0
INT CADOParameters::Add(INT iValue)
{
	return Add(_variant_t((long)iValue));
}
Exemplo n.º 2
0
void CMyExcel::SetNumberFormat(MyNumberFormat XNumberFormat)
{
	CString strText=XNumberFormat.strValue;
	MyRange.SetNumberFormat(_variant_t(strText));
}
	long SmtAnnoFclsAdoLayer::AppendFeature(const SmtFeature *pSmtFeature,bool bclone)
	{
		long lRet = SMT_ERR_NONE;
		//////////////////////////////////////////////////////////////////////////
		//db
		if (!IsOpen())
			if (!Open(m_szLayerTableName))
				return SMT_ERR_DB_OPER;

		int nGridID = 0;
		char  szAnnoBuf[TEMP_BUFFER_SIZE];
		int nClr = 0;
		double fAngle = 0.;

		Envelope env;
		const SmtGeometry *pGeom = pSmtFeature->GetGeometryRef();
		const SmtAttribute *pAtt = pSmtFeature->GetAttributeRef();
		const SmtStyle	*pStyle = pSmtFeature->GetStyle();

		pGeom->GetEnvelope(&env);
		
		m_SmtRecordset.AddNew();	
		m_SmtRecordset.PutCollect("ID",_variant_t(pSmtFeature->GetID()));
		m_SmtRecordset.PutCollect("mbr_xmin",_variant_t(env.MinX));
		m_SmtRecordset.PutCollect("mbr_ymin",_variant_t(env.MinY));
		m_SmtRecordset.PutCollect("mbr_xmax",_variant_t(env.MaxX));
		m_SmtRecordset.PutCollect("mbr_ymax",_variant_t(env.MaxY));
		m_SmtRecordset.PutCollect("grid_id",_variant_t(nGridID));
		//////////////////////////////////////////////////////////////////////////
		lRet = AppendStyle(pStyle);

		//////////////////////////////////////////////////////////////////////////
		lRet = AppendGeom(pGeom);

		//////////////////////////////////////////////////////////////////////////
		const SmtField *pFld = NULL;

		pFld = pAtt->GetFieldPtr(pAtt->GetFieldIndex("anno"));
		sprintf(szAnnoBuf,pFld->GetValueAsString());
		m_SmtRecordset.PutCollect("anno",_variant_t(szAnnoBuf));

		pFld = pAtt->GetFieldPtr(pAtt->GetFieldIndex("color"));
		nClr = pFld->GetValueAsInteger();
		m_SmtRecordset.PutCollect("color",_variant_t(nClr));

		pFld = pAtt->GetFieldPtr(pAtt->GetFieldIndex("angle"));
		fAngle = pFld->GetValueAsDouble();
		m_SmtRecordset.PutCollect("angle",_variant_t(fAngle));

		if (!m_SmtRecordset.Update()) 
		{
			SMT_SAFE_DELETE(pSmtFeature);
			return SMT_ERR_DB_OPER;
		}

		//mem
		m_pMemLayer->AppendFeature(pSmtFeature,bclone);
		CalEnvelope();

		return lRet;
	}
Exemplo n.º 4
0
//上传存储过程
LONG CDataBaseSink::SPUploadFace(DWORD dwUserID, BYTE *bFaceData, DWORD dwFaceDataSize)
{
	//效验参数
	ASSERT(dwUserID!=0L);
	ASSERT(dwFaceDataSize!=0L);
	ASSERT(bFaceData!=NULL);

	//效验参数
	ASSERT(dwUserID!=0L);
	ASSERT(dwFaceDataSize!=0L);
	ASSERT(bFaceData!=NULL);

	//执行存储过程
	m_AccountsDBAide.ResetParameter();
	m_AccountsDBAide.AddParameter(TEXT("@dwUserID"),dwUserID);

	VARIANT varChunk;
	SAFEARRAY *psa=NULL;
	SAFEARRAYBOUND rgsabound[1];
	rgsabound[0].cElements = dwFaceDataSize;
    rgsabound[0].lLbound = 0;
    psa = SafeArrayCreate(VT_UI1,1,rgsabound);
    for (long index =0; index < long(dwFaceDataSize); index++ )
	{
		SafeArrayPutElement(psa,&index,&bFaceData[index]);
	}
    varChunk.vt = VT_ARRAY|VT_UI1;
    varChunk.parray = psa;

	IDataBase * pIDataBase=m_AccountsDBModule.GetInterface();
	pIDataBase->AddParameter(TEXT("@imgCustomFaceImage"),adLongVarBinary,adParamInput,dwFaceDataSize,_variant_t(varChunk));

	LONG lReturnValue=m_AccountsDBAide.ExecuteProcess(TEXT("GSP_CF_InsertCustomFace"),false);

	//释放资源
	SafeArrayDestroy(psa);

	return lReturnValue;
}
Exemplo n.º 5
0
// ---------------------------------------------------------------------------
bool MFileXMLProcessor::Process(const bool &bvalidation, const stringT &ImportedPrefix,
                                const stringT &strXMLFileName, const stringT &strXSDFileName,
                                const bool &bImportPSWDsOnly)
{
  HRESULT hr, hr0, hr60;
  bool b_ok = false;
  bool b_into_empty;
  stringT cs_validation;
  LoadAString(cs_validation, IDSC_XMLVALIDATION);
  stringT cs_import;
  LoadAString(cs_import, IDSC_XMLIMPORT);

  m_strXMLErrors = _T("");
  m_bValidation = bvalidation;  // Validate or Import

  //  Create SAXReader object
  ISAXXMLReader *pSAX2Reader = NULL;
  //  Get ready for XSD schema validation
  IXMLDOMSchemaCollection2 *pSchemaCache = NULL;

  if (m_bValidation) { //XMLValidate
    hr60 = CoCreateInstance(__uuidof(SAXXMLReader60), NULL, CLSCTX_ALL,
                            __uuidof(ISAXXMLReader), (void **)&pSAX2Reader);
    if (FAILED(hr60)) {
      LoadAString(m_strXMLErrors, IDSC_NOMSXMLREADER);
      goto exit;
    }
  } else {  // XMLImport
    b_into_empty = m_pXMLcore->GetNumEntries() == 0;
    hr0 = CoCreateInstance(__uuidof(SAXXMLReader60), NULL, CLSCTX_ALL,
                           __uuidof(ISAXXMLReader), (void **)&pSAX2Reader);
  }

  //  Create ContentHandlerImpl object
  MFileSAX2ContentHandler *pCH = new MFileSAX2ContentHandler();
  pCH->SetVariables(m_bValidation ? NULL : m_pXMLcore, m_bValidation, 
                    ImportedPrefix, m_delimiter, bImportPSWDsOnly,
                    m_bValidation ? NULL : m_pPossible_Aliases, 
                    m_bValidation ? NULL : m_pPossible_Shortcuts,
                    m_pmulticmds, m_prpt);

  //  Create ErrorHandlerImpl object
  MFileSAX2ErrorHandler *pEH = new MFileSAX2ErrorHandler();

  //  Set Content Handler
  hr = pSAX2Reader->putContentHandler(pCH);

  //  Set Error Handler
  hr = pSAX2Reader->putErrorHandler(pEH);

  hr = CoCreateInstance(__uuidof(XMLSchemaCache60), NULL, CLSCTX_ALL,
                        __uuidof(IXMLDOMSchemaCollection2), (void **)&pSchemaCache);

  if (!FAILED(hr)) {  // Create SchemaCache
    //  Initialize the SchemaCache object with the XSD filename
    CComVariant cvXSDFileName = strXSDFileName.c_str();
    hr = pSchemaCache->add(L"", cvXSDFileName);

    //  Set the SAXReader/Schema Cache features and properties
    {
      /* Documentation is unclear as to what is in which release.
      Try them all - if they don't get set, the world will not end!
      Common Error codes:
      S_OK          Operation successful         0x00000000
      E_NOTIMPL     Not implemented              0x80004001
      E_NOINTERFACE No such interface supported  0x80004002
      E_ABORT       Operation aborted            0x80004004
      E_FAIL        Unspecified failure          0x80004005
      E_INVALIDARG Invalid argument              0x80070057
      Normally not supported on a back level MSXMLn.DLL
      */

      // Want all validation errors
      hr = pSAX2Reader->putFeature(L"exhaustive-errors", VARIANT_TRUE);
      // Don't allow user to override validation by using DTDs
      hr = pSAX2Reader->putFeature(L"prohibit-dtd", VARIANT_TRUE);
      // Don't allow user to override validation by using DTDs (2 features)
      hr = pSAX2Reader->putFeature(L"http://xml.org/sax/features/external-general-entities",
                                   VARIANT_FALSE);
      hr = pSAX2Reader->putFeature(L"http://xml.org/sax/features/external-parameter-entities",
                                   VARIANT_FALSE);
      // Want to validate XML file
      hr = pSAX2Reader->putFeature(L"schema-validation", VARIANT_TRUE);
      // Ignore any schema specified in the XML file
      hr = pSAX2Reader->putFeature(L"use-schema-location", VARIANT_FALSE);
      // Ignore any schema in the XML file
      hr = pSAX2Reader->putFeature(L"use-inline-schema", VARIANT_FALSE);
      // Only use the XSD in PWSafe's installation directory!
      hr = pSAX2Reader->putProperty(L"schemas", _variant_t(pSchemaCache));
    }

    //  Let's begin the parsing now
    wchar_t wcURL[MAX_PATH] = {0};
    _tcscpy_s(wcURL, MAX_PATH, strXMLFileName.c_str());
    hr = pSAX2Reader->parseURL(wcURL);

    if (!FAILED(hr)) {  // Check for parsing errors
      if (pEH->bErrorsFound == TRUE) {
        m_strXMLErrors = pEH->m_strValidationResult;
      } else {
        if (m_bValidation) {
          m_numEntriesValidated = pCH->m_numEntries;
          m_delimiter = pCH->m_delimiter;
        } else {
          // Now add entries
          pCH->AddXMLEntries();

          // Get numbers (may have been modified by AddXMLEntries
          m_numEntriesImported = pCH->m_numEntries;
          m_numEntriesSkipped = pCH->getNumSkipped();
          m_numEntriesRenamed = pCH->getNumRenamed();
          m_numEntriesPWHErrors = pCH->getNumPWHErrors();
          m_numNoPolicies = pCH->getNumNoPolicies();
          m_numRenamedPolicies = pCH->getNumRenamedPolicies();
          m_numShortcutsRemoved = pCH->getNumShortcutsRemoved();

          // Get lists
          m_strXMLErrors = pCH->getXMLErrors();
          m_strSkippedList = pCH->getSkippedList();
          m_strPWHErrorList = pCH->getPWHErrorList();
          m_strRenameList = pCH->getRenameList();

          if (b_into_empty) {
            pCH->AddDBPreferences();
          }
        }

        b_ok = true;
      }
    } else {
      if (pEH->bErrorsFound == TRUE) {
        m_strXMLErrors = pEH->m_strValidationResult;
      } else {
        Format(m_strXMLErrors, IDSC_MSXMLPARSEERROR, hr,
               m_bValidation ? cs_validation.c_str() : cs_import.c_str());
      }
    }  // End Check for parsing errors

  } else {
    Format(m_strXMLErrors, IDSC_MSXMLBADCREATESCHEMA, hr,
           m_bValidation ? cs_validation.c_str() : cs_import.c_str());
  }  // End Create Schema Cache

exit:
  if (pSchemaCache != NULL)
    pSchemaCache->Release();

  if (pSAX2Reader != NULL)
    pSAX2Reader->Release();

  return b_ok;
}
void CBatchSNDlg::OnBnClickedCalibrationPointReport()
{
    CString  Product_Head_File_Name;
    CString strFilter;
    CString strFilename;
    CString strTemp;
    CString RegisterName;
    CString RegisterID;
    CString logstr;
    _variant_t  temp_variant;
    _Application app;    
    Workbooks books;
    _Workbook book;
    Worksheets sheets;
    _Worksheet sheet;
    Range range;
    Range rgMyRge1, rgMyRge2; 	
    COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
   
     int CurrentRow;


    if (!app.CreateDispatch(_T("Excel.Application"),NULL)) 
    { 
        AfxMessageBox(_T("Create Excel false!")); 
        return;
    } 
    //遍历所有行  
    strFilename=g_strExePth+_T("Calibration Sensor Report.xls");

    books.AttachDispatch(app.GetWorkbooks()); 
    book.AttachDispatch(books.Add(_variant_t(strFilename)));

    sheets.AttachDispatch(book.GetWorksheets());	
    sheet.AttachDispatch(sheets.GetItem(_variant_t("Sheet1")));

    range.AttachDispatch(sheet.GetCells()); 
    CString ContentData;
    CTime time = CTime::GetCurrentTime();
   
    ContentData.Format(_T("Calibration Date"));
    range.SetItem(_variant_t((long)(1)),_variant_t((long)(1)),_variant_t(ContentData));
   
    ContentData.Format(_T("%d-%d-%d"),time.GetYear(),time.GetMonth(),time.GetDay());
    range.SetItem(_variant_t((long)(1)),_variant_t((long)(3)),_variant_t(ContentData));
 
    range.AttachDispatch(sheet.GetCells());
 
    for (int i=0;i<(int)m_modbus_IDs.size();i++)
    {  
        if (!m_modbus_IDs.at(i).Result)
        {
        continue;
        }
        CurrentRow = 3 + 7*i;
        unsigned short databuffer[30];
        Read_Multi(m_modbus_IDs.at(i).ModbusID,&databuffer[0],2000,30);
        ContentData = _T("Serial Number");
        range.SetItem(_variant_t((long)(CurrentRow)),_variant_t((long)(1)),_variant_t(ContentData));
        ContentData.Format(_T("%d"),databuffer[2027 - 2000]);
        range.SetItem(_variant_t((long)(CurrentRow)),_variant_t((long)(2)),_variant_t(ContentData));

        ContentData = _T("Points");
        range.SetItem(_variant_t((long)(CurrentRow)),_variant_t((long)(3)),_variant_t(ContentData));
        ContentData.Format(_T("%d"),databuffer[2003 - 2000]);
        range.SetItem(_variant_t((long)(CurrentRow)),_variant_t((long)(4)),_variant_t(ContentData));
         ++CurrentRow;
        ContentData = _T("Temperature");
        range.SetItem(_variant_t((long)(CurrentRow)),_variant_t((long)(1)),_variant_t(ContentData));
        ContentData.Format(_T("%0.1f"),((float)((short)databuffer[2000 - 2000]))/10);
        range.SetItem(_variant_t((long)(CurrentRow)),_variant_t((long)(2)),_variant_t(ContentData));

        ContentData = _T("Humidity");
        range.SetItem(_variant_t((long)(CurrentRow)),_variant_t((long)(3)),_variant_t(ContentData));
        ContentData.Format(_T("%0.1f"),((float)((short)databuffer[2001 - 2000]))/10);
        range.SetItem(_variant_t((long)(CurrentRow)),_variant_t((long)(4)),_variant_t(ContentData));

        
        ++CurrentRow;
        ContentData = _T("RH");
        range.SetItem(_variant_t((long)(CurrentRow)),_variant_t((long)(1)),_variant_t(ContentData));

        for (int j = 0;j<10;j++)
        {
            ContentData.Format(_T("%0.1f"),((float)((short)databuffer[2004 - 2000 + 2*j]))/10);
            range.SetItem(_variant_t((long)(CurrentRow)),_variant_t((long)(2+j)),_variant_t(ContentData));
        }
        ++CurrentRow;
        ContentData = _T("Frequency");
        range.SetItem(_variant_t((long)(CurrentRow)),_variant_t((long)(1)),_variant_t(ContentData));
        for (int j = 0;j<10;j++)
        {
            ContentData.Format(_T("%d"),databuffer[2005 - 2000 + 2*j]);
            range.SetItem(_variant_t((long)(CurrentRow)),_variant_t((long)(2+j)),_variant_t(ContentData));
        } 
 

    }

    AfxMessageBox(_T("Export Completely"));

    app.SetVisible(true); 
    range.ReleaseDispatch(); 
    sheet.ReleaseDispatch(); 
    sheets.ReleaseDispatch(); 
    book.ReleaseDispatch(); 
    books.ReleaseDispatch();
    app.ReleaseDispatch(); 
}
UINT CRelateConsumeList::QueryConsume(LPVOID ps)
{
	CRelateConsumeList * pd=(CRelateConsumeList * )((CProgressIndicate *)ps)->pDialog;

	pd->m_grid.SetRedraw(false);
	pd->SetGridHead();
	CString strSql,str1,str2,str3;
	long cols,row,i,col;
	double add[]={0,0,0,0,0,0,0,0,0};
	const int START_COMPUTE=5; //在SQL语句中
	pd->UpdateData();
	CComboBox *pc=(CComboBox*)pd->GetDlgItem(IDC_COMBO1);
	try{
		strSql.Format("SELECT * FROM V_RELATE_CONSUME ");
	
		pd->c_edit1.GetWindowText(str1); //卡号
		if( !str1.IsEmpty() ) strSql+=" WHERE  bm like '"+str1+"%'";
		pd->c_edit3.GetWindowText(str2); //姓名
		if ( !str2.IsEmpty() ){
			if( str1.IsEmpty() )
			strSql+=" WHERE xm like '"+str2+"%'";
			else			
			strSql+=" AND xm like '"+str2+"%'";
		
		}
		if(pc->GetCurSel() != 0 && pc->GetCurSel() != CB_ERR ) 
		{
			pc->GetLBText(pc->GetCurSel(),str3);
			if( str1.IsEmpty() && str2.IsEmpty() )strSql+=" WHERE xingzhi='"+str3+"'";
			else strSql+=" AND xingzhi='"+str3+"'";
		}
		
		recSet->Open(_bstr_t(strSql),(IDispatch*)HospitalConnect,adOpenDynamic,adLockOptimistic,adCmdText); 
		row=1;
		cols=recSet->GetFields()->Count;
		double dX;
		while(!recSet->adoEOF){
			col=0;
			str1.Format("%ld",row);
			pd->m_grid.SetTextMatrix(row,col++,str1);
			pd->m_grid.SetRow(row);
			pd->m_grid.SetCol(6);
			pd->m_grid.SetCellBackColor(BK1);
	/*		pd->m_grid.SetCol(9);
			pd->m_grid.SetCellBackColor(BK2);
	*/		for(i=0;i<cols;i++)
			{
				str1=(char*)_bstr_t(recSet->GetFields()->GetItem(_variant_t(i))->Value.vt==VT_NULL?" ":recSet->GetFields()->GetItem(_variant_t(i))->Value);
				pd->m_grid.SetTextMatrix(row,col++,str1);
				
				if( i>=START_COMPUTE )add[i-START_COMPUTE]+=atof(str1); 
			}
			row++;
			pd->m_grid.AddItem(" ",_variant_t(row));
			recSet->MoveNext();
			
		}
		recSet->Close();

		pd->m_grid.SetMergeCells(true);
		pd->m_grid.SetMergeRow(row,1); 
		pd->m_grid.SetRow(row);
		pd->m_grid.SetCellBackColor(RGB(255,0,0));
		strSql.Format("   共有 %ld 条记录 ",row-1);
		pd->m_grid.SetTextMatrix(row,0,"合计");	
		pd->GetDlgItem(IDC_STATIC_NOTIFY)->SetWindowText(strSql);
		
		for(int count=1;count<cols+1;count++){
			pd->m_grid.SetTextMatrix(row,count,strSql);	
			pd->m_grid.SetCol(count);
			pd->m_grid.SetCellBackColor(RGB(255,128,0));
			
		}
		
		for(i=START_COMPUTE;i<cols;i++){
			strSql.Format("%.2f",add[i-START_COMPUTE]);
			pd->m_grid.SetTextMatrix(row,i+1,strSql);
		}

		pd->m_grid.SetRedraw(true);
		
	}
	catch(_com_error e)
	{
		AfxMessageBox(strSql);
		recSet->Close();
		((CProgressIndicate *)ps)->ConnectFlag =1;
		((CProgressIndicate *)ps)->SendMessage(WM_CLOSE,NULL,NULL);
		
		return false;
	}	
	pd->m_grid.SetRedraw(true);
	((CProgressIndicate *)ps)->ConnectFlag =1;
	((CProgressIndicate *)ps)->SendMessage(WM_CLOSE,NULL,NULL);
}
Exemplo n.º 8
0
INT CADOParameters::Add(const COleDateTime &datetime)
{
	return Add(_variant_t((DATE)datetime, VT_DATE));
}
Exemplo n.º 9
0
INT CADOParameters::Add(const CURRENCY &curValue)
{
	return Add(_variant_t(curValue));
}
Exemplo n.º 10
0
INT CADOParameters::Add(FLOAT fValue)
{
	return Add(_variant_t(fValue));
}
Exemplo n.º 11
0
INT CADOParameters::Add(DOUBLE dbValue)
{
	return Add(_variant_t(dbValue));
}
Exemplo n.º 12
0
INT CADOParameters::Add(LPCWSTR bstrValue)
{
	return Add(_variant_t(bstrValue));
}
Exemplo n.º 13
0
INT CADOParameters::Add(LPCSTR strValue)
{
	return Add(_variant_t(strValue));
}
Exemplo n.º 14
0
INT CADOParameters::Add(bool bValue)
{
	return Add(_variant_t(bValue));
}
Exemplo n.º 15
0
bool ADOConn::SaveFileSQL(char *tablename,char *itemname,CFile *pFile)
{
// 	CFile file;
// 	if (0==file.Open(filepath,CFile::modeRead))
// 	{
// 		return false;
// 	}
	pFile->SeekToBegin();
	byte* pbuf;
	long nLength = pFile->GetLength();
	pbuf = new byte[nLength];
	if(pbuf == NULL)
	{
		return false;       
	}//allocate memory error;
	pFile->Read(pbuf,nLength);          //read the file into memory
	byte *pBufEx = pbuf;
	SAFEARRAY* psa;
	SAFEARRAYBOUND rgsabound[1];
	rgsabound[0].lLbound = 0;
	rgsabound[0].cElements = nLength;
	psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
	for (long i = 0; i < nLength; i++)
	{
		SafeArrayPutElement (psa, &i, pBufEx++);
	}
	VARIANT varBLOB;
	varBLOB.vt = VT_ARRAY | VT_UI1;
	varBLOB.parray = psa;
	_RecordsetPtr pRs = NULL;             
	_ConnectionPtr pConnection = NULL;
	HRESULT hr;
	try
    {
        //Open a connection
        pConnection.CreateInstance(__uuidof(Connection));
        hr = pConnection->Open((_bstr_t)m_strConn,"sa","123",adModeUnknown);   //Connect a DataBase
        pRs.CreateInstance(__uuidof(Recordset));
      //  pRs->Open(tablename,_variant_t((IDispatch *) pConnection,true),adOpenKeyset,adLockOptimistic,adCmdTable);  //Open a Table
		pRs->Open("select *from test where name='content'",_variant_t((IDispatch *) pConnection,true),adOpenKeyset,adLockOptimistic,adCmdText);		

		pRs->AddNew();
		pRs->GetFields()->GetItem("name")->AppendChunk((_bstr_t)itemname);
			pRs->GetFields()->GetItem("content")->AppendChunk(varBLOB);
//		pRs->PutCollect("name",_variant_t(itemname));
//		pRs->PutCollect("content",varBLOB);
		//	pRs->Fields->GetItem(itemname)->AppendChunk(varBLOB);        
       pRs->Update();
        pRs->Close();
       pConnection->Close();
	 }
    catch(_com_error &e)
    {
        // Notify the user of errors if any.
        _bstr_t bstrSource(e.Source());
        _bstr_t bstrDescription(e.Description());
        CString sError;
        sError.Format("Source : %s \n Description : %s\n",(LPCSTR)bstrSource,(LPCSTR)bstrDescription);		
        AfxMessageBox(sError);    
		return false;
	}
	return true;
}
Exemplo n.º 16
0
void AddNewX() {
    // Define ADO object pointers. Initialize pointers on define.  
    _RecordsetPtr pRstEmployees = NULL;
    _ConnectionPtr pConnection = NULL;

    // Define Other variables  
    IADORecordBinding *picRs = NULL;   // Interface Pointer declared.(VC++ Extensions)     
    CEmployeeRs emprs;   // C++ class object     

    HRESULT hr = S_OK;

    // Replace Data Source value with your server name.  
    _bstr_t strCnn("Provider='sqloledb'; Data Source='My_Data_Source'; Initial Catalog='pubs'; Integrated Security='SSPI';");
    _bstr_t strId;
    _bstr_t strMessage;

    try {
        // Open a connection  
        TESTHR(pConnection.CreateInstance(__uuidof(Connection)));
        pConnection->Open(strCnn, "", "", adConnectUnspecified);

        // Open employee table   
        TESTHR(pRstEmployees.CreateInstance(__uuidof(Recordset)));

        // You have to explicitly pass the Cursor type and LockType to the Recordset here  
        pRstEmployees->Open("employee", _variant_t((IDispatch *)pConnection, true),
            adOpenKeyset, adLockOptimistic, adCmdTable);

        // Open IADORecordBinding interface pointer for Binding Recordset to a class      
        TESTHR(pRstEmployees->QueryInterface(__uuidof(IADORecordBinding), (LPVOID*)&picRs));

        // Bind the Recordset to a C++ Class here     
        TESTHR(picRs->BindToRecordset(&emprs));

        // Get data from the user.The employee id must be formatted as first,middle and last   
        // initial, five numbers,then M or F to signify the gender. For example, the   
        // employee id for Bill A. Sorensen would be "BAS55555M".   
        printf("Enter Employee Id: ");
        myscanf(emprs.m_sz_empid, sizeof(emprs.m_sz_empid));
        strId = emprs.m_sz_empid;
        printf("Enter First Name: ");
        myscanf(emprs.m_sz_fname, sizeof(emprs.m_sz_fname));
        printf("Enter Last Name:");
        myscanf(emprs.m_sz_lname, sizeof(emprs.m_sz_lname));

        // Proceed if user entered id, the first and the last name.   

        if (strcmp(emprs.m_sz_empid, "") && strcmp(emprs.m_sz_fname, "") && strcmp(emprs.m_sz_lname, "")) {
            // This adds a new record to the table     
            // if (FAILED(hr = picRs->AddNew(&emprs)))  
            //_com_issue_error(hr);  
            TESTHR(picRs->AddNew(&emprs));

            // Show the newly added data  
            printf("New Record: %s  %s  %s \n", \
                emprs.lemp_empidStatus == adFldOK ? emprs.m_sz_empid : "<NULL>", \
                emprs.lemp_fnameStatus == adFldOK ? emprs.m_sz_fname : "<NULL>", \
                emprs.lemp_lnameStatus == adFldOK ? emprs.m_sz_lname : "<NULL>");
        }
        else
            printf("Please enter an employee id, first name and last name.\n");

        // Delete the new record because this is a demonstration.   
        pConnection->Execute("DELETE FROM EMPLOYEE WHERE emp_id = '" + strId + "'", NULL, adCmdText);
    }
    catch (_com_error &e) {
        // Notify the user of errors if any.  
        _variant_t vtConnect = pRstEmployees->GetActiveConnection();

        // GetActiveConnection returns connect string if connection  
        // is not open, else returns Connection object.  
        switch (vtConnect.vt) {
        case VT_BSTR:
            printf("Error:\n");
            printf("Code = %08lx\n", e.Error());
            printf("Message = %s\n", e.ErrorMessage());
            printf("Source = %s\n", (LPCSTR)e.Source());
            printf("Description = %s\n", (LPCSTR)e.Description());
            break;
        case VT_DISPATCH:
            PrintProviderError(vtConnect);
            break;
        default:
            printf("Errors occured.");
            break;
        }
    }

    // Clean up objects before exit.  Release the IADORecordset Interface here     
    if (picRs)
        picRs->Release();

    if (pRstEmployees)
        if (pRstEmployees->State == adStateOpen)
            pRstEmployees->Close();
    if (pConnection)
        if (pConnection->State == adStateOpen)
            pConnection->Close();
}
void ApplyGraphicLabelsDlg::ReloadAddBuildingDB()
{
	m_FlexGrid.Clear();
	
	//m_FlexGrid.put_ColAlignment(0,4);

	m_FlexGrid.put_TextMatrix(0,1,_T("Serial ID"));
	m_FlexGrid.put_ColWidth(1,1000);
	m_FlexGrid.put_TextMatrix(0,2,_T("Product ID"));
	m_FlexGrid.put_ColWidth(2,1000);

	m_FlexGrid.put_TextMatrix(0,3,_T("Floor"));
	m_FlexGrid.put_ColWidth(3,1300);

	m_FlexGrid.put_TextMatrix(0,4,_T("Room"));
	m_FlexGrid.put_ColWidth(4,1300);

	m_FlexGrid.put_TextMatrix(0,5,_T("Product Name"));
	m_FlexGrid.put_ColWidth(5,1400);

	CString strSql;
	strSql.Format(_T("select * from ALL_NODE where MainBuilding_Name = '%s'and Building_Name='%s'"),m_strMainBuilding,m_strSubNetName);
	m_pRs->Open((_variant_t)strSql,_variant_t((IDispatch *)m_pCon,true),adOpenStatic,adLockOptimistic,adCmdText);			
	m_nTotalRecoders=m_pRs->RecordCount;
	m_FlexGrid.put_Rows(m_pRs->RecordCount+1);	
	int temp_row=0;
	CString str_temp;
	str_temp.Empty();
	_variant_t temp_variant;
	while(VARIANT_FALSE==m_pRs->EndOfFile)
	{	
		temp_variant=m_pRs->GetCollect("Product_class_ID");//
		if(temp_variant.vt!=VT_NULL)
			m_strID=temp_variant;
		else
			m_strID=_T("");
		if(_wtoi(m_strID)==100)// not include NC
		{
				m_pRs->MoveNext();
				continue;
		}
			

		++temp_row;
	
		
		m_FlexGrid.put_TextMatrix(temp_row,0,_T("Select"));

		temp_variant=m_pRs->GetCollect("Serial_ID");//
		if(temp_variant.vt!=VT_NULL)
			m_strID=temp_variant;
		else
			m_strID=_T("");
		m_FlexGrid.put_ColAlignment(1,4);
		m_FlexGrid.put_TextMatrix(temp_row,1,m_strID);
	
		temp_variant=m_pRs->GetCollect("Product_ID");//
		if(temp_variant.vt!=VT_NULL)
			m_strID=temp_variant;
		else
			m_strID=_T("");
		m_FlexGrid.put_ColAlignment(2,4);
		m_FlexGrid.put_TextMatrix(temp_row,2,m_strID);
		temp_variant=m_pRs->GetCollect("Floor_name");//
		if(temp_variant.vt!=VT_NULL)
			m_strID=temp_variant;
		else
			m_strID=_T("");
		m_FlexGrid.put_ColAlignment(3,4);
		m_FlexGrid.put_TextMatrix(temp_row,3,m_strID);

		temp_variant=m_pRs->GetCollect("Room_name");//
		if(temp_variant.vt!=VT_NULL)
			m_strID=temp_variant;
		else
			m_strID=_T("");
		m_FlexGrid.put_ColAlignment(4,4);
		m_FlexGrid.put_TextMatrix(temp_row,4,m_strID);
		
			temp_variant=m_pRs->GetCollect("Product_name");//
		if(temp_variant.vt!=VT_NULL)
			m_strID=temp_variant;
		else
			m_strID=_T("");
		m_FlexGrid.put_ColAlignment(5,4);
		m_FlexGrid.put_TextMatrix(temp_row,5,m_strID);
		m_pRs->MoveNext();
	}
	m_pRs->Close();
}
Exemplo n.º 18
0
std::string OHTTPPost(const std::string &url, 
                      const std::vector<std::pair<std::string, std::string>> &postArgs,
                      std::function<void(long, std::string)> onError)
{
    HRESULT hr;
    CComPtr<IXMLHTTPRequest> request;

    hr = request.CoCreateInstance(CLSID_XMLHTTP60);
    if (postArgs.empty())
    {
        hr = request->open(_bstr_t("GET"),
                           _bstr_t(url.c_str()),
                           _variant_t(VARIANT_FALSE),
                           _variant_t(),
                           _variant_t());
        hr = request->send(_variant_t());
    }
    else
    {
        hr = request->open(_bstr_t("POST"),
                           _bstr_t(url.c_str()),
                           _variant_t(VARIANT_FALSE),
                           _variant_t(),
                           _variant_t());
        std::string args;
        bool first = true;
        for (auto &kv : postArgs)
        {
            if (first)
            {
                first = false;
                args += kv.first + "=" + kv.second;
            }
            else
            {
                args += "&" + kv.first + "=" + kv.second;
            }
        }
        request->setRequestHeader(_bstr_t("Content-type"), _bstr_t("application/x-www-form-urlencoded"));
        request->setRequestHeader(_bstr_t("Content-length"), _bstr_t(std::to_string(args.size()).c_str()));
        hr = request->send(_variant_t(args.c_str()));
    }

    if (hr != S_OK)
    {
        if (onError)
        {
            onError(0, "error");
        }
        return "";
    }

    // get status - 200 if succuss
    long status;
    hr = request->get_status(&status);
    if (hr != S_OK)
    {
        if (onError)
        {
            onError(0, "error");
        }
        return "";
    }

    // Load the text
    BSTR bstrResponse = NULL;
    request->get_responseText(&bstrResponse);
    std::wstring wret = bstrResponse;
    if (bstrResponse) SysFreeString(bstrResponse);
    std::string ret = onut::utf16ToUtf8(wret);

    if (status == 200)
    {
        return ret;
    }
    else
    {
        if (onError)
        {
            onError(status, ret);
        }
        return "";
    }
}
Exemplo n.º 19
0
void CASXMLSchemaModel::IncludeSchema(Element* mergeDocumentElement)
{
//	CComPtr<ILDOMDocument> ownerDocument;
//	mergeDocumentElement->get_ownerDocument(&ownerDocument);

	Node* child = mergeDocumentElement->get_firstChild();
	while (child != NULL)
	{
		Node* nextSibling = child->get_nextSibling();

		Element* element = dynamic_cast<Element*>(child);
		if (element)
		{
			String tagName = element->get_tagName();

			if (tagName == L"include")
			{
				ASSERT(0);
#if 0
				CComObject<CASXMLInclude>* pEl;
				CComObject<CASXMLInclude>::CreateInstance(&pEl);
				if (pEl)
				{
					pEl->AddRef();
					pEl->m_pSchema = this;
					pEl->m_element = element;

					CComObject<CASXMLSchemaModel>::CreateInstance(&pEl->m_asModel);
					if (pEl->m_asModel)
					{
						pEl->m_asModel->AddRef();

						m_globalElements->m_items.Add(pEl);

						CComBSTR schemaLocation;
						element->getAttribute(L"schemaLocation", &schemaLocation);

						TCHAR absSchemaLocation[2048];
						{
							CComBSTR documentUrl;
							ownerDocument->get_url(&documentUrl);

							_bstr_t baseUrl = documentUrl;

							DWORD resultLen = sizeof(absSchemaLocation);
							InternetCombineUrl(baseUrl, _bstr_t(schemaLocation), absSchemaLocation, &resultLen, 0);
						}

						bool bloadedSchema;
						pEl->m_asModel->m_xmlDocument.CoCreateInstance(CLSID_LDOMDocument);
						pEl->m_asModel->m_xmlDocument->load(_variant_t(absSchemaLocation), &bloadedSchema);
						if (bloadedSchema)
						{
							CComPtr<ILDOMElement> mergeDocumentElement;
							pEl->m_asModel->m_xmlDocument->get_documentElement(&mergeDocumentElement);
							if (mergeDocumentElement)
							{
								m_asModels->m_items.Add(pEl->m_asModel);

							//	AddDocument(schemadoc);
								IncludeSchema(mergeDocumentElement);	// Recurse
							}
							else
							{
								MessageBox(NULL, "Failed to include schema", "", MB_OK);
							}
						}
						else
						{
							MessageBox(NULL, "Failed to include schema", "", MB_OK);
						}
					}
				}
#endif
			}
			else
			{
				CDefinition/*CDefinition*/ * pDef = CreateDefinition(element);
				if (pDef)
				{
					pDef->BuildDefs(element);

					m_globalDefs.m_defs.Add(pDef);
					m_globalElements->m_items.Add(dynamic_cast<IASDeclaration*>(pDef));
				}
				//m_schemaElement->appendChild(element, NULL);
			}
		}

		child = nextSibling;
	}
}
Exemplo n.º 20
0
void IllusionExcelFile::SetCellWidth(int width){
	excel_current_range_.put_ColumnWidth(_variant_t((long)width));
}
Exemplo n.º 21
0
WordDoc::WordDoc(Word::_ApplicationPtr pApp, const CStdString& sDoc)
{
	m_pDoc = pApp->Documents->Open(&_variant_t(sDoc.c_str()));
	pApp->Visible = VARIANT_TRUE;
}
Exemplo n.º 22
0
extern "C" __declspec(dllexport) bool PinToStartMenu4XP(bool bPin, char* szPath)
{
	//TSAUTO();

	TCHAR file_dir[MAX_PATH + 1] = {0};
	TCHAR *file_name;
	wchar_t* pwstr_Path = AnsiToUnicode(szPath);
	if(pwstr_Path == NULL){
		return false;
	}

	wcscpy_s(file_dir,MAX_PATH,pwstr_Path);
	PathRemoveFileSpecW(file_dir);
	file_name = PathFindFileName(pwstr_Path);
	::CoInitialize(NULL);
	CComPtr<IShellDispatch> pShellDisp;
	CComPtr<Folder> folder_ptr;
	CComPtr<FolderItem> folder_item_ptr;
	CComPtr<FolderItemVerbs> folder_item_verbs_ptr;


	HRESULT rv = CoCreateInstance( CLSID_Shell, NULL, CLSCTX_SERVER,IID_IDispatch, (LPVOID *) &pShellDisp );
	do 
	{
		IF_FAILED_OR_NULL_BREAK(rv,pShellDisp);
		rv = pShellDisp->NameSpace(_variant_t(file_dir),&folder_ptr);
		IF_FAILED_OR_NULL_BREAK(rv,folder_ptr);
		rv = folder_ptr->ParseName(CComBSTR(file_name),&folder_item_ptr);
		IF_FAILED_OR_NULL_BREAK(rv,folder_item_ptr);
		rv = folder_item_ptr->Verbs(&folder_item_verbs_ptr);
		IF_FAILED_OR_NULL_BREAK(rv,folder_item_verbs_ptr);
		long count = 0;
		folder_item_verbs_ptr->get_Count(&count);
		for (long i = 0; i < count ; ++i)
		{
			FolderItemVerb* item_verb = NULL;
			rv = folder_item_verbs_ptr->Item(_variant_t(i),&item_verb);
			if (SUCCEEDED(rv) && item_verb)
			{
				CComBSTR bstrName;
				item_verb->get_Name(&bstrName);

				if ( VerbNameMatch(bstrName,bPin) )
				{
					TSDEBUG4CXX("Find Verb to Pin:"<< bstrName);
					int i = 0;
					do
					{
						rv = item_verb->DoIt();
						TSDEBUG4CXX("Try Do Verb. NO." << i+1 << ", return="<<rv);
						if (SUCCEEDED(rv))
						{
							::SHChangeNotify(SHCNE_UPDATEDIR|SHCNE_INTERRUPT|SHCNE_ASSOCCHANGED, SHCNF_IDLIST |SHCNF_FLUSH | SHCNF_PATH|SHCNE_ASSOCCHANGED,
								pwstr_Path,0);
							Sleep(500);
							delete [] pwstr_Path;
							::CoUninitialize();
							return true;
						}else
						{
							Sleep(500);
							rv = item_verb->DoIt();
						}
					}while ( i++ < 3);
						
					break;
				}
			}
		}
	} while (0);
	delete [] pwstr_Path;
	::CoUninitialize();
	return false;
}
Exemplo n.º 23
0
void write(std::string filename)
{
    clock_t t1 = clock();

    std::cout << "writing " << filename;

    DeleteFileA(filename.c_str());

    if(FAILED(::CoInitialize(NULL))) return;

    _ConnectionPtr pCon = NULL;
    _CommandPtr pCmd = NULL;
    _RecordsetPtr pRec = NULL;

    try
    {
        _bstr_t connStr(makeConnStr(filename).c_str());

        TESTHR(pCon.CreateInstance(__uuidof(Connection)));
        TESTHR(pCon->Open(connStr, "", "", NULL));

        TESTHR(pCmd.CreateInstance(__uuidof(Command)));
        pCmd->ActiveConnection = pCon;
        pCmd->CommandText = "CREATE TABLE MySheet(A int, B varchar, C int, D int, E int, F int, G int, H int, I int, J varchar)";
        pCmd->Execute(NULL, NULL, adCmdText);

        TESTHR(pRec.CreateInstance(__uuidof(Recordset)));
        pRec->Open("SELECT * FROM MySheet", _variant_t((IDispatch*)pCon), adOpenKeyset, adLockOptimistic, adCmdText);

        for(int i = 0; i < writeRows; ++i)
        {
            TESTHR(pRec->AddNew());

            char str[11] = {0}; for(int j = 0; j < 10; ++j) str[j] = 'a' + (rand() % 26);

            pRec->Fields->GetItem("A")->Value = _variant_t(i);
            pRec->Fields->GetItem("B")->Value = _variant_t(str);
            pRec->Fields->GetItem("C")->Value = _variant_t(i);
            pRec->Fields->GetItem("D")->Value = _variant_t(i);
            pRec->Fields->GetItem("E")->Value = _variant_t(i);
            pRec->Fields->GetItem("F")->Value = _variant_t(i);
            pRec->Fields->GetItem("G")->Value = _variant_t(i);
            pRec->Fields->GetItem("H")->Value = _variant_t(i);
            pRec->Fields->GetItem("I")->Value = _variant_t(i);
            pRec->Fields->GetItem("J")->Value = _variant_t(str);
        }
        TESTHR(pRec->Update());
        TESTHR(pRec->Close());
    }
    catch(_com_error &e)
    {
        _bstr_t bstrDescription(e.Description());
        CharToOem(bstrDescription, bstrDescription);
        std::cout << bstrDescription << std::endl;
    }

    if(pCon != 0 && pCon->State == adStateOpen) pCon->Close();
    ::CoUninitialize();

    clock_t t2 = clock();
    double t = (double)(t2 - t1) / CLOCKS_PER_SEC;
    std::wcout << ": " << t << " sec; " << writeRows * 10 / t << " cells/sec" << std::endl;
}
void CNetworkControllView::OnEnKillfocusIdaddressEdit()
{	
	m_nSerialNum=get_serialnumber();
	CString strSerialNum;
	strSerialNum.Format(_T("%d"), m_nSerialNum);

	CString strModbusID;
	m_idEdt.GetWindowText(strModbusID);
	strModbusID.Trim();
	if(strModbusID.IsEmpty())
		return;
	int nID=_wtoi(strModbusID);
	if(nID<=0||nID>=255)
	{
	//	AfxMessageBox(_T("Please input a correct ID!"));
		return;
	}
	if(g_tstat_id==nID)
		return;
	_ConnectionPtr m_pConTmp;
	_RecordsetPtr m_pRsTemp;
	m_pConTmp.CreateInstance("ADODB.Connection");
	m_pRsTemp.CreateInstance("ADODB.Recordset");
	m_pConTmp->Open(g_strDatabasefilepath.GetString(),"","",adModeUnknown);
	
	CString strSql;
	strSql.Format(_T("select * from ALL_NODE where Product_ID ='%s'"),strModbusID);
	m_pRsTemp->Open((_variant_t)strSql,_variant_t((IDispatch *)m_pConTmp,true),adOpenStatic,adLockOptimistic,adCmdText);
	if(m_pRsTemp->GetRecordCount()>0)
	{
		while(VARIANT_FALSE==m_pRsTemp->EndOfFile)
		{			
			CString strSID=m_pRsTemp->GetCollect("Serial_ID");
			CString strPID=m_pRsTemp->GetCollect("Product_ID");
		
			if( strSID.CompareNoCase(strSerialNum)!=0 && strPID.CompareNoCase(strModbusID)==0 )
			{
				CString strPop;
				strPop.Format(_T("There is another device(Serial#=%s) has the ID ='%s', Please input a new one!"), strSID, strModbusID);
				AfxMessageBox(strPop);
				if(m_pRsTemp->State)
					m_pRsTemp->Close();		
				return;	

			}

			m_pRsTemp->MoveNext();
		}
	}

	if(m_pRsTemp->State)
		m_pRsTemp->Close();
	int nRet=0;
	nRet=write_one(g_tstat_id, 6,nID);
	if(nRet>0)
	{
		g_tstat_id=nID;
		CString strSerial;
		strSerial.Format(_T("%d"),m_nSerialNum);
		strSerial.Trim();
		strSql.Format(_T("update ALL_NODE set Product_ID ='%s' where Serial_ID ='%s'"),strModbusID,strSerial);
		m_pConTmp->Execute(strSql.GetString(),NULL,adCmdText);
	
	}
	if(m_pConTmp->State)
		m_pConTmp->Close();
	CMainFrame* pPraent=(CMainFrame*)GetParent();
	pPraent->ScanTstatInDB();
	Fresh();

}
Exemplo n.º 25
0
void CMyExcel::GetRange(CString strBegin,CString strEnd)
{
	MyRange=MySheet.GetRange(_variant_t(strBegin),_variant_t(strEnd));
}
Exemplo n.º 26
0
void	ADOCommand::append( const _RecordsetPtr recordset )
{
	if( FAILED( m_command->GetParameters()->Append( _variant_t( ( IDispatch* )recordset, true ) ) ) ) {
		assert( 0 );
	}
}
/* Called when an instrument is dragged and dropped from the 
 * Market Grid in X_TRADER.
 */
void CProfitLossDialog::CDropHandlerSink_NotifyDrop(const CDropHandlerSink* pSink)
{
	m_StatusBar = (LPCSTR)"Drag & Drop detected.  Initializing instrument...";

	// Call after updating the AFX_DATA fields
	UpdateData(false);

	try
	{
		// Obtain the number of instruments dropped.
		long instrCount = m_pDropHandler->Obj()->Count;

		//Only support a maximum of four instruments
		if (instrCount > 4)
		{
			instrCount = 4;
		}

		for (long i = 0; i < instrCount; i++)
		{
			// Destroy the TTInstrObj objects if they exist.
			if (m_pInstrObj[i])
			{
				// Remove the instrument and reset the alias
				m_pInstrNotify->Obj()->DetachInstrument(m_pInstrObj[i]);
				m_pInstrObj[i]->Alias = "";
				m_pInstrObj[i] = NULL;
			}

			VARIANT vTmp;
			VariantInit(&vTmp);  

			// Obtain the TTInstrObj from the TTDropHandler object.
			// The index for the drop handler begins at 1.
			if (SUCCEEDED(m_pDropHandler->Obj()->get_Item(_variant_t(i + 1), &vTmp)))
			{
				_variant_t vInstr;
				vInstr.Attach(vTmp);

				// Assign the instrument from what was passed through the drop handler
				m_pInstrObj[i] = XTAPI::ITTInstrObjPtr(vInstr);

				// Attach the TTInstrObj to the TTInstrNotify object.
				if (FAILED(m_pInstrNotify->Obj()->AttachInstrument(m_pInstrObj[i])))
				{
					MessageBox("TTInstrObj could not be attached to the notifier.", "Error", MB_ICONERROR | MB_OK);
					return;
				}

				// Cast the index to a CString to use in the Alias
				CString strAlias;
				strAlias.Format("%d", i);

				// Set the TTInstrObj Alias to the index for identification
				m_pInstrObj[i]->Alias = (_bstr_t)strAlias;

				// Open the TTInstrObj.
				if (FAILED(m_pInstrObj[i]->Open(false)))
				{
					MessageBox("TTInstrObj could not be opened.", "Error", MB_ICONERROR | MB_OK);
					return;
				}
			}
		}

		// Reset the drop handler object
		if (FAILED(m_pDropHandler->Obj()->Reset()))
		{
			MessageBox("TTDropHandler could not be reset.", "Error", MB_ICONERROR | MB_OK);
			return;
		}
	}
	catch (_com_error err)
	{
		MessageBox(err.Description(), (LPCSTR)"Exception", 0);
	}
}
Exemplo n.º 28
0
void	ADOCommand::set_active_connection( const _ConnectionPtr connection )
{
	m_command->PutActiveConnection( _variant_t( ( IDispatch* )connection, true ) );
}
Exemplo n.º 29
0
	long  SmtAnnoFclsAdoLayer::UpdateFeature(const SmtFeature *pSmtFeature)
	{
		long lRet = SMT_ERR_NONE;
		//////////////////////////////////////////////////////////////////////////
		//db
		SmtFeature *pSmtFea = m_pMemLayer->GetFeature();
		if (NULL != pSmtFea)
		{
			char szSQL[TEMP_BUFFER_SIZE];
			sprintf_s(szSQL,TEMP_BUFFER_SIZE,"select * from %s where ID = %d;",m_szLayerTableName,pSmtFea->GetID());
			if (m_SmtRecordset.Open(szSQL))
			{
				m_SmtRecordset.MoveFirst();
				if (m_SmtRecordset.IsOpen() && !m_SmtRecordset.IsEOF() && m_SmtRecordset.GetRecordCount() == 1)
				{
					int  nGridID = 0;
					char szAnnoBuf[TEMP_BUFFER_SIZE];
					int  nClr = 0;
					double fAngle = 0.;

					Envelope env;
					const SmtGeometry *pGeom = pSmtFeature->GetGeometryRef();
					const SmtAttribute *pAtt = pSmtFeature->GetAttributeRef();
					const SmtStyle	*pStyle = pSmtFeature->GetStyle();

					pGeom->GetEnvelope(&env);

		
					m_SmtRecordset.PutCollect("ID",_variant_t(pSmtFeature->GetID()));
					m_SmtRecordset.PutCollect("mbr_xmin",_variant_t(env.MinX));
					m_SmtRecordset.PutCollect("mbr_ymin",_variant_t(env.MinY));
					m_SmtRecordset.PutCollect("mbr_xmax",_variant_t(env.MaxX));
					m_SmtRecordset.PutCollect("mbr_ymax",_variant_t(env.MaxY));
					m_SmtRecordset.PutCollect("grid_id",_variant_t(nGridID));
					//////////////////////////////////////////////////////////////////////////
					lRet = AppendStyle(pStyle);

					//////////////////////////////////////////////////////////////////////////
					lRet = AppendGeom(pGeom);

					//////////////////////////////////////////////////////////////////////////
					const SmtField *pFld = NULL;

					pFld = pAtt->GetFieldPtr(pAtt->GetFieldIndex("anno"));
					sprintf(szAnnoBuf,pFld->GetValueAsString());
					m_SmtRecordset.PutCollect("anno",_variant_t(szAnnoBuf));

					pFld = pAtt->GetFieldPtr(pAtt->GetFieldIndex("color"));
					nClr = pFld->GetValueAsInteger();
					m_SmtRecordset.PutCollect("color",_variant_t(nClr));

					pFld = pAtt->GetFieldPtr(pAtt->GetFieldIndex("angle"));
					fAngle = pFld->GetValueAsDouble();
					m_SmtRecordset.PutCollect("angle",_variant_t(fAngle));

					if (!m_SmtRecordset.Update()) 
					{
						SMT_SAFE_DELETE(pSmtFeature);
						return SMT_ERR_DB_OPER;
					}

					//mem
					m_pMemLayer->UpdateFeature(pSmtFeature);
					CalEnvelope();
				}
			}
		}

		return lRet;
	}
Exemplo n.º 30
0
INT CADOParameters::Add(SHORT sValue)
{
	return Add(_variant_t(sValue));
}