说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

大家请进来看看吧,我实在没有多少分了,火烧眉毛了!

编辑:说三道四文库 发布时间:2018-02-25 02:21
HTML文档下载 WORD文档下载 PDF文档下载
main()
{
int *booknum=new int[8],USERID;
memset(booknum,0,8);
booknum=iccard->GetCardNum();
sqlcommand->CommandText =AnsiString("select * from userinfo where cardNO=")+IntToStr(*booknum);
 bookdetail->Recordset=sqlcommand->Execute();
 userID=bookdetail->FieldByName ("idd")->AsInteger;
}
int  * IcCard::GetCardNum()
{int *p=new int[8];
 unsigned char icRead[100];
 int i;
   if (cpu_reset(icdev,icRead)!=0)//获取IC卡卡号的函数
      {ShowMessage(AnsiString("请插入IC卡!"));
       return NULL;
       }
   else
       {for(i=0;i<8;i++)//获取IC卡卡号
          p[i]=icRead[8+i];
          return p;
       }
 }
我的目的是调用这个getcardnum函数取得IC卡的卡号,然后在数据库的userinfo表中查找与这个卡号相同的idd的值,数据库中的cardno是varchar(10)类型的,请问我该怎样把int数组的值与数据库中cardno的值进行比较呢?
用strtoint(cardno)可以吗!
你把数据定义为char[8]
赋值时候把数字变成安符就可以了。
如果是10进制的值
          p[i]=icRead[8+i]+48;
如果是16进制的值
           if (icRead[8+i]>9)
          p[i]=icRead[8+i]+55;
else
          p[i]=icRead[8+i]+48;





你可以把读出的数字卡号转化成字符的就行了,再比较。
可以用 IntToStr();
也可以自己写一个的啊。
自定义一个比较两个int或char类型的函数,在把数据库里的CHAR类型转换成INT型或把INT型转换成CHAR型就行了。
可以使用
extern PACKAGE int __fastcall StrToInt(const AnsiString S);
将字符串变为整形,也可用
extern PACKAGE AnsiString __fastcall IntToStr(int Value);
extern PACKAGE AnsiString __fastcall IntToStr(__int64 Value);
将整体变为字符串型。
变后再进行比较就可以了。
分少了坚决不干,这个地方除了分我还需要什么?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘