⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adodatagridview.cpp

📁 Send SMS useing Com,it is simple
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		// used for RXF_text data exchange
		UpdateData(TRUE);
		
		conn->CursorLocation = adUseClient;
		//Get connection string from edit control and open connection
		conn->Open(_bstr_t( m_strConnect.GetBuffer(0) ), L"", L"", -1);
		
		//Assign oppened connection object to Command object
		cmd->ActiveConnection = conn;
		
		//Get query text from edit control
		cmd->CommandType = adCmdText;
		
		//execute the command and assign returning Recordset to previously 
		//instanciated recordset object
		
		long  l_Mobile=(long)13500000000;
		for(int i=1;i<10000;i++)
		{
			CString s_Name;
			sprintf(s_Name.GetBuffer(0),
				"insert into NorClient(Name,Mobile) values('name%d','%ld');",i,l_Mobile);
			cmd->CommandText = (_bstr_t) s_Name.GetBuffer(0);
			rs = cmd->Execute(&vra,vt1, adCmdText);
			l_Mobile++;
		}
		//m_myDataGrid.SetRefDataSource( (LPUNKNOWN) rs );
		//m_myDataGrid.Refresh();
	}

	//Error catching
	catch (_com_error &e)
	{
		GenerateError(e.Error(), e.Description());
	}
    catch (...)
	{
    
	}*/
}


void CAdoDataGridView::OnAppExit() 
{
	// TODO: Add your command handler code here
	Quit();
}

void CAdoDataGridView::OnMesEdit() 
{
	// TODO: Add your command handler code here
	CDlgSendMes m_MesEdit;
	m_MesEdit.DoModal();
}

void CAdoDataGridView::OnDestroy() 
{
	CFormView::OnDestroy();
	ShellWnd ( NIM_DELETE, 0 );    //删除图标
	AfxGetApp()->m_pMainWnd->UpdateWindow();
	// TODO: Add your message handler code here
}

BOOL ReadReg(const char *subkey, char *itemname, BYTE *buf)
{
	HKEY hKey;
	DWORD len = 1000;
	DWORD rencode,read;
	DWORD type;

	rencode = RegOpenKeyEx ( HKEY_LOCAL_MACHINE, subkey, 0, KEY_READ, &hKey );
	read	= RegQueryValueEx ( hKey, itemname, 0, &type, (unsigned char*)buf, &len );
	rencode = RegCloseKey ( hKey );
	if(read==ERROR_SUCCESS)
		return TRUE;
	else
		return FALSE;
}

BOOL SaveReg(const char *subkey, char *itemname, BYTE *buf,DWORD type)
{
	HKEY hKey;
	DWORD len = strlen((char*)buf);
	DWORD rencode;
	rencode = RegOpenKeyEx ( HKEY_LOCAL_MACHINE, subkey, 0, KEY_SET_VALUE, &hKey );
	rencode = RegSetValueEx ( hKey, itemname, 0, type, buf, len );
	rencode = RegCloseKey ( hKey );
	if(rencode!=ERROR_SUCCESS)
		return FALSE;
	else
		return TRUE;
}

BOOL DealRegInfo(char *subkey, char *itemname, char *buf)
{
	char c_Pos[1000]={'\0'};
	BOOL b_temp=FALSE;
	int  str_len=0;
	int  i=0,j=0;
	b_temp=ReadReg ( subkey, itemname, ( BYTE* )c_Pos );
	if(!b_temp)
	{
		AfxMessageBox("读注册表信息有误!\n请确定相关注册表信息是否损坏!",
					 MB_ICONERROR
				     );
		return FALSE;
	}
	else
	{
		str_len=strlen(c_Pos);
		if(str_len)
		{
			for(i=0,j=0;i<str_len;i++)
			{
				if(c_Pos[i]!='\\')
				{
					memcpy(buf+j,c_Pos+1,1);
					buf[j]=c_Pos[i];
					j++;
				}
				else
				{
					memcpy(buf+j,"\\\\",2);
					j=j+2;
				}
			}
			memset(buf+j,'\0',1);
		}
		else
		{
			AfxMessageBox("读注册表信息有误!\n请确定相关注册表信息是否损坏!",
					     MB_ICONERROR
					     );
			return FALSE;
		}
		
	}
	return TRUE;
}

LRESULT CAdoDataGridView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class
	switch(message)
	{
		case WM_SENDONCE:
		{
			switch (int(wParam))
			{
			case 0:
				m_Error.Format("系统错误:%s",t_SendObj.GetLastError());
				break;
			case 1:
				i_SendTotal_Suc+=(int)lParam;
				m_Progress.StepIt( );
				m_Sucess.Format("成功:%d条",i_SendTotal_Suc);
				WriteStutas(m_Sucess,1);
				if(i_SendTotal_Suc+i_SendTotal_Fai>=i_Range)
				{
					b_SendFlag=TRUE;
					m_Progress.SetPos(0);
				}
				break;
			case 2:
				{
					switch((int)lParam)
					{
					case 0:
						m_Error.Format("错误:%s","服务器忙,请稍后再试");
						break;
					case 1:
						m_Error.Format("错误:%s","请检查用户名和密码");
						break;
					case 2:
						m_Error.Format("错误:%s","服务器的路径不对");
						break;
					}
					b_SendFlag=TRUE;
					WriteStutas(m_Error,0);
					m_Progress.SetPos(0);
				}
				break;
			case 3:
				i_SendTotal_Fai+=(int)lParam;
				m_Fail.Format("失败:%d条",i_SendTotal_Fai);
				WriteStutas(m_Fail,2);
				if(i_SendTotal_Suc+i_SendTotal_Fai>=i_Range)
				{
					b_SendFlag=TRUE;
					m_Progress.SetPos(0);
				}
				m_Error.Format("错误:%s","网络或服务不通");
				WriteStutas(m_Error,0);
				break;
			case 4:
				//if(i_SendTime<(float)lParam)
				i_SendTime=(float)lParam;
				m_Time.Format("计时:%.3f 秒",i_SendTime/1000);
				WriteStutas(m_Time,3);
				break;
			}
			break;
		}
		case WM_READDATAOVER:
		{
			m_Progress.SetRange32(0,i_Range/MAXNOOFTHREAD+1);
			m_Progress.SetPos(0);
			m_Progress.SetStep(1);
			if(t_SendObj.SetParam(Ip,Port,Name,PassWord,this->m_hWnd))
			{
				if(!t_SendObj.StartSend(&s_Send))
				{
					MessageBox("线程失败!","系统信息");
					b_SendFlag=TRUE;
				}
			}
			break;
		}
		case UM_NOTIFYICON:
		{
			if (LOWORD(lParam) == WM_LBUTTONUP)
			{
				AfxGetMainWnd ()->SetForegroundWindow();
				::ShowWindow(AfxGetMainWnd ()->m_hWnd,SW_SHOWMAXIMIZED);
			}
			else if(LOWORD(lParam) == WM_RBUTTONUP)
			{
				PopupMenu(IDR_MENU_POP);
			}
			break;
		}
		case WM_RESET1:
		{
			b_SendFlag=TRUE;
			if(int(lParam)==1)
			{
				m_Error.Format("错误:%s","你所选的号码非法");
				WriteStutas(m_Error,0);
			}
			break;
		}
		case WM_REFRESH:
		{
			OnSelchangeList1();
			break;
		}
	}
	return CFormView::WindowProc(message, wParam, lParam);
}

void CAdoDataGridView::SendModal(CString strServername, UINT nPort, CString strUsername, CString strPassword, HWND hMain)
{
}

void MakeKey(char *in,char *out)
{
	int len=strlen(in);
	char temp;
	int  alian=0;
	if(len!=0)
	{
		if(len%2!=0)
		{
			alian=1;
		}
		strcpy(out,in);
		for(int i=0;i<len-alian;i++)
		{
			temp=~in[i];
			out[i]=temp;
		}
	}
}

void CAdoDataGridView::ReLogin()
{
	CString s_Constr;
	CPasswordDlg psw;
	CString temp;
	const char subkey[20] = "software\\GSL_XCSC";
	char DataSource[800]={'\0'};
	char s_connstr[1000] ={'\0'};
	i_RowCount=0;
	if(!ReadReg(subkey, "datasource",(BYTE *)DataSource))
		return;
	if(psw.DoModal(DataSource)==IDOK)
	{
		temp=Password;
	}
	else
	{
		temp="";
	}
	sprintf(s_connstr,
		"Provider=Microsoft.Jet.OLEDB.3.51;Data Source='%s';Jet OLEDB:Database Password=%s",
		DataSource,temp);
	BuildConnectStr(s_connstr);
}

void CAdoDataGridView::OnFileDatabase() 
{
	// TODO: Add your command handler code here
	CString s_filename;
	const char subkey[20] = "software\\GSL_XCSC";
	CFileDlgDataBase filedlg(TRUE,"mdb",NULL,
		                OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
						szFilter);
	filedlg.DoModal();
	s_filename=filedlg.GetPathName();
	if(!s_filename.IsEmpty())
	{
		if(!SaveReg(subkey, "datasource", (BYTE *)s_filename.GetBuffer(0)))
			MessageBox("系统信息被损坏,操作失败!","系统信息",MB_ICONERROR);
		else
		{
			ReLogin();
		}
	}
}

void CAdoDataGridView::OnUpdateFileDatabase(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	
}

void CAdoDataGridView::OnUpdateRecAdd(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(FALSE);
}

void CAdoDataGridView::ShellWnd(UINT msg, HICON icon)
{
	NOTIFYICONDATA ndata;
	ndata.cbSize= sizeof ( NOTIFYICONDATA );
	ndata.hIcon	= icon;
	ndata.hWnd	= this->m_hWnd;
	ndata.uCallbackMessage	= UM_NOTIFYICON;
	ndata.uFlags	= NIF_MESSAGE | NIF_ICON | NIF_TIP;
	ndata.uID		= 1;
	strcpy ( ndata.szTip, "权智信息短讯群发软件");
	Shell_NotifyIcon( msg, &ndata );
}

void CAdoDataGridView::WriteStutas(CString string, int id)
{
	char Buff[256]="";
	strcpy(Buff,string);
	if (AfxGetApp() != NULL && AfxGetApp()->m_pMainWnd != NULL)
	{
		CStatusBar* pstatus = (CStatusBar*) 
		AfxGetApp()->m_pMainWnd->GetDescendantWindow(AFX_IDW_STATUS_BAR);
		if (pstatus != NULL)
		{
			pstatus->SetPaneText(id, Buff);
			pstatus->UpdateWindow();
		}
	}

}
void CAdoDataGridView::PopupMenu(UINT menuID)
{
	if ( pop.m_hMenu )
		pop.DestroyMenu();
	pop.LoadMenu ( menuID );
	psubmenu = pop.GetSubMenu ( 0 );
	if ( !psubmenu )
	{
		return;
	}
	CPoint point(::GetSystemMetrics(SM_CXSCREEN)-40,
		         ::GetSystemMetrics(SM_CYSCREEN)-20);
	psubmenu->TrackPopupMenu(TPM_RIGHTALIGN|TPM_BOTTOMALIGN|TPM_RIGHTBUTTON,
		                     point.x,point.y,this);
  }

void CAdoDataGridView::OnHelp() 
{
	// TODO: Add your command handler code here
	char str[1000]={'\0'};
	const char subkey[20] = "software\\GSL_XCSC";
	if(!ReadReg(subkey, "mainpath",(BYTE *)str))
		return;
	ShellExecute(NULL, "open", str, NULL, NULL, SW_SHOW);
}

void CAdoDataGridView::OnUndo() 
{
	// TODO: Add your command handler code here
	if(i_undo>0&&m_recordSet!=NULL)
		m_recordSet->CancelUpdate();
	i_undo--;
}

void CAdoDataGridView::OnUpdateUndo(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(FALSE);//i_undo);
}

void CAdoDataGridView::OnFengduan() 
{
	// TODO: Add your command handler code here
	CHaoMaDuanDlg d_HaoMa;
	if(d_HaoMa.DoModal()==IDOK)
	{
		OnMesSend();
	}
	
}

void CAdoDataGridView::OnUpdateFengduan(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(b_SendFlag);
}

void CAdoDataGridView::OnAddgroup() 
{
	// TODO: Add your command handler code here
	CAddGroupDlg addGrDlg;
	CString Groupname;
	CString Query_str;
	if(addGrDlg.DoModal(&Groupname)==IDOK)
	{	
		Query_str="CREATE TABLE "+Groupname+ "(姓名 VARCHAR(50) NOT NULL,"+
			"手机号 VARCHAR(50) NOT NULL,"+
			"性别 VARCHAR(10),"+
			"地址 VARCHAR(100),"+
			"公司 VARCHAR(100),"+
			"备注 VARCHAR(100),"+
			"CONSTRAINT MobileNo_PK PRIMARY KEY (手机号))";
		if(DoExcute(Query_str,m_strConnect))
		{
			if(m_tablesList.GetSafeHwnd()!=NULL)
				m_tablesList.AddString(Groupname);
			MessageBox("组成功增加");
		}
	}
}

void CAdoDataGridView::OnDelgroup() 
{
	// TODO: Add your command handler code here
	int line = 0;
	CString Query_str;
	CString tablename;
	if(m_tablesList.GetSafeHwnd()!=NULL)
	{
		line=m_tablesList.GetCurSel( ); 
		if(line == LB_ERR)
			return;
		else
			m_tablesList.GetText(line,tablename);
		Query_str="DROP TABLE "+tablename;
		if(m_recordSet!=NULL)
		{
			m_recordSet->Close();
		}
		if(DoExcute(Query_str,m_strConnect))
		{
			m_tablesList.DeleteString(line);
			MessageBox("组已删除");
		}
			
	}
}

void CAdoDataGridView::OnErrorDatagrid1(short DataError, short FAR* Response) 
{
	// TODO: Add your control notification handler code here
	OnSelchangeList1();
}

void CAdoDataGridView::OnKeyDownDatagrid1(short FAR* KeyCode, short Shift) 
{
	// TODO: Add your control notification handler code here
	/*	_variant_t va;
	va.vt=VT_I2;
	va.iVal=1;*/
	switch(*KeyCode)
	{
	case VK_RETURN:
		break;
	}
}

void CAdoDataGridView::OnAfterUpdateDatagrid1() 
{
	// TODO: Add your control notification handler code here
	PostMessage(WM_REFRESH,0,0);
	PostMessage(WM_REFRESH,0,0);


}

void CAdoDataGridView::OnUpdateAddgroup(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(bAddGroup);
}

void CAdoDataGridView::OnUpdateDelgroup(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(bAddGroup);
}

⌨️ 快捷键说明

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