1,178
社区成员
发帖
与我相关
我的任务
分享
DB_RET __fastcall TdbmGlobal::DBGetUserAccByName(char* User,char *strAcc)
{
int len=strlen(User);
char *pBuffE=new char[len*2+2];
char *pBuffD=new char[len*2+2];
//加密字串
GEncryObj->GetEStrByPassKey8(User,len,pBuffE);
DB_RET Ret;
UnicodeString Sql;
Sql="SELECT OPR_ACC FROM OPERATORS WHERE (OPR_NAME = \'"+UnicodeString(pBuffE)+"\')";
qryGetUserAccByName->SQL->Clear();
qryGetUserAccByName->SQL->Add(Sql);
qryGetUserAccByName->Open();
if(qryGetUserAccByName->RecordCount<1)
{
//没有此用户
Ret=DB_ERR_USER;
}
else
{
strcpy(pBuffE,qryGetUserAccByName->FieldByName("OPR_ACC")->AsString.t_str() );
int nLen=strlen(pBuffE);
//解密字串
GEncryObj->GetDStrByPassKey8(pBuffE,nLen,pBuffD);
strcpy(strAcc,pBuffD);
Ret=DB_ERR_OK;
}
qryGetUserAccByName->Close();// 到了这里就报错,ShowMessage(exception.Message)="Invalid Pointer Operation";
delete []pBuffE;
delete []pBuffD;
return Ret;
}
//经过摸索,这样不会出错.
DB_RET __fastcall TdbmGlobal::DBGetUserAccByName(char* User,AnsiString &strAcc)
{
int len=strlen(User);
char *pBuffE=new char[len*2+2];
char *pBuffD=new char[len*2+2];
//加密字串
//GEncryObj->GetEStrByPassKey8(User,len,pBuffE);
DB_RET Ret;
AnsiString Sql;
Sql="SELECT OPR_ACC FROM OPERATORS WHERE (OPR_NAME = '2714c01bc69d3909')";
//Sql="SELECT OPR_ACC FROM OPERATORS WHERE (OPR_NAME = \'"+AnsiString(pBuffE)+"\')";
qryGetUserAccByName->SQL->Clear();
qryGetUserAccByName->SQL->Add(Sql);
qryGetUserAccByName->Open();
if(qryGetUserAccByName->RecordCount<1)
{
//没有此用户
Ret=DB_ERR_USER;
}
else
{
char AAAA[256];
strcpy(AAAA,qryGetUserAccByName->FieldByName("OPR_ACC")->AsString.c_str() );
//int nLen=strlen(pBuffE);
//解密字串
//GEncryObj->GetDStrByPassKey8(pBuffE,nLen,pBuffD);
strAcc =AAAA;
Ret=DB_ERR_OK;
}
qryGetUserAccByName->Close();
delete []pBuffE;
delete []pBuffD;
return Ret;
}
//但是这样做就会出错.
DB_RET __fastcall TdbmGlobal::DBGetUserAccByName(char* User,AnsiString &strAcc)
{
int len=strlen(User);
char *pBuffE=new char[len*2+2];
char *pBuffD=new char[len*2+2];
//加密字串
//GEncryObj->GetEStrByPassKey8(User,len,pBuffE);
DB_RET Ret;
AnsiString Sql;
Sql="SELECT OPR_ACC FROM OPERATORS WHERE (OPR_NAME = '2714c01bc69d3909')";
//Sql="SELECT OPR_ACC FROM OPERATORS WHERE (OPR_NAME = \'"+AnsiString(pBuffE)+"\')";
qryGetUserAccByName->SQL->Clear();
qryGetUserAccByName->SQL->Add(Sql);
qryGetUserAccByName->Open();
if(qryGetUserAccByName->RecordCount<1)
{
//没有此用户
Ret=DB_ERR_USER;
}
else
{
char AAAA[256];
strcpy(pBuffE,qryGetUserAccByName->FieldByName("OPR_ACC")->AsString.c_str() );
//int nLen=strlen(pBuffE);
//解密字串
//GEncryObj->GetDStrByPassKey8(pBuffE,nLen,pBuffD);
strAcc ="asdf";
Ret=DB_ERR_OK;
}
qryGetUserAccByName->Close();
delete []pBuffE;
delete []pBuffD;
return Ret;
}