CN106802817A - SQLite数据库的升级方法及装置 - Google Patents

SQLite数据库的升级方法及装置 Download PDF

Info

Publication number
CN106802817A
CN106802817A CN201611247296.2A CN201611247296A CN106802817A CN 106802817 A CN106802817 A CN 106802817A CN 201611247296 A CN201611247296 A CN 201611247296A CN 106802817 A CN106802817 A CN 106802817A
Authority
CN
China
Prior art keywords
data
tables
new field
database
default value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201611247296.2A
Other languages
English (en)
Inventor
符志清
谢春平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN201611247296.2A priority Critical patent/CN106802817A/zh
Publication of CN106802817A publication Critical patent/CN106802817A/zh
Priority to US15/855,220 priority patent/US20180189371A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/213Schema design and management with details for schema evolution support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种SQLite数据库的升级方法及装置,所述方法包括:判断源数据库中是否存在与目标数据库中的第一数据表的表名相同的第二数据表;如果是,则在所述源数据库中创建对应于所述第二数据表的映射数据表;查找所述第一数据表中的新增字段,并在所述映射数据表中创建字段名与该新增字段相同的映射字段;判断查找到的所述新增字段是否预配置主键约束以及默认值;如果是,则记录该新增字段的名称以及默认值;使用插入语句将所述第二数据表中存储的数据,以及记录的新增字段的名称以及默认值添加到所述映射数据表。使用本申请提供的方法可以有效地提高升级后的数据库与网络设备升级后的软件版本的兼容性。

Description

SQLite数据库的升级方法及装置
技术领域
本申请涉及计算机通信领域,尤其涉及SQLite数据库的升级方法及装置。
背景技术
随着信息技术和互联网技术的飞速发展,数据库因其突出的安全性、可靠性、可移植性和可维护性等优点,在各个领域得到了广泛的应用。
对于网络设备而言,通常情况下,网络设备系统的配置信息可以储存在该网络设备的数据库中。然而,网络设备在运行的过程中,由于增加新的功能或者对现有问题进行修复时,需要升级该网络设备的软件版本。在网络设备的软件版本升级后,如果随软件版本升级的数据库与升级后的软件版本不兼容,例如升级后的数据库中的某些具有主键约束的新增字段对应的取值不为默认值等,可能会造成该设备配置的紊乱,影响网络设备的运行。
发明内容
有鉴于此,本申请提供一种SQLite数据库的升级方法及装置,用以提高升级后的数据库与网络设备升级后的软件版本的兼容性。
具体地,本申请是通过如下技术方案实现的:
根据本申请第一方面,提供一种SQLite数据库的升级方法,所述方法应用于网络设备上的数据库升级客户端,所述网络设备上配置了对应于源软件版本的源数据库;以及对应于目标软件版本的目标数据库;当所述网络设备由源软件版本升级至目标软件版本,使用所述目标数据库中的配置数据对所述源数据库执行数据库升级时,所述方法包括:
判断源数据库中是否存在与目标数据库中的第一数据表的表名相同的第二数据表;
如果所述源数据库中存在与所述目标数据库中的第一数据表的表名相同的第二数据表,则在所述源数据库中创建对应于所述第二数据表的映射数据表;
查找所述第一数据表中的新增字段,并在所述映射数据表中创建字段名与该新增字段相同的映射字段;
判断查找到的所述新增字段是否预配置主键约束以及默认值;
如果查找到的新增字段预配置了主键约束以及默认值,则记录该新增字段的名称以及默认值;
使用插入语句将所述第二数据表中存储的数据,以及记录的新增字段的名称以及默认值添加到所述映射数据表。
根据本申请第二方面,提供一种SQLite数据库的升级装置,所述装置应用于网络设备上的数据库升级客户端,所述网络设备上配置了对应于源软件版本的源数据库;以及对应于目标软件版本的目标数据库;当所述网络设备由源软件版本升级至目标软件版本,使用所述目标数据库中的配置数据对所述源数据库执行数据库升级时,所述装置包括:
第一判断单元,用于判断源数据库中是否存在与目标数据库中的第一数据表的表名相同的第二数据表;
创建单元,用于如果所述源数据库中存在与所述目标数据库中的第一数据表的表名相同的第二数据表,则在所述源数据库中创建对应于所述第二数据表的映射数据表;
查找单元,用于查找所述第一数据表中的新增字段,并在所述映射数据表中创建字段名与该新增字段相同的映射字段;
第二判断单元,用于判断查找到的所述新增字段是否预配置主键约束以及默认值;
记录单元,用于如果查找到的新增字段预配置了主键约束以及默认值,则记录该新增字段的名称以及默认值;
插入单元,使用插入语句将所述第二数据表中存储的数据,以及记录的新增字段的名称以及默认值添加到所述映射数据表。
本申请提供一种SQLite数据库的升级方法,在升级过程中,数据库升级客户端可以记录查找到的具有主键约束的新增字段以及默认值,并可以使用插入语句将源软件版本配置的源数据库中的第二数据表中存储的数据,以及记录的具有主键约束的新增字段的名称以及默认值添加到源数据库中的映射数据表。
一方面,由于本申请提供的SQLite数据库的升级方法是在数据库升级的过程中,将具有主键约束的新增字段对应的默认值,通过插入语句,赋值给映射数据表中的该具有主键约束的新增字段,使得在数据库升级后,该具有主键约束的新增字段的取值为默认值,从而有效地解决了因升级后的具有主键约束的新增字段的取值不为默认值而造成的升级后的数据库与升级后软件版本不兼容的问题。
另一方面,当数据库完成升级后,该具有主键约束的新增字段的取值为默认值,从而使得在业务模块使用该具有主键约束的新增字段对应的配置数据时,可以直接获取该配置数据,而不需要再增加额外的补丁程序来获取该配置数据,因此,有效地提高了整个开发系统的效率,降低了编程的出错率。
附图说明
图1是本申请一示例性实施例示出的一种SQLite数据库的升级方法的流程图;
图2是本申请一示例性实施例示出的另一种SQLite数据库的升级方法的流程图;
图3是本申请一示例性实施例示出的一种SQLite数据库的升级装置所在设备的硬件结构图;
图4是本申请一示例性实施例示出的一种SQLite数据库的升级装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
随着信息技术和互联网技术的飞速发展,数据库因其突出的安全性、可靠性、可移植性和可维护性等优点,在各个领域得到了广泛的应用。
对于网络设备而言,通常情况下,网络设备系统的配置信息可以储存在该网络设备的数据库中。然而,网络设备在运行的过程中,由于增加新的功能或者对现有问题进行修复时,需要升级该网络设备的软件版本。
为了使得储存有配置信息的数据库与新升级的软件版本兼容,网络设备可以对该数据库进行升级。
在实现时,网络设备上可以配置对应于源软件版本的源数据库和对应于目标软件版本的目标数据库。当该网络设备由该源软件版本升级至该目标软件版本时,该网络设备可以用该目标数据库中的配置数据对该源数据库执行数据库升级操作。
在相关的针对SQLite数据库的升级方法的技术中,数据库升级客户端通可以分别扫描源数据库和目标数据库,判断源数据库中是否存在与目标数据库中第一数据表的表名相同的第二数据表。如果是,则在该源数据库中创建对应于该第二数据表的映射数据表。
数据库升级客户端可以将上述第一数据表中的所有字段与第二数据表中字段进行对比,如果上述第一数据表中存在相对于第二数据表的新增字段,数据库升级客户端设备可以在该映射数据表中创建字段名与该新增字段相同的映射字段。如果上述第一数据表中存在与第二数据表中字段名相同的原有字段,则可以在映射数据表中创建该原有字段,并将第二数据表中的该原有字段对应的数据写入映射数据表中的该原有字段对应的位置。
然而,当上述新增字段配置有主键约束以及默认值时,数据库升级客户端很难将第一数据表中该新增字段的默认值写映射数据表的该新增字段处。因为,数据库升级客户端在检测到具有主键约束的新增字段时,通常是基于自动累加的方法对映射数据表中的该具有主键约束的新增字段的取值进行赋值;
例如,当数据库升级客户端检测到第一个具有主键约束的新增字段时,可以将映射数据表中创建的该具有主键约束的新增字段的取值赋值为1。当数据库升级客户端检测到第二个具有主键约束的新增字段时,可以将映射数据表中创建的该具有主键约束的新增字段的取值赋值为2,以此类推。
下面以网络设备的系统升级后增加了虚拟系统为例,对针对新增字段配置有主键约束以及默认值所产生问题进行详细地说明。
假设,网络设备的源软件版本不支持虚拟系统,其配置属于公共系统(即虚拟系统ID为0)。在对该网络设备的源软件版本升级后,生成的目标软件版本中增加了支持虚拟系统的模块。而此时,在与源软件版本对应的源数据库进行升级时,需要增加具有主键约束的新增字段vsys_id,并且需要将该字段的取值设置为0。其目的在于,当完成数据库升级后,在配置升级后的公共系统(即虚拟系统ID为0)时,需要调用该vsys_id字段对应的数据表中储存的配置公共系统的配置数据进行配置。
然而,在SQLite数据库的升级方法,当网络设备检测到该具有主键约束的新增字段时,会基于自动累加的方式对该具有主键约束的新增字段赋值,假设该vsys_id为首个具有主键约束的新增字段,则该具有主键约束的新增字段的取值为1。由于该具有主键约束的新增字段vsys_id的取值赋值为1。当完成数据库升级后,在配置升级后的公共系统时,无法找到配置该公共系统的配置数据,而配置ID为1的虚拟系统时,所调用的配置数据确为上述vsys_id对应的数据表中记录的配置公共系统的数据,从而影响公共系统和虚拟系统的正常运行。
一些相关技术提出了针对上述问题的解决方案,解决方案如下:
相关技术1的解决方案:不再将上述具有主键约束的新增字段(如vsys_id字段)设置为主键,而作为普通的新增字段,在数据库升级时,基于该新增字段的默认值为该新增字段赋值。如果在升级后,使用到该具有主键约束的新增字段时,通过使用该字段的业务模块的程序,将该具有主键约束的新增字段作为主键使用。
然而,该方案中需要增加业务模块程序的复杂性,从而降低了程序地可读性,增加了编程出错的概率。
相关技术2的解决方案:在数据库升级时,新增一张用于存放非公共系统配置数据的数据表,该数据表不仅具有数据库升级前的源数据表中所有的字段,还具有新增字段,包括具有主键约束的新增字段。如果网络设备的业务模块需要使用该升级后的数据库中该具有主键约束的新增字段对应的配置数据时,该业务模块可以基于该具有主键约束的新增字段的取值是否为0来决定对哪张数据表进行操作。
然而,该方案同样增加了业务模块的编程复杂度。并且在需要显示公共系统以及所有的虚拟系统的配置数据时,要在两张表中分别查询数据,降低程序效率,提高编程出错的可能性。
相关技术3的解决方案:将具有主键约束的新增字段的默认值设置为一个非0的特殊值,该值不是用户配置时可配置的值(例如虚拟系统ID的合法范围为0~1023,该特殊值可以是1024)。然后在该业务模块配置恢复时,执行一个外挂补丁程序,用于检查该数据库表中该具有主键约束的新增字段的取值,若为该特殊值,则修改为0。
然而,该方案同样增加了该业务模块的编程复杂度。此外,为了正确升级而添加的这段外挂补丁程序,在该设备进行历次版本升级时只会用到一次(即从无该主键字段的版本升级到有该主键字段的版本会用到),其它版本之间升级(从有该主键字段的版本1升级到有该主键字段的版本2)时用不到该子程序,造成功能浪费。同时也降低了程序的可读性,提高了编程出错的可能性。
综上所述,以上方案共同的缺点是,在业务模块需要使用上述具有主键约束的新增字段对应的数据表中的配置数据时,业务模块的开发人员需要根据上述具有主键约束的新增字段不能为0的问题,自行开发相应地程序,获取其该业务模块需要的配置数据,因此大大增加了开发人员的负担,降低了整个系统开发的维护效率,提高了编程的出错率。
为了解决上述问题,本申请提供一种SQLite数据库的升级方法,在升级过程中,数据库升级客户端可以记录查找到的具有主键约束的新增字段以及默认值,并可以使用插入语句将源软件版本配置的源数据库中的第二数据表中存储的数据,以及记录的具有主键约束的新增字段的名称以及默认值添加到源数据库中的映射数据表。
一方面,由于本申请提供的SQLite数据库的升级方法是在数据库升级的过程中,将具有主键约束的新增字段对应的默认值,通过插入语句,赋值给映射数据表中的该具有主键约束的新增字段,使得在数据库升级后,该具有主键约束的新增字段的取值为默认值,从而有效地解决了因升级后的具有主键约束的新增字段的取值不为默认值而造成的升级后的数据库与升级后软件版本不兼容的问题。
另一方面,当数据库完成升级后,该具有主键约束的新增字段的取值为默认值,从而使得在业务模块使用该具有主键约束的新增字段对应的配置数据时,可以直接获取该配置数据,而不需要再增加额外的补丁程序来获取该配置数据,因此,有效地提高了整个开发系统的效率,降低了编程的出错率。
参见图1,图1是本申请一示例性实施例示出的一种SQLite数据库的升级方法的流程图,所述方法应用网络设备上的数据库升级客户端,所述方法具体包括如下所述步骤:
步骤101:判断源数据库中是否存在与目标数据库中的第一数据表的表名相同的第二数据表;
步骤102:如果所述源数据库中存在与所述目标数据库中的第一数据表的表名相同的第二数据表,则在所述源数据库中创建对应于所述第二数据表的映射数据表;
上述网络设备,泛指可以接入互联网的设备,可以包括转发设备,安全设备以及其他的包含使用SQLite数据库存储用户配置的计算机系统的设备等。
上述数据库升级客户端可以包括面向用户的数据库升级软件,该数据库升级软件为用户提供一个操作界面,用户可以通过该操作界面,输入相应的升级指令完成数据库的升级。
其中,承载上述数据库升级客户端的硬件环境,例如,可以是PC主机、移动终端或者服务器等。在本实施例中,不进行特别限定。
上述源数据库,是指对应于该网络设备的源软件版本配置的数据库,该源数据库中储存有第二数据表(即源数据表),该第二数据表中储存有若干个字段,以及与各个字段对应的数据。
上述目标数据库,是指对应于该网络设备的目标软件版本而配置的数据库,该目标数据库可以包括与上述第二数据表同名的第一数据表(即目标数据表),还可以包括相对于源数据库增加的新增数据表(也可以称之为目标数据表),该第一数据表中可以保存有与第二数据表相同的字段,也可以包括相对于第二数据表的新增字段。该新增数据表可以包含新增字段。
上述映射数据表,是指在源数据库中创建的对应于该第二数据表的数据表。在完成数据库升级后,该映射数据表就是升级后的第二数据表。
在本申请实施例中,在网络设备完成从源软件版本升级为目标软件版本时,网络设备可以自动生成针对该目标软件版本的目标数据库,该目标数据库相当于一个“框架”,比如可以包含数据表中的相关字段,但该字段对应于源数据库中的数据却是不存在的。因此,数据库升级的目的就是基于该目标数据库,通过增删数据表,和增删字段以及插入数据等方式,将源数据库升级为包含需要的原有数据的目标数据库。
在实现时,在该数据库升级客户端接收到用户输入的升级命令后,可以对源数据库与目标数据库进行扫描,然后判断该目标数据库中是否存在于该源数据库中的第二数据表的表名相同的第一数据表。
如果在该目标数据库中存在与该源数据库中的第二数据表的表名相同的第一数据表,则执行步骤103。
步骤103:查找所述第一数据表中的新增字段,并在所述映射数据表中创建字段名与该新增字段相同的映射字段;
步骤104:判断查找到的所述新增字段是否预配置主键约束以及默认值;
步骤105:如果查找到的新增字段预配置了主键约束以及默认值,则记录该新增字段的名称以及默认值;
步骤106:使用插入语句将所述第二数据表中存储的数据,以及记录的新增字段的名称以及默认值添加到所述映射数据表。
在相关的针对SQLite数据库的升级方法的技术中,数据库升级客户端在检测到上述第一数据表中存在具有主键约束的新增字段时,该数据库升级客户端通常可以基于在该映射数据表中创建该具有主键约束的新增字段,并基于自动累加的方法对该具有主键约束的新增字段进行赋值,这使得具有主键约束的新增字段的赋值不为第一数据表中该新增字段的默认值,从而造成升级后的数据库与升级后的软件版本不兼容。
本申请实施例提供的SQLite数据库的升级方法,在数据库升级的过程,数据库升级客户端可以记录查找到的具有主键约束的新增字段以及默认值,并可以使用插入语句将目标软件版本配置的目标数据库中的第二数据表中存储的数据,以及记录的具有主键约束的新增字段的名称以及默认值添加到源数据库中的映射数据表,使得映射数据表中该具有主键约束的新增字段的取值为该默认值,从而避免了上述因为具有主键约束的新增字段的取值不为默认值而造成的升级后的数据库与升级后的软件版本不兼容的问题。
下面以第二数据表升级为包含有相应的原有数据的第一数据表为例,对升级过程进行详细地描述。
在实现时,数据库升级客户端可以分别对第一数据表和第二数据表中的字段进行扫描,并可以判断第一数据表中是否存在与第二数据表相同的字段;
如果第一数据表中存在与第二数据表相同的字段,则执行步骤104,判断查找到的所述新增字段是否预配置主键约束以及默认值。
如果查找到的新增字段预配置了主键约束以及默认值,则记录该新增字段的名称以及默认值,在完成上述第一数据表中的所有字段的比对之后,使用插入语句将所述第二数据表中存储的数据,以及记录的新增字段的名称以及默认值添加到所述映射数据表,从而完成该第二数据表的升级。
数据库升级客户端可以基于第二数据表升级的方法,对源数据库进行升级。
本申请提供一种SQLite数据库的升级方法,在升级过程中,数据库升级客户端可以记录查找到的具有主键约束的新增字段以及默认值,并可以使用插入语句将源软件版本配置的源数据库中的第二数据表中存储的数据,以及记录的具有主键约束的新增字段的名称以及默认值添加到源数据库中的映射数据表。
一方面,由于本申请提供的SQLite数据库的升级方法是在数据库升级的过程中,将具有主键约束的新增字段对应的默认值,通过插入语句,赋值给映射数据表中的该具有主键约束的新增字段,使得在数据库升级后,该具有主键约束的新增字段的取值为默认值,从而有效地解决了因升级后的具有主键约束的新增字段的取值不为默认值而造成的升级后的数据库与升级后软件版本不兼容的问题。
另一方面,当数据库完成升级后,该具有主键约束的新增字段的取值为默认值,从而使得在业务模块使用该具有主键约束的新增字段对应的配置数据时,可以直接获取该配置数据,而不需要再增加额外的补丁程序来获取该配置数据,因此,有效地提高了整个开发系统的效率,降低了编程的出错率。
参见图2,图2是本申请一示例性实施例示出的另一种SQLite数据库的升级方法的流程图,所述方法应用网络设备上的数据库升级客户端,所述方法具体包括如下所述步骤:
步骤201:同名的存储过程、触发器直接替换升级;
步骤202:判断目标数据库是否存在与源数据库中的第二数据表的表名相同的第一数据表;
步骤203:在源数据库中创建对应于所述第二数据表的映射数据表,并将该映射数据表的名称命名为与第二数据表名称不同的名称;
步骤204:在源数据库中创建第一数据表;
在本申请实施例中,在网络设备完成从源软件版本升级为目标软件版本时,网络设备可以自动生成针对该目标软件版本的目标数据库,该目标数据库相当于一个“框架”,比如可以包含数据表中的相关字段,但该字段对应于源数据库中的数据却是不存在的。因此,数据库升级的目的就是基于该目标数据库,通过增删数据表,和增删字段以及插入数据等方式,将源数据库升级为包含需要的原有数据的目标数据库。
在实现时,用户可以通过数据库升级客户端提供的交互界面输入升级命令,该数据库升级客户端接收到命令后,可以对源数据库与目标数据库进行扫描,并可以对同名的存储过程、触发器执行直接替换升级。
在扫描的过程中,该数据库升级客户端可以分别获取源数据库和目标数据库中的数据表,然后判断该目标数据库中是否存在与该源数据库中的第二数据表的表名相同的第一数据表。
如果在该目标数据库中不存在与该源数据库中的第二数据表的表名相同的第一数据表,则执行步骤204,在源数据库中创建该第一数据表。
如果在该目标数据库中存在与该源数据库中的第二数据表的表名相同的第一数据表,则执行步骤203,在源数据库中创建对应于第二数据表的映射数据表,并将该映射数据表的表名命名为与第二数据表的表名不同的名称。比如可以将该映射数据表的表名设置为new+第二数据表表名。
需要说明的是,创建映射数据表的目标在于将第二数据表升级为第一数据表,进一步来讲,就是对于第一数据表中记录的相对于第二数据表中字段的新增字段,在该映射数据表中创建该新增字段,如果该新增字段具有默认值,则将该默认值赋值给映射数据表中该新增字段,对于第一数据表和第二数据表都有的原有字段,可以将该第二数据表中该原有字段对应的数据添加至该映射数据表中该原有字段处。
步骤205:判断第一数据表中是否存在与第二数据表相同的字段;
步骤206:在映射数据表中创建新增字段;
步骤207:判断新增字段是否有主键约束及默认值;
步骤208:临时记录该新增字段的名称与默认值;
在相关的针对SQLite数据库的升级方法的技术中,数据库升级客户端在检测到上述第一数据表中存在具有主键约束的新增字段时,该数据库升级客户端通常可以基于在该映射数据表中创建该具有主键约束的新增字段,并基于自动累加的方法对该具有主键约束的新增字段进行赋值,这使得具有主键约束的新增字段的赋值不为第一数据表中该新增字段的默认值,从而造成升级后的数据库与升级后的软件版本不兼容。
本申请实施例提供的SQLite数据库的升级方法,在数据库升级的过程,数据库升级客户端可以记录查找到的具有主键约束的新增字段以及默认值,并可以使用插入语句将目标软件版本配置的目标数据库中的第二数据表中存储的数据,以及记录的具有主键约束的新增字段的名称以及默认值添加到源数据库中的映射数据表,使得映射数据表中该具有主键约束的新增字段的取值为该默认值,从而避免了上述因为具有主键约束的新增字段的取值不为默认值而造成的升级后的数据库与升级后的软件版本不兼容的问题。
在实现时,数据库升级客户端可以分别对第一数据表和第二数据表中的字段进行扫描,并可以判断第一数据表中是否存在与第二数据表相同的字段;
如果第一数据表中存在与第二数据表相同的字段,则可以执行步骤209,步骤209在下文中进行详细地描述。
如果第一数据表中未存在与第二数据表相同的字段,则可以执行步骤206,在映射数据表中创建该新增字段。
在本申请实施例中,数据库升级系统可以判断该新增字段是否具有主键约束及默认值。
如果第一数据表中的该新增字段没有主键约束,为普通的新增字段,并且该新增字段没有默认值,则可以将映射数据表中的该新增字段的取值设置为缺省值。例如,如果该新增字段为数字,则可以将该新增字段的取值设置为缺省值0。如果该新增字段为非数字型字段,如字符串,可以将该新增字段的取值设置为NULL。
如果第一数据表中的该新增字段没有主键约束,为普通的新增字段,并且该新增字段具有默认值,则可以将该新增字段的默认值赋值给映射数据表中该新增字段。
例如,源数据库中第二数据表的表名为的Web访问控制配置数据表,其建表语句为:
CREATE TABLE tb_access_cfg(id INTEGER PRIMARY KEY,ip TEXT,stateINTEGER);
在软件版本升级后,在目标软件版本中新增加了一个配置项,比如端口,作为升级后的系统提供的Web服务的TCP目的端口号,该端口号默认值为80。此时自动生成的目标数据库的针对第一数据表的建表语句为:
CREATE TABLE tb_access_cfg(id INTEGER PRIMARY KEY,ip TEXT,portINTEGER DEFAULT 80);
数据库升级客户端可以通过扫描这两个建表语句,获取不具有主键约束的新增字段,如port字段及其默认值80,并在上述映射数据表中创建该port字段,并将80赋值给映射数据表中的该port字段。
如果第一数据表中的该新增字段具有主键约束及默认值,该数据库升级系统可以记录该新增字段名称及其默认值。
仍以上述源数据库中第二数据表的表名为的Web访问控制配置数据表为例。
假设,源软件版本不支持虚拟系统,升级后的软件版本支持虚拟系统,同时新配置了Web服务目的端口号,则自动生成的目标数据库的第一数据表的建表语句如下所示:
CREATE TABLE tb_access_cfg(vsys_id INTEGER DEFAULT 0,id INTEGER,ipTEXT,port INTEGER DEFAULT 80,PRIMARY KEY(vsys_id,id));
此时数据库升级系统可以记录该具有主键约束的vsys_id字段及其默认值0。
步骤209:判断第一数据表与第二数据表中的相同字段属性是否相容;
步骤210:如果不相容,执行外挂程序实现升级;
步骤211:如果相容,判断第一数据表中的全部字段是否对比结束;
步骤212:将第二数据表中的与相同的原有字段对应的数据以及临时记录的新增字段名称及其默认值通过插入语句插入至映射数据表;
在本申请实施例中,如果第一数据表中存在与第二数据表相同的字段,则可以在映射数据表中创建该相同的原有字段,并可以执行步骤209,判断第一数据表与第二数据表中的相同字段属性是否相容,所谓属性相容,即是指字符串容量增加,整型值容量增加,整型值转化为字符串。
如果第一数据表与第二数据表中的相同字段属性不相容,则表明无法将第二数据表中的该字段对应的数据插入至映射数据表中该原有字段处,此时用户可以通过执行外挂升级补丁的方式,完成升级。
如果第一数据表与第二数据表中的相同字段属性相容,则可以记录第二数据表中该原有字段对应的数据。
数据库升级系统可以判断第一数据表中的全部字段是否对比结束,如果没有对比结束,则重复上述步骤205至步骤211,直至第一数据表中的全部字段对比结束。
如果第一数据表中的全部字段对比结束,数据库升级客户端则可以将第二数据表中的与相同的原有字段对应的数据以及临时记录的新增字段名称及其默认值通过插入语句插入至映射数据表。
仍以上述源数据库中第二数据表的表名为的Web访问控制配置数据表,源软件版本不支持虚拟系统,升级后的软件版本支持虚拟系统,同时新配置了Web服务目的端口号为例。
例如,数据库在升级时,向映射数据表插入上述原有字段对应的数据、具有主键约束的新增字段名称及其默认值的插入语句,可如下所示:
INESRT INTO tb_access_cfg(vsys_id,id,ip)VALUES(0,<id-value>,<ip-value>);
其中<id-value>和<ip-value>即为原有字段,vsys_id为具有主键约束的新增字段。
步骤213:修改第二数据表名称;
步骤214:将映射数据表的名称修改为原第二数据表名称;
步骤215:判断源数据库和目标数据库中的全部数据表是否对比结束。
在本申请实施例中,在将原有字段对应的数据、具有约束的主键字段及其默认值插入至上述映射数据表后,可以修改源数据库中的第二数据表的表名,比如可以修改为old+第二数据表表名。并可以将映射数据表的表明修改为原第二数据表的表名,从而完成第二数据表的升级
例如第二数据表的表名为tb_access_cfg,则可以将该第二数据表的表名修改为old+tb_access_cfg,将映射数据表的表名修改为tb_access_cfg。
数据库升级客户端可以判断源数据库和目标数据库中的全部数据表是否对比结束,如果未结束,重复步骤202至步骤215,直至全部的数据表对比结束,即完成源数据库中所有数据表的升级。
本申请提供一种SQLite数据库的升级方法,在升级过程中,数据库升级客户端可以记录查找到的具有主键约束的新增字段以及默认值,并可以使用插入语句将源软件版本配置的源数据库中的第二数据表中存储的数据,以及记录的具有主键约束的新增字段的名称以及默认值添加到源数据库中的映射数据表。
一方面,由于本申请提供的SQLite数据库的升级方法是在数据库升级的过程中,将具有主键约束的新增字段对应的默认值,通过插入语句,赋值给映射数据表中的该具有主键约束的新增字段,使得在数据库升级后,该具有主键约束的新增字段的取值为默认值,从而有效地解决了因升级后的具有主键约束的新增字段的取值不为默认值而造成的升级后的数据库与升级后软件版本不兼容的问题。
另一方面,当数据库完成升级后,该具有主键约束的新增字段的取值为默认值,从而使得在业务模块使用该具有主键约束的新增字段对应的配置数据时,可以直接获取该配置数据,而不需要再增加额外的补丁程序来获取该配置数据,因此,有效地提高了整个开发系统的效率,降低了编程的出错率。
与前述SQLite数据库的升级方法的实施例相对应,本申请还提供了SQLite数据库的升级装置的实施例。
本申请SQLite数据库的升级装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络设备处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本申请数据库升级客户端装置所在网络设备的一种硬件结构图,除了图3所示的处理器、内存、网络出接口、以及非易失性存储器之外,实施例中装置所在的数据库升级客户端通常根据该SQLite数据库的升级的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图4,图4是本申请一示例性实施例示出的一种SQLite数据库的升级装置的框图。所述装置应用于网络设备上的数据库升级客户端,所述网络设备上配置了对应于源软件版本的源数据库;以及对应于目标软件版本的目标数据库;当所述网络设备由源软件版本升级至目标软件版本,使用所述目标数据库中的配置数据对所述源数据库执行数据库升级时,所述装置包括:
其中,第一判断单元410,用于判断源数据库中是否存在与目标数据库中的第一数据表的表名相同的第二数据表;
创建单元420,用于如果所述源数据库中存在与所述目标数据库中的第一数据表的表名相同的第二数据表,则在所述源数据库中创建对应于所述第二数据表的映射数据表;
查找单元430,用于查找所述第一数据表中的新增字段,并在所述映射数据表中创建字段名与该新增字段相同的映射字段;
第二判断单元440,用于判断查找到的所述新增字段是否预配置主键约束以及默认值;
记录单元450,用于如果查找到的新增字段预配置了主键约束以及默认值,则记录该新增字段的名称以及默认值;
插入单元460,使用插入语句将所述第二数据表中存储的数据,以及记录的新增字段的名称以及默认值添加到所述映射数据表。
在另一种可选的实现方式中,所述装置还包括:
赋值单元470,用于如果查找到的新增字段仅预配置了主键约束,未配置默认值,则在所述映射数据表中基于所述主键约束,为该新增字段设置取值。
在另一种可选的实现方式中,所述装置还包括:
设置单元480,用于如果查找到的新增字段配置了默认值,但未配置主键约束,则在所述映射数据表中将该新增字段的取值设置为该默认值;如果查找到的新增字段未配置主键约束,且也未配置默认值,则在所述映射数据表中将该新增字段的取值设置为缺省值。
在另一种可选的实现方式中,所述创建单元420,还用于如果源数据库中不存在与目标数据库中的第一数据表的表名相同的第二数据表,则在源数据库中创建所述第一数据表。
在另一种可选的实现方式中,所述装置还包括:
修改单元490,用于当使用插入语句将所述第二数据表中存储的数据,以及记录的新增字段的名称以及默认值添加到所述映射数据表后,修改所述第二数据表的表名,并将所述映射数据表的表名替换为所述第二数据表的原表名。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种SQLite数据库的升级方法,其特征在于,所述方法应用于网络设备上的数据库升级客户端,所述网络设备上配置了对应于源软件版本的源数据库;以及对应于目标软件版本的目标数据库;当所述网络设备由源软件版本升级至目标软件版本,使用所述目标数据库中的配置数据对所述源数据库执行数据库升级时,所述方法包括:
判断源数据库中是否存在与目标数据库中的第一数据表的表名相同的第二数据表;
如果所述源数据库中存在与所述目标数据库中的第一数据表的表名相同的第二数据表,则在所述源数据库中创建对应于所述第二数据表的映射数据表;
查找所述第一数据表中的新增字段,并在所述映射数据表中创建字段名与该新增字段相同的映射字段;
判断查找到的所述新增字段是否预配置主键约束以及默认值;
如果查找到的新增字段预配置了主键约束以及默认值,则记录该新增字段的名称以及默认值;
使用插入语句将所述第二数据表中存储的数据,以及记录的新增字段的名称以及默认值添加到所述映射数据表。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果查找到的新增字段仅预配置了主键约束,未配置默认值,则在所述映射数据表中基于所述主键约束,为该新增字段设置取值。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果查找到的新增字段配置了默认值,但未配置主键约束,则在所述映射数据表中将该新增字段的取值设置为该默认值;
如果查找到的新增字段未配置主键约束,且也未配置默认值,则在所述映射数据表中将该新增字段的取值设置为缺省值。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果源数据库中不存在与目标数据库中的第一数据表的表名相同的第二数据表,则在源数据库中创建所述第一数据表。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当使用插入语句将所述第二数据表中存储的数据,以及记录的新增字段的名称以及默认值添加到所述映射数据表后,修改所述第二数据表的表名,并将所述映射数据表的表名替换为所述第二数据表的原表名。
6.一种SQLite数据库的升级装置,其特征在于,所述装置应用于网络设备上的数据库升级客户端,所述网络设备上配置了对应于源软件版本的源数据库;以及对应于目标软件版本的目标数据库;当所述网络设备由源软件版本升级至目标软件版本,使用所述目标数据库中的配置数据对所述源数据库执行数据库升级时,所述装置包括:
第一判断单元,用于判断源数据库中是否存在与目标数据库中的第一数据表的表名相同的第二数据表;
创建单元,用于如果所述源数据库中存在与所述目标数据库中的第一数据表的表名相同的第二数据表,则在所述源数据库中创建对应于所述第二数据表的映射数据表;
查找单元,用于查找所述第一数据表中的新增字段,并在所述映射数据表中创建字段名与该新增字段相同的映射字段;
第二判断单元,用于判断查找到的所述新增字段是否预配置主键约束以及默认值;
记录单元,用于如果查找到的新增字段预配置了主键约束以及默认值,则记录该新增字段的名称以及默认值;
插入单元,使用插入语句将所述第二数据表中存储的数据,以及记录的新增字段的名称以及默认值添加到所述映射数据表。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
赋值单元,用于如果查找到的新增字段仅预配置了主键约束,未配置默认值,则在所述映射数据表中基于所述主键约束,为该新增字段设置取值。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
设置单元,用于如果查找到的新增字段配置了默认值,但未配置主键约束,则在所述映射数据表中将该新增字段的取值设置为该默认值;如果查找到的新增字段未配置主键约束,且也未配置默认值,则在所述映射数据表中将该新增字段的取值设置为缺省值。
9.根据权利要求6所述的装置,其特征在于,所述创建单元还用于如果源数据库中不存在与目标数据库中的第一数据表的表名相同的第二数据表,则在源数据库中创建所述第一数据表。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
修改单元,用于当使用插入语句将所述第二数据表中存储的数据,以及记录的新增字段的名称以及默认值添加到所述映射数据表后,修改所述第二数据表的表名,并将所述映射数据表的表名替换为所述第二数据表的原表名。
CN201611247296.2A 2016-12-29 2016-12-29 SQLite数据库的升级方法及装置 Pending CN106802817A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201611247296.2A CN106802817A (zh) 2016-12-29 2016-12-29 SQLite数据库的升级方法及装置
US15/855,220 US20180189371A1 (en) 2016-12-29 2017-12-27 Updating sqlite database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611247296.2A CN106802817A (zh) 2016-12-29 2016-12-29 SQLite数据库的升级方法及装置

Publications (1)

Publication Number Publication Date
CN106802817A true CN106802817A (zh) 2017-06-06

Family

ID=58984171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611247296.2A Pending CN106802817A (zh) 2016-12-29 2016-12-29 SQLite数据库的升级方法及装置

Country Status (2)

Country Link
US (1) US20180189371A1 (zh)
CN (1) CN106802817A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107643917A (zh) * 2017-10-19 2018-01-30 山东浪潮通软信息科技有限公司 一种用户配置信息管理方法及装置
CN107943926A (zh) * 2017-11-21 2018-04-20 郑州云海信息技术有限公司 一种数据表的属性增加方法、装置及介质
CN108255544A (zh) * 2018-01-12 2018-07-06 武汉智博创享科技股份有限公司 安卓SQLite数据库创建或升级脚本批量执行的方法
CN108614868A (zh) * 2018-04-16 2018-10-02 北京酷我科技有限公司 一种数据库自动升级方法
CN108845818A (zh) * 2018-07-02 2018-11-20 四川长虹电器股份有限公司 一种基于sqlite技术的智能电视数据升级处理方法
CN109902078A (zh) * 2019-01-10 2019-06-18 杭州迪普科技股份有限公司 数据库升级兼容的方法、装置、设备及存储介质
CN110008236A (zh) * 2019-04-15 2019-07-12 重庆天蓬网络有限公司 一种数据分布式自增编码方法、系统、设备及介质
CN110806951A (zh) * 2019-10-11 2020-02-18 青岛海信移动通信技术股份有限公司 一种终端的数据传输方法
CN110928869A (zh) * 2018-09-04 2020-03-27 深圳市超脑云信息技术有限公司 一种数据仓库表自生长方法、终端及介质
CN113672639A (zh) * 2021-08-27 2021-11-19 成都长城开发科技有限公司 多类型数据库表结构对比方法、系统、设备及存储介质
CN113704270A (zh) * 2021-09-03 2021-11-26 携程金融科技(上海)有限公司 SQL Server数据库的自增主键扩容方法、系统、设备和介质
CN114820226A (zh) * 2021-01-19 2022-07-29 上海勘测设计研究院有限公司 水电站数据的采集与传输方法、接收与存储方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109814895B (zh) * 2018-11-29 2024-09-10 广州宏数科技有限公司 一种自动化的数据库更新方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536526B2 (en) * 2005-07-11 2009-05-19 General Electric Company Hierarchical state based migration of structured data
CN102483759A (zh) * 2009-07-09 2012-05-30 诺尔斯克科技公司 用于执行部分数据库的增量更新的方法、系统和装置
CN103294724A (zh) * 2012-03-05 2013-09-11 百度在线网络技术(北京)有限公司 一种数据库结构的管理方法及系统
CN105335436A (zh) * 2014-08-11 2016-02-17 方正国际软件(北京)有限公司 一种升级数据库结构的方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536526B2 (en) * 2005-07-11 2009-05-19 General Electric Company Hierarchical state based migration of structured data
CN102483759A (zh) * 2009-07-09 2012-05-30 诺尔斯克科技公司 用于执行部分数据库的增量更新的方法、系统和装置
CN103294724A (zh) * 2012-03-05 2013-09-11 百度在线网络技术(北京)有限公司 一种数据库结构的管理方法及系统
CN105335436A (zh) * 2014-08-11 2016-02-17 方正国际软件(北京)有限公司 一种升级数据库结构的方法和设备

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107643917A (zh) * 2017-10-19 2018-01-30 山东浪潮通软信息科技有限公司 一种用户配置信息管理方法及装置
CN107943926A (zh) * 2017-11-21 2018-04-20 郑州云海信息技术有限公司 一种数据表的属性增加方法、装置及介质
CN108255544A (zh) * 2018-01-12 2018-07-06 武汉智博创享科技股份有限公司 安卓SQLite数据库创建或升级脚本批量执行的方法
CN108614868A (zh) * 2018-04-16 2018-10-02 北京酷我科技有限公司 一种数据库自动升级方法
CN108845818A (zh) * 2018-07-02 2018-11-20 四川长虹电器股份有限公司 一种基于sqlite技术的智能电视数据升级处理方法
CN110928869A (zh) * 2018-09-04 2020-03-27 深圳市超脑云信息技术有限公司 一种数据仓库表自生长方法、终端及介质
CN109902078A (zh) * 2019-01-10 2019-06-18 杭州迪普科技股份有限公司 数据库升级兼容的方法、装置、设备及存储介质
CN110008236A (zh) * 2019-04-15 2019-07-12 重庆天蓬网络有限公司 一种数据分布式自增编码方法、系统、设备及介质
CN110806951A (zh) * 2019-10-11 2020-02-18 青岛海信移动通信技术股份有限公司 一种终端的数据传输方法
CN114820226A (zh) * 2021-01-19 2022-07-29 上海勘测设计研究院有限公司 水电站数据的采集与传输方法、接收与存储方法
CN113672639A (zh) * 2021-08-27 2021-11-19 成都长城开发科技有限公司 多类型数据库表结构对比方法、系统、设备及存储介质
CN113672639B (zh) * 2021-08-27 2024-04-26 成都长城开发科技股份有限公司 多类型数据库表结构对比方法、系统、设备及存储介质
CN113704270A (zh) * 2021-09-03 2021-11-26 携程金融科技(上海)有限公司 SQL Server数据库的自增主键扩容方法、系统、设备和介质
CN113704270B (zh) * 2021-09-03 2023-10-17 携程金融科技(上海)有限公司 SQL Server数据库的自增主键扩容方法及相关设备

Also Published As

Publication number Publication date
US20180189371A1 (en) 2018-07-05

Similar Documents

Publication Publication Date Title
CN106802817A (zh) SQLite数据库的升级方法及装置
EP3188009B1 (en) Development, delivery, deployment and operation of an application
US7702959B2 (en) Error management system and method of using the same
KR101143027B1 (ko) 자기 기술적 소프트웨어 이미지 업데이트 컴포넌트
US7770121B2 (en) Host controlled user interface
CN110019215A (zh) 多重租赁数据库系统中的键模式管理
US10127218B2 (en) Object templates for data-driven applications
CN109947767A (zh) 多重租赁数据库系统中的系统共享类型
US8850388B2 (en) Controlling application features
US20050004942A1 (en) Methods and systems for controlling network infrastructure devices
CN110147369A (zh) 多重租赁数据库系统中的数据分离和写入重新定向
US20160306612A1 (en) Determining errors and warnings corresponding to a source code revision
CN107506221A (zh) 应用程序升级方法、装置及设备
US8122433B2 (en) Software documentation manager
US20070283331A1 (en) Arbitrary Runtime Function Call Tracing
US11144292B2 (en) Packaging support system and packaging support method
CN106201861A (zh) 一种代码质量的检测方法及装置
CN108595187A (zh) 安卓安装包集成软件开发工具包的法、装置及存储介质
US8185562B2 (en) Business object browser for business query language
CN106325927A (zh) 一种应用于Linux系统中动态库API的拦截方法及装置
CN112166419A (zh) 检测软件漏洞的电子装置和操作该电子装置的方法
CN101256483B (zh) 持久工具对象的方法和装置
CN110716786B (zh) 一种页面展示方法、系统及存储介质
US6842905B2 (en) Method and system for implementing collection program interface for accessing a collection of data associated with a legacy enumeration application interface
CN106909434A (zh) 可执行程序中未定义函数的检测方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170606

RJ01 Rejection of invention patent application after publication