1. '1' -> *ON 
    '0' -> *OFF

2. Indicator position
   CHAIN : HI
   LOOKUP : EQ
   READ : EQ

3.DSPFD显示PF的member个数,Format Identifier,trigger等等,DSPFFD显示PF的列名之类
DSPFD FILE(TEST)
DSPFFD FILE(TEST)

4.RTVCLSRC

5.查看LF的source位置
DSPOBJD

6.spool file

全部用户的spool file  WRKSPLF SELECT(*all)

全部用户的joblog  WRKSPLF SELECT(*ALL *ALL *ALL *ALL *ALL QPJOBLOG)

某个用户 WRKSPLF SELECT(USER) 2=Change CHGSPLFA  里面可以查到该joblog number1

某个用户的某个batch job WRKSPLF SELECT(USER *ALL *ALL JOBNAME)

7.dump
H DEBUG
QTEMP里面的program不起作用

8.FTP
ftp ipaddress
>BIN
>NAMEFMT 0
>quo site namefmt 1
>GET TLIB/TEST TLIB/TEST(REPLACE

9.upload csv file from PC to iSeries

CRTPF FILE(TLIB/TEST) SRCFILE(TLIB/SRC)
CLRPFM FILE(TLIB/TEST)
 ===> CPYFRMIMPF FROMSTMF("/qdls/TEST.CSV") TOFILE(TLIB/TEST) MBROPT(*ADD) RCDDLM(*CRLF) STRDLM(*NONE) FLDDLM(',')   
有字段包含"使得导入后数据错误,可以用txt文本
 ===> CPYFRMIMPF FROMSTMF('QDLS/TEST.txt') TOFILE(TLIB/TEST) MBROPT(*ADD) RCDDLM(*CRLF) STRDLM(*NONE) FLDDLM(*TAB) RPLNULL VAL(*FLDDFT)      
                                                                  
10.查看版本
DSPSFWRSC
 (Display Software Resources)
按F11看 5722999 的 Release 版本   VXRXM0 LXX

11.执行SQL文本
RUNSQLSTM SRCFILE(CNZHENGPH/QRPGLESRC) SRCMBR(SQLTXT)

12.*LDA
There is a special Data Area known as the LDA (Local Data Area). It is 1024 characters and is associated with a job. So, any display session has an LDA associated with it.
 Not only that, when a job is submitted to run in batch, the LDA gets sent with the job so the batch job can read the LDA of the display session that submitted it.
DSPDTAARA *LDA
CHGDTAARA DTAARA(*LDA (1 10)) VALUE('AA12345678')

13.当PF的related LF被locked的时候,不需要用DSPDBR查找出全部LF来用WRKOBJLCK命令,用DSPRCDLCK的话就可以了
WRKOBJLCK OBJ(TABLE) OBJTYPE(*FILE)
DSPRCDLCK FILE(TABLE)

14.Shift+F9可以print out当前src file下所有member到spool file里去
WRKOBJPDM LIB(QXMLDEV400) OBJ(QCLSRC) 
enter 12
Shift+F9

15.用WRKMSGF命令查看MSG File需要message id,可以用DSPMSGD把全部message内容output到spool file里去
DSPMSGD RANGE(*ALL) DETAIL(*BASIC) OUTPUT(*PRINT)
CRTPF FILE(TLIB/TEST) RCDLEN(200) 
CPYSPLF FILE(QPMSGD) TOFILE(TLIB/TEST) SPLNBR(1)

16.UPDDTA FILE(*LIBL/TEST)
   按F23就可以delete record
  

17.查看database name
WRKRDBDIRE

18.jdbc
tibcosoftwareinc.jdbc.db2.DB2Driver
jdbc:tibcosoftwareinc:db2://ip:446;databaseName=S65B798E;

19.QPSRVDMP        
S=>dump

20.AS400 host server

pc call as400 program WRKACTJOB SBS(QUSRWRK) JOB(QZRCSRVS)

1 )Central server

·Central server 主要完成两项任务:

a) 许可管理(License management ),处理Data Transfer 或PC5250 发出的请求,为ClientAccess Express 用户保存一个许可。

b) 获得相应的转换表。

·与Central server 相关的OS/400 程序名:

Central server 对应的程序名  程序名 库名 描述  QZSCSRVS QSYS Server program  QZSCSRVSD QSYS Daemon program    图表 6 Central server 对应的程序名  2 )Database server

·Database server 用于实现客户端对DB2/400 数据库的访问,它提供以下功能:

a) 支持远程SQL 访问;

b) 通过ODBC 接口访问数据;

c) 数据库功能(例如:创建、删除、增加和删除数据库文件的成员)

d) 提供用于获得OS/400 中数据库文件信息的函数

·与Database server 相关的OS/400 程序名:

Database server 对应的程序名  程序名 库名 描述  QZDASOINIT QSYS Server program  QZDASON2  QSYS Sockets setup program  QZDASRVSD QSYS Daemon program  QZDASSINIT QSYS SSL server program    图表 7 Database server 对应的程序名

3 )Data queue server

·Data queue server 用于实现PC 应用程序与OS/400 上Data queue 之间的数据通讯。

·与Data queue server 相关的OS/400 程序名:

Data queue server 对应的程序名  程序名 库名 描述  QZHQSSRV QSYS Server program  QZHQSRVD  QSYS Daemon program    图表 8 Data queue server 对应的程序名

4 )File server

·File server 用于实现客户端访问OS/400 中的集成文件系统(IFS ),集成文件系统支持对流文件的访问,它的存储管理与PC 机和UNIX 操作系统相似。

·与File server 相关的OS/400 程序名:

File server 对应的程序名  程序名  库名 描述  QPWFSERVSO QSYS *PGM Server program  QPWFSERVS2 QSYS *PGM Server program  QPWFSERVSD QSYS *PGM Daemon program  QPWFSERV QSYS *JOBD Job description used for server jobs  QPWFSERVER QSYS *CLS Class used for all file server and database server jobs  QPWFSERVSS QSYS *PGM SSL server program    图表 9 File server 对应的程序名

5 )Network print server

·Network print server 能够让客户端的用户使用OS/400上的打印资源进行打印。

·与Network print server 相关的OS/400程序名:

Network print server 对应的程序名  程序名 库名 描述  QNPSERVS QSYS Server program  QNPSERVD QSYS Daemon program    图表 10 Network print server 对应的程序名

6 )Remote command/program call server

·Remote command/program call server 能够让客户端的用户或应用程序执行OS/400 上的CL 命令或调用OS/400 上的程序。

·与Remote command/program call server 相关的OS/400 程序名:

Remote command/program call server 对应的程序名  程序名 库名 描述  QZRCSRVS QSYS Server program  QZRCSRVSD QSYS Daemon program    图表 11 Remote command/program call server 对应的程序名

7 )Signon server

·Signon server 对客户端的用户的身份进行安全检查(包括用户名、口令等)。

·与Signon server 相关的OS/400 程序名:

Signon server 对应的程序名  程序名 库名 描述  QZSOSIGN QSYS Server program  QZSOSGND QSYS Daemon program    图表 12 Signon server 对应的程序名

8 )Server mapper

·Server mapper 用于响应客户端的应用对服务器服务所使用的端口查询。

·与Server mapper 相关的OS/400 程序名:

Server mapper 对应的程序名  Program name Library Description  QZSOSMAPD QSYS Server port mapper program    图表 13 Server mapper 对应的程序名

2.2.5.服务表(SERVICE TABLE )

Host Server 中的每中服务都有其自己的Daemon 作业,Daemon 作业监听响应的端口,下图表14 列出了服务与端口的对应关系。

Service table  服务名 描述 端口号  AS-CENTRAL Central server 8470  AS-DATABASE Database server 8471  AS-DTAQ Data queue server 8472  AS-FILE File server 8473  AS-NETPRT Network print server 8474  AS-RMTCMD Remote command/program call 8475  AS-SIGNON Signon server 8476  AS-SVRMAP Server mapper 449    图表 14 Service table

若适用SSL(安全套接字),则采用其它端口号,如图表15 所示。

Service table (SSL)  服务名 描述 端口号  As-central-s Secure Central server 9470  As-database-s Secure Database server 9471  as-dtaq-s  Secure Data queue server 9472  as-file-s Secure File server 9473  as-netprt-s Secure Network print server 9474  As-rmtcmd-s Secure Remote command/program call server 9475  As-signon-s Secure Signon server 9476    图表 15 Service table (SSL)

2.2.6.显示和修改服务表

从OS/400 命令WRKSRVTBLE 查看服务名和它对应的端口号,如图表16 所示:

WRKSRVTBLE  图表 16 WRKSRVTBLE

可以用命令ADDSRVTBLE 和RMVSRVTBLE 修改服表。

启动和停止Host Server

Host Server 安装完成后,下一步的工作是启动它。

21.IFS folder
PC Function   Server Name Port Non-SSL Port SSL
IFS Access using
System i Navigator  as-file  8473  9473

CHGAUT   
Every once in a while, we encounter users that are unable to map a drive to the IFS.  We do the normal troubleshooting:
 ?Does the user have permissions to the IFS directory and share
 ?Is the IFS shared out correctly
 ?Is the User Profile disabled
 
After completing those basic reviews, everything looks as though the user should have no problem, however they are still unable to map the drive to the IFS.
 
Unfortunately (well as far as I know anyway), there is another place to look¡­ the iSeries NetServer disabled UserIDs.  The images below explain how to access a list of User Profiles that the system has disabled from accessing system resources over TCP/IP using iSeries Navigator.
 1.Connect to your server through iSeries Navigator
 2.Expand Network
 3.Expand Servers
 4.Select TCP/IP
 5.Right-Click iSeries NetServer
 6.Select the UserIDs that you would like to re-enable
 7.Click the [Enable User ID] button

===> CPYFRMIMPF FROMSTMF('/QDLS/TEST.csv') TOFILE(TLIB/TEST) MBROPT(*REPLACE) RCDDLM(*CRLF) RPLNULLVAL(*FLDDFT)

===> CPYTOIMPF FROMFILE(TLIB/TEST) TOSTMF('/QDLS/TEST.csv') RCDDLM(*CRLF) DTAFMT(*DLM) STRDLM(*NONE) RMVBLANK(*NONE)

没有双引号,没有多余空格RMVBLANK(*NONE)

===> CPYTOIMPF FROMFILE(TLIB/TEST *FIRST) TOSTMF('qdls/aa.csv') MBROPT(*REPLACE) STMFCCSID(*PCASCII) RCDDLM(*CRLF) DTAFMT(*DLM) STRDLM( *NONE) RMVBLANK(*TRAILING ) ADDCOLNAM(*SYS)

when *none for CPYTOSTMF , not allow to override existing file Monitor the error message to generate multiple files in the folder

MONMSG     MSGID(CPDA090 CPFA097 CPF9999) EXEC(GOTO CMDLBL(CRTFILE))

ERRRCDFILE parameter in CPYFRMIMPF command
ERRRCDFILE(TLIB/ERRORPF)

>User not enrolled in system distribution directory.                                                
===> ADDDIRE USRID(QDLSUSER SYSNAME) USRD(DESCRIPTION) USER(CNYEAB)

22.change user password
WRKUSRPRF

23.save file

CRTSAVF FILE(CNZHENGPH/PBSAVF)  SAVLIB LIB(CNZHENGPH@) DEV(*SAVF) SAVF(CNZHENGPH/PBSAVF)

24.change owner

 CHGOWN for IFS file
    CHGOBJOWN  for library

25.PF to spool file
 RUNQRY QRYFILE((TLIB/TEST TEST)) OUTTYPE(*PRINTER)

26.disk space
 DSPLIB OUTPUT(*PRINT)
 sbmjob cmd(rtvdskinf)
 时间很久。。。
 
 prtdskinf rpttype(*lib)
 QUSRSYS/QAEZDISK

CREATE TABLE EDLIB/EDDISKDATA (LIBRARY_NAME ,
OBJECT_COUNT , TOTAL_OBJECT_SIZE , DATE) AS
(SELECT diobli, count(diobnm), sum(diobsz), current date
FROM qusrsys/qaezdisk  WHERE diobli <> ' '
GROUP BY diobli ORDER BY diobli)
WITH NO DATA

27.java

/qopensys/QIBM/ProdData/JavaVM/jdk60
From qsh or qp2term, run java -version.

28.Work with Submitted Jobs
WRKSBMJOB

29.message queue
WRKMSGQ MSGQ(TLIB/MSGQ)    
SNDMSG MSG(HELLO) TOMSGQ(MSGQ)  
SNDMSG MSG(HELLO) TOMSGQ(MSGQ) MSGTYPE(*INQ) RPYMSGQ(TLIB/MSGQ)

===> CHGMSGQ MSGQ(QSYS/TEST) 
 Work station message queue TESTnot allocated to job.
 ===> ALCOBJ OBJ((QSYS/TEST*MSGQ *EXCL *N))
 Message queue TESTis allocated to another job.
 
  CRTMSGQ MSGQ(QUSRSYS/TEST)
 Grant authority to this message queue

30.wrksyssts

31.WRKACTJOB SEQ(*CPUPCT)

32.wrklnk 'qdls'
CRTDIR DIR('/qdls/temp')

33.test
C* Below just for testing , should comment it                              
C                   MOVEL     STR2          @SHOWS           50            
C     @SHOWS        DSPLY                                                  
C*

34.xml

RUNSQLSTM SRCFILE(QXMLDEV400/QCLSRC) SRCMBR(ADRESSBK) NAMING(*SQL) TIBCO
XML400ADDR
QXMLDEV400
QXMLTOOLSCreate the two DB2 tables needed by the program:
RUNSQLSTM SRCFILE(QXMLDEV400/QCLSRC) SRCMBR(ADRESSBK) NAMING(*SQL)
Create the two modules needed to run the program:
CRTSQLRPGI OBJ(<yourlibrary>/RPGDB2SAMP) SRCFILE(QXMLDEV400/QRPGLESRC) OBJTYPE(*MODULE)
CRTRPGMOD MODULE(<yourlibrary>/VECTORPROC) SRCFILE(QXMLDEV400/QRPGLESRC)
Create the program by binding the two modules together with the XML4PR400 service program:
CRTPGM PGM(<yourlibrary>/RPGDB2SAMP) MODULE(<yourlibrary>/RPGDB2SAMP <yourlibrary>/VECTORPROC) BNDSRVPGM(QXMLTOOLS/QXML4PR400) crtrpgmod module(TIBCO/DOMPRINT) srcfile(qxmldev400/qrpglesrc)
crtpgm pgm(tibco/DOMPRINT) module(*pgm) bndsrvpgm(qxmltools/qxml4pr400) actgrp(*new) wrklnk '/qibm/proddata/xmltoolkit/xml4_0_0/samples/data/AddressBook.xml' <company>                                                    <product>XML for Procedural</product>                    <category idea='great'>XML Parsing Tools</category>      <developedBy>IBM Rochester<developedBy/>
</company>    call createxml '/qibm/proddata/xmltoolkit/xml4_0_0/samples/data/test.xml'
call domprint   '/qibm/proddata/xmltoolkit/xml4_0_0/samples/data/personal.xml'

35.IFS code page
CHGATR OBJ('/qdls/temp/test.CSV') ATR(*CCSID) VALUE(37)
CHGATR OBJ('/qdls/temp/test.CSV') ATR(*PCARCHIVE) VALUE(*NO)  
wrklnk 'qdls/temp'
8=Display attributes

36.Debug batch job

HLDJOBQ JOBQ(QGPL/QBATCH)
submit job
STRSRVJOB JOB(018240/USER/TEST)
STRDBG PGM(TEST) UPDPROD(*YES)
F21=Command entry
RLSJOBQ JOBQ(QGPL/QBATCH)
F10
dspmodsrc
SET BREAKPOINT...
F3
F12
enter
debug...
ENDDBG
ENDSRVJOBACTGRP(*CALLER) DEBUG(*YES) OPTION(*NODEBUGIO:*SRCSTMT)          1. 以HOLD(*YES)参数提交JOB 到QBATCH JOB 中,让JOB 暂时挂起;
2. 使用WRKSBMJOB 查看所提交的JOB 的以下3 个参数值:
*Job id*User Name*Job Number3. 执行STRSRVJOB,填入第2 步骤获得的3 个参数进行QBATCH JOB 服务过程;(如果在同一个作业中进行,就不用填这3个参数了,道理和CPYSPLF一样,我自己的理解)
4. 执行STRDBG 开始DEBUG;
5. 利用F21 键切换到命令行,在命令行执行WRKSBMJOB,使用6=Release 释放挂起的第1 步骤提交的JOB,然后系统允许你按F10 输入DEBUG 命令(注意:不要键入执行,否则在设立断点之前键入执行,程序就会运行,因而无法进行debug 断点设置);
6. 在OS/400 命令行窗口;执行DSPMODSRC 后,可通过F6 设置断点;然后按F3 退出,再按F12 退出命令行;
7. 键入执行释放挂起的JOB;程序将在断点中停留;可以使用交互式DEBUG 使用DEBUG
命令进行处理
8. 一旦程序或者JOB 结束,使用ENDDBG 和ENDSRVJOB 结束操作。

37.

Z-ADD   :数值型的附值语句(Z-ADD A   B相当于 B=A)
MOVEL :移动数据语句 MOVEL A   B 是把A的值从左边开始送到B中。
MOVE: 功能于MOVEL类似,区别在于它是从右边开始传送。
MOVEL (P):MOVEL和MOVE的操作在把短的传到长的中时,并不会覆盖其余的部分,因此,   加一个扩展功能用的P来表明操作要覆盖其余的部分。
SUB:数值类型的减操作
ADD:加操作
MULT:乘操作
DIV:除操作
MVR:除之后的取余操作
BEGSR:子过程开始
ENDSR:子过程结束
EXSR: 调用子过程
EXFMT:画面记录的显示操作命令
WRITE:写文件记录的操作
UPDAT:更新文件当前记录
DELET:删除文件当前记录
READ:读文件操作(顺序读)
READE:按键值顺序读文件的下一条
READP:向前读文件的一条记录
REDPE:按键值向前读文件的一条记录
CHAIN:随机检索与键值相同的记录
SETLL:文件指针定位操作,所停的位置在小于等于指定键值的前面。
SETGT:文件指针定位操作,所停的位置在等于大于指定键值的后面。
DOWXX (XX=GT, LT, EQ, LE, GE):当循环(XX=大于,小于,等于,小于等于,大于等于)
DOUXX (XX=GT, LT, EQ, LE, GE):直到循环(XX=大于,小于,等于,小于等于,大于等于)
ITER:跳出本次循环(DO),进行下一次循环
LEAVE:结束整个循环,进行循环下面的语句
IFXX (XX=GT, LT, EQ, LE, GE):条件判断(XX=大于,小于,等于,小于等于,大于等于)
SELEC:分支条件开始语句
WHXX (XX=GT, LT, EQ, LE, GE):各个分支的条件判断语句(XX=大于,小于,等于,小于等 于,大于等于)
OTHER:SELECT部分中所有WHEN条件均不成立时执行的部分(可以省略)
ENDXX (IF, DO, SL):循环和分支结构的结束标志语句。
SETON/OFF:将指示器的值设置为 1或 0
PLIST:参数列表名称的定义
PARM:各个参数的定义
KLIST:键值列表名称的定义
KFLD:键值中的各个键域的定义。
CLEAR:清除某个字段或数据域的值。
TIME:取得系统当前的日期或时间================
ITER:跳出本次循环(DO),进行下一次循环
LEAVE:结束整个循环,进行循环下面的语句
================
READ:读文件操作(顺序读)
READE:按键值顺序读文件的下一条
READP:向前读文件的一条记录
REDPE:按键值向前读文件的一条记录
CHAIN:随机检索与键值相同的记录
SETLL:文件指针定位操作,所停的位置在小于等于指定键值的前面。
SETGT:文件指针定位操作,所停的位置在等于大于指定键值的后面。

38..net call as400 program
  odbc & oledb
  call qsys.qcmdexc('DSPUSRPRF USRPRF(testtst) ',0000000026.00000)

Function MakekRunCommand(ByVal X As String) As String
        Dim l As Integer = X.Length
        Dim dl As Integer = CStr(l).Length
        Return "call qsys.qcmdexc('" & X & "'," & Mid("0000000000", 1, 10 - dl) & CStr(l) & ".00000" & ")"
 End Function

C:\Program Files (x86)\IBM\Client Access\Shared\cwbx.dll

cwbx.StringConverter sc = new cwbx.StringConverter();
cwbx.PackedConverter pc = new cwbx.PackedConverter();
AS400System s = new AS400System();
s.Define("AS400");
s.IPAddress = "ip";
s.UserID = "user";
s.Password = "123456";
cwbx.Program p = new cwbx.Program();
p.system = s;
p.LibraryName = "TLIB";
p.ProgramName = "GETDATA";
ProgramParameters paras = new ProgramParameters();
paras.Append("@TM", cwbrcParameterTypeEnum.cwbrcOutput, 9);
paras["@TM"].Value = sc.ToBytes("23533");
paras.Append("@Data", cwbrcParameterTypeEnum.cwbrcOutput, 22);
p.Call(paras);
string data2 = sc.FromBytes(paras["@Data"].Value);

转载于:https://www.cnblogs.com/sui84/archive/2013/04/07/6777210.html

AS400一些有用的命令相关推荐

  1. Unix / 类 Unix shell 中有哪些很酷很冷门很少用很有用的命令?(转)

    著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:孙立伟 链接:http://www.zhihu.com/question/20140085/answer/14107336 ...

  2. linux find 多路径,linux多路径几个比较有用的命令

    几个比较有用的命令 1.start/stop multipathd process "service multipathd start/stop" 2.display the mu ...

  3. ansible-plabybook 常用的有用的命令

    ansible-plabybook 常用的有用的命令 ansible-playbook常用的非常有用的参数有: -C ,大写c ,这个命令的意思就是模拟执行,会告诉你跑完这个playbook会发生什么 ...

  4. 关于latex简历几个非常有用的命令

        大家知道latex是最好的排版系统,用来写论文,排版非常漂亮,用来做简历可以提升逼格,下面介绍几个有用的命令 几个有用的命令 section.cventry.cvitem.cvlistit ...

  5. Linux 新手非常有用的命令

    http://www.cnblogs.com/felix-/p/4341773.html Linux 新手非常有用的命令 你打算从Windows换到Linux上来,还是你刚好换到Linux上来?哎哟! ...

  6. jrockit_JRockit – JRCMD有用的命令

    jrockit 自2007年以来,我一直在使用JRockit.我发现它的速度比Hotspot慢,但在诊断和分析问题上总是更好. 从去年夏天开始,我一直在为一家国际电信系统供应商工作. 我们在HP Op ...

  7. JRockit – JRCMD有用的命令

    自2007年以来,我一直在使用JRockit.我发现它比Hotspot速度慢,但在诊断和分析问题上总是更好. 从去年夏天开始,我一直在为一家国际电信系统供应商工作. 我们在HP OpenCall Co ...

  8. Linux中几个你不常用,但却很有用的命令

    点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 每天 14:00 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java ...

  9. android有用的命令

    转载请指明出处:草帽的后花园 文件1:下载 Android Tools详解 aapt aapt即Android Asset Packaging Tool , 在SDK的platform-tools目录 ...

最新文章

  1. Linux中的输入输出管理
  2. zookeeper服务发现实战及原理--spring-cloud-zookeeper源码分析
  3. lisp求面与面的差集_AcGeVector3d是点阵的集合,通过等分点的差集得到。 新的点可以通过点与点阵相差得......
  4. Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
  5. 交换机配置——VTP管理交换机的VLAN配置
  6. 几种常见软件过程模型的比较
  7. arcgisengine计算线要素总长度_ArcGIS |如何利用一个工具快速计算城市道路网密度...
  8. java案例代码21-电影院购票系统[重要]
  9. 防止恶意登录的设计思路
  10. 机器换人是走向智能制造的必然过程,那么机器人的价值主要体现在哪些方面?
  11. TwinCAT 3 报警程序
  12. Facebook新闻摘要算法是怎样的
  13. 小程序微商城-商铺管理后台
  14. 沉睡者IT - 抖音中视频计划赚钱项目初级教程
  15. 生物素标记甾体化合物/多杀菌素探针分子/壳聚糖/聚乙二醇偶连基团为华生物提供
  16. 科林明伦杯哈尔滨理工大学第九届程序设计竞赛
  17. 希捷移动硬盘Backup Plus Portable初始化及加密
  18. 湖南师范大学计算机专业研究生读几年,湖南师范大学计算机专业在职研究生培养方式是怎样的?...
  19. Internet安全协议 学习笔记
  20. 基于android的智能锁,android实现基于多级安全机制的蓝牙智能门锁源码

热门文章

  1. F12 开发人员工具调试 HTML 和 CSS
  2. antd pro使用iconfont
  3. Android6下的视频播放器,MePlayer视频播放器
  4. .net c# 修改视频md5
  5. 年会弹幕文字_企业年会节目(精华版)
  6. 泛微OA ecology8的一些开发经验汇总
  7. 微信小程序 - Unhandled promise rejection TypeError: r.Canvas is not a constructor
  8. 现代电信交换【复习上课时的习题】
  9. 湖南省公务员考试计算机专业,湖南公务员考试专科专业分类目录_学科指导目录...
  10. DNS协议及域名解析过程(每个域名服务器都负责管理下一级域名服务器,保证域名的唯一性)