MSSQL教程之在PowerBulider中读写IC卡
支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统在PowerBulider中读写IC卡在写相干的信息办理体系时,偶然会碰见读写相干的内部设备等成绩,这类的成绩,在PowerBulider中完成这类的功效并非一件难事,如今的相干内部设备厂商在供应产物时,基础都供应了相干编程接口,使用这些接口函数后ActiveX控件,分离PowerBulider中内部函数的挪用,能够轻松的完成相干功效,以下供应读写IC卡完成的基础代码,以期打消相干编程职员对读写内部设备等成绩的害怕心思
内部函数声明:
SubroutinePostPara(longprot,strigsyspara)library“lock739.dll”//传送参数,次要传送串口信息
FunctionlongReset()library“lock739.dll”//读写复位
FunctionBooleanOpenCom()library“lock739.dll”//翻开串口
SubroutineCloseCom()library“lock739.dll”//封闭串口
FunctionlongChkCard()library“lock739.dll”//反省卡是不是到位
FunctionlongCmpSc(stringsc)library“lock739.dll”//查对暗码
FunctionlongWriteSc(stringsc)library“lock739.dll”//修正加密卡暗码
FunctionlongReadSc(stringinbuff,longsclen)library“lock739.dll”//度曲加密卡暗码
FunctionlongRdDat(longcardtype,longstart,longilen,refstringinbuff)library“lock739.dll”//读卡信息
FunctionlongWrDat(longcardtype,longstart,longilen,refstringoutbuff)library“lock739.dll”//写卡信息
实例变量:
publicstringsc=’272272272’
写卡函数:wf_write(stringas_arg1,longal_start,longal_len)
/*参数stringas_arg1写进的字符串;
longal_start写进的地位
longal_len写进的长度*/
longl_rtn
ifopencom()=falsethen
messagebox(“提醒”,”串口毗连失利”)
return
endif
l_rtn=chkcard()
ifl_rtn0then
wf_errormessage(l_rtn)
closecom()
return
endif
l_rtn=cmpsc(sc)//sc为暗码
ifl_rtn0then
wf_errormessage(l_rtn)
closecom()
return
endif
l_rtn=wrdat(1,al_start,al_len,as_agr1)
ifl_rtn0then
wf_errormessage(l_rtn)
closecom()
return
endif
messagebox(“提醒”,”写卡乐成!”)
读卡函数:wf_read(stringas_arg1,longal_start,longal_len)
/*参数stringas_arg1保留读出信息的字符串;
longal_start入手下手读卡进的地位
longal_len读卡的长度*/
longl_rtn
ifopencom()=falsethen
messagebox(“提醒”,”串口毗连失利”)
return
endif
l_rtn=chkcard()
ifl_rtn0then
wf_errormessage(l_rtn)
closecom()
return
endif
l_rtn=rddat(1,al_start,al_len,as_agr1)
ifl_rtn0then
wf_errormessage(l_rtn)
closecom()
return
endif
messagebox(“提醒”,”读卡乐成!”)
显现毛病函数:wf_errormessage(longlerror)
choosecaselerror
case1
messagebox(“提醒”,”写进毛病或暗码毛病!”)
case2
messagebox(“提醒”,”卡已破坏或参数越界!“)
case3
messagebox(“提醒”,”请插卡!”)
case4
messagebox(“提醒”,”通信毛病!”)
caseelse
messagebox(“提醒”,”未知毛病!”)
endchoose
初始化卡函数wf_initialcard(longal_port)
/*参数:longal_port传进读写器利用的串口*/
psotpara(al_port,””)
以上的例子代码所利用的ic卡为sle4442加密存储器卡,读卡器为wb1000IC卡读写器
经由过程以上代码的示例,完成与内部设备的通信,并非一件很难的时吧?!
使为了数据安全,我们搭建了主从。但实时主从备份只能防止硬件问题,比如主库的硬盘损坏。但对于误操作,则无能为力。比如在主库误删一张表,或者一个update语句没有指定where条件,导致全表被更新。 数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。 如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。 having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。 比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。 这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。 这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。 多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。 比如日志传送、比如集群。。。
页:
[1]