📄 adodatagridview.cpp
字号:
// 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 + -