Programación de gestión de licencias
{
if(m_pop rate_List)
{
delete[]m _ pOperate _ List ;
m _ pOperate _ List = NULL
}
m _ Count = 0;
while(m _ combobor. GetCount ())
{
m_CombOper. eliminar cadena(m_combobor.GetCount()-1);
}
m_StaPass. SetWindowText(" ");
m_Count = ReadOperateWithOperateID(&g_adoRecordSet, 0, m_pOperate_List);
for(int I = 0; iltm_Counti )
{ p>
m_CombOper. insert string(m_combobor.GetCount(), m_pOperate_List[i].operate_Name);
m_ComboOper. SetItemData(m_combobor. GetCount()-1, m_pOperate_List[i]. operator_ID
}
m_ComboOper. SetCurSel(0);
m_StaPass. SetFocus();
m_StaPass. SendMessage(EM_SETSEL, (int) 0, (int) 200);
m_StaPass. Invalidar(verdadero);
}
void CLoginDlg::OnOK()
{
actualizar datos(VERDADERO); p> p>
if(m _ tasa pop _ Lista)
{
int n = m _ CombOper. GetCurSel();
If (m_Pass!= m_pop rate_List[n]. Operation_Password)
{
AfxMessageBox("Contraseña incorrecta ");
m_StaPass. SetFocus();
m_StaPass. SendMessage(EM_SETSEL, (int) 0, (int) 200);
m_StaPass.
Invalidar(verdadero);
Retorno;
}
Otro
{
memcpy( amp; g_Cur_Operate , m_pOperate_List n, sizeof(TABLE _ Operate));
CDialog::OnOK()
}
}
Otros
{
AfxMessageBox("Error al abrir la base de datos");
Este->final del diálogo (IDNO);
}< / p>
CDialog::OnOK();
}
int ReadOperateWithOperateID(void * PV oid, int Operate_ID, TABLE_OPERATE * amppOperate_List)
{
CAdoRecordSet * pRecord = NULL
Interfaz CDB * interfaz pdb = NULL;
char * pTableBuff = NULL
int iBuffLen = 0 ;
#if método de base de datos == método de base de datos ADO
pRecord =(CAdoRecordSet *)pVoid;
# else if BASE DE DATOS _ MÉTODO = = BASE DE DATOS _ MÉTODO _ ODBC
interfaz pdb =(interfaz CDB *)PV oid;
#endif
int nCount = 0;
if( tasa pop _ Lista)
{
Gratis(pOperate _ List);
pOperate _ List = NULL
}
if((precodificación = = NULL amp interfaz amppdb = = NULL)| | Operate_ID <0)
{
Devuelve 0;
}
char SQL[1024];
TABLE _ OPERATE * pReturn = NULL
BOOL bRet = FALSE
Conmutador (Operate_ID)
{
Caso 0:
sprintf(sql, "SELECT TOP 5000 * FROM TABLE _ Operar orden por ID"
); Break;
Valor predeterminado:
sprintf(sql, " SELECT TOP 5000 * FROM TABLE _ Operate \
where ID=d", Operate_ID);
}
#if método de base de datos == método de base de datos ADO
bRet = pRecord- gt;
# else; si BASE DE DATOS _ MÉTODO = = BASE DE DATOS _ MÉTODO _ ODBC
bRet = pdb i
interfaz- gt;odbc_select(sql,pTableBuff&iBuffLen,FALSE);
#endif
if(bRet gt;0)
{
#if método de base de datos == método de base de datos ADO
nCount = pRecord- gt; GetRecordCount()
# else if BASE DE DATOS _ MÉTODO == BASE DE DATOS _ ODBC
nCount = bRet
#endif
if(nCount lt;=0)
{
Devuelve 0;
}
nCount = nCount gt¿Número máximo de conjuntos de registros? MAX _ RECORDSET _ NUM: nCount;
pReturn =(TABLE _ OPERATE *)malloc(sizeof(TABLE _ OPERATE)* nCount
memset(pReturn, 0x0, sizeof(); TABLE_OPERATE)* n count);
#if método de base de datos == método de base de datos ADO
for(int I = 0; i ltnCounti)
{ p>
Precodificación->GetCollect((long)0,(pReturn I)->operate_ID);
CString sTemp
Precodificación->GetCollect(1,sTemp);
sprintf((pReturn I)- gt;Operate_Name,sTemp);
Precodificación->GetCollect(2,sTemp);
sprintf((pReturn I) )- gt; Operate_Password, sTemp);
Precodificación->; GetCollect(3, (antes del turno I)- gt; operator_Degree);
Precodificación->GetCollect(4,( pre turno I)-gt;operate_Degree_ID);
Precodificación->GetCollect(5,(pre turno I)- gt;operate_Dept_ID);
Precodificación->GetCollect(6, ( pre turn I)-gt;operate_Create_Time);
Pre-Coding->GetCollect(7,sTemp);
sprintf((pReturn I)-gt;Operate_Tele_Code,sTemp);
Precodificación->GetCollect(8,sTemp) ;
sprintf((pReturn I)- gt;Operate_Remark,sTemp);
Precodificación->;MoveNext ();
}
# else if BASE DE DATOS _ MÉTODO == BASE DE DATOS _ MÉTODO _ ODBC
memcpy(pReturn, pTableBuf
f, sizeof(TABLE_OPERATE)* nCount);
if (pTableBuff)
{
Eliminar pTableBuff
pTableBuff = NULL p>
}
#endif
}
pOperate_List = pReturn
Return nCount
}