Red de conocimiento informático - Conocimiento de la instalación - Programación de gestión de licencias

Programación de gestión de licencias

void CLoginDlg::InitDlgPara()

{

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 )

{

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>

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)

{

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

}

#endif

}

pOperate_List = pReturn

Return nCount

}