FastDB应用开发指南
开发者开发手册

开发者开发手册介绍本开发手册旨在指导开发人员进行应用程序的开发。
它包含了一系列的准则和最佳实践,帮助开发人员提高开发效率并保证代码质量。
开发环境设置在开始开发之前,请确保以下开发环境设置已完成:- 安装适当版本的开发工具,如IDE或文本编辑器。
- 配置相关的开发环境变量。
- 安装任何必要的依赖项和库。
项目结构为了保持项目的组织和可扩展性,在开始开发之前,请确保项目的结构清晰合理。
以下是一个示例项目结构的建议:├── app.py├── config.py├── requirements.txt├── README.md├──/static│ ├── css│ ├── js│ └── img└──/templates编码规范编码规范可以帮助开发人员统一代码风格,提高代码可读性和维护性。
以下是一些常见的编码规范建议:- 使用有意义的变量和函数命名,避免使用缩写或不清晰的命名。
- 为代码添加适当的注释,解释代码用途和意图。
- 遵循一致的缩进规范,如使用4个空格或制表符。
- 每个函数或方法应尽量保持简短,只关注单一功能。
文档化良好的文档化是开发中不可或缺的一部分。
以下是一些建议:- 为项目添加适当的README文件,提供项目的概述、安装说明、使用示例等。
- 为项目中的重要代码块添加注释,解释其功能和用法。
- 在代码中使用文档化字符串,提供函数和方法的用途、参数和返回值的说明。
- 为API和其他公共接口提供详细的文档。
测试测试是确保代码质量和功能正常的重要一环。
以下是一些建议:- 编写单元测试来验证函数和方法的正确性。
- 编写集成测试来验证各个组件的交互是否正常。
- 使用自动化测试框架并进行持续集成,以确保每次代码提交都通过测试。
版本控制使用版本控制可以方便地管理代码历史记录和团队协作。
以下是一些建议:- 使用一个可靠的版本控制系统,如Git。
- 建立合适的分支策略,如主分支、开发分支和特性分支。
- 定期进行代码提交和合并,保持代码库的整洁和可维护性。
FastCAE CAE集成开发软件工程基础

1 Part 02 研发标准概述
文档标准规范
项目开发总结报告
软件项目开发完成之后,应当与项目实施计划对照,总结实际执行的情况,如进度、成果、资 源利用、成本和投入的人力。
还需对开发工作作出评价,总结经验和教训。
维护修改建议
软件产品投入运行之后,可能有修正、更改等问题,应当对存在的问题、修改的考虑以及修 改的影响估计等做详细的描述,写成维护修改建议,提交审批。
供应和维护中的使用指南 。
1 Part 02 研发标准概述
ISO 9000-3标准及软件质量认证
ISO 9000国际标准,发源于欧洲经济共同体,但很快就波及美 国、日本及世界各国。到目前为止,已有70多个国家在它们的企业 中采用和实施这一系列标准。中国对此也十分重视,确定对其等同 采用,发布了与其相应的质量管理国家标准系列GB/T 19000;同 时积极组织实施和开展质量认证工作。
根据中国国家标准GB/T 15538-1995《软件工程标准分类法》, 软件工程标准的类型有:
过程标准:如方法、技术、度量等。 产品标准:如需求、设计、部件、描述、计划、报告等。 专业标准:如职别、道德准则、认证、特许、课程等。 记法标准:如术语表示法、语言等。
1 Part 02 研发标准概述
XXX分析流 程集成
后处理可视化 提供基础展示功能、制定标准API接口方便二次开发
虚拟现实 三维仿真 科学图表 报告文档
计算 内核
标准化参数配置、统一调用接口(Dll、EXE) 格式化结果数据、反馈业务系统、入智慧库
求解器
求解器1
求解器2
求解器3
高性能计算优化
通用并行计算优化
专用硬件加速优化
基础 设施
中国软件标准
c++ fastdb应用实例

c++fastdb应用实例数据库技术作为信息系统的核心技术,其重要性不言而喻。
然而,传统关系型数据库的性能瓶颈却一直是许多应用开发者面临的难题。
FastDB作为一款高性能的NoSQL数据库,以其出色的性能和灵活的数据模型,受到了广大开发者的青睐。
本文将以C语言为基础,介绍FastDB的应用实例。
一、FastDB概述FastDB是一款高性能的NoSQL数据库,采用键值对数据模型,支持分布式存储和计算。
它具有以下特点:1.高性能:FastDB采用内存存储数据,支持高效的查询和索引功能,能够快速处理大规模数据。
2.灵活的数据模型:FastDB支持多种数据结构,包括文档、列表、集合等,能够满足不同类型应用的需求。
3.分布式存储:FastDB支持分布式存储,能够处理大规模数据集,并保证数据的安全性和可靠性。
二、FastDB在C语言中的应用1.安装与配置首先,需要安装FastDB的C语言库,并将其集成到C项目中。
在配置过程中,需要指定数据库的存储位置和连接方式。
2.创建数据库和表使用FastDB库,可以方便地创建数据库和表。
可以根据应用需求,定义数据表的结构和字段。
3.插入数据使用FastDB库,可以方便地插入数据到数据库中。
可以根据数据表的结构和字段,使用C语言编写代码,将数据插入到数据库中。
4.查询数据使用FastDB库,可以方便地查询数据库中的数据。
可以根据查询条件,使用C语言编写代码,从数据库中检索出符合条件的数据。
5.更新和删除数据使用FastDB库,可以方便地更新和删除数据库中的数据。
可以根据更新和删除条件,使用C语言编写代码,对数据库中的数据进行修改和删除操作。
三、应用实例下面是一个简单的应用实例,展示如何使用FastDB在C语言中实现一个新闻发布系统。
1.系统概述新闻发布系统是一个常见的应用场景,需要存储大量的新闻信息,并提供检索、编辑和删除等功能。
FastDB可以很好地满足这个需求。
2.系统实现(1)安装与配置:安装FastDB库,并将其集成到C项目中。
UBF快速开发手册

手册前3章介绍UBF开发准备工作。
从第4章到第10章介绍了一个销售订单例子的实际开发流程,在流程中的每个步骤中介绍了使用UBF平台开发报表所涉及到的知识点。
第1章开发基础篇--U9系统的环境配置1.1 系统环境1.1.1Window 2003 标准版、企业版操作系统安装过程。
1.1.2Microsoft .net Framework V3.0一个安装包,执行安装即可。
1.1.3IIS6.0IIS6.0的安装位置在:添加或删除程序/添加删除Windows组件/应用程序服务器/详细信息/Internet信息服务(IIS)。
按照下图红色数字顺序,安装IIS6.0。
点击【确定】、【下一步】后,系统提示插入操作系统光盘,可以插入系统光盘,如果没有系统光盘,可以定位到操作系统文件夹的i386文件夹。
1.1.4IE7.0一个安装包,执行安装即可。
1.1.5MS SQL Server 2005SQL Server安装过程中,安装到步骤“要安装的组件”时,请注意:单击上图中的【高级】,打开下图:对需要安装的组件“数据库服务”、“Reporting Services”请选择“整个功能将安装到本地硬盘上”。
数据库、报表服务安装前请先浏览以下资料:《SQL Server 联机丛书》(帮助文档)1、安装SQL Server 2005ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/instsql9/html/3c580cdd-1a4b-40b1-bf6b-3c1e e31ee1be.htm2、安装SQL Server 组件帮助主题ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/instsql9/html/b920fba6-9822-4db7-a84d-7bc3 06004b8c.htm3、Reporting Services 安装帮助主题ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/instsql9/html/bba36555-7ad7-4a17-ac3e-dd09 2d62372c.htm4、报表服务ReportServe的详细配置介绍请参考《报表服务配置.ppt》。
fastdb subsql用法

fastdb subsql用法FastDB SubSQL用法FastDB是一款高性能的嵌入式数据库,而SubSQL是FastDB中的一种查询语言。
在本篇文章中,将详细介绍FastDB SubSQL的一些常用用法。
查询数据在FastDB中使用SubSQL进行数据查询非常简单。
下面是一些常用的查询示例:•查询所有数据:SELECT * FROM table_name•按条件查询数据:SELECT * FROM table_name WHERE condition •查询特定列的数据:SELECT column1, column2 FROM table_name数据过滤与排序SubSQL提供了丰富的过滤和排序功能,方便快速筛选所需的数据。
•根据条件筛选数据:SELECT * FROM table_name WHERE condition •对结果进行排序:SELECT * FROM table_name ORDER BY column A SC/DESC数据统计与聚合通过SubSQL,可以进行数据的统计和聚合操作。
•统计数据总数:SELECT COUNT(*) FROM table_name•对某列进行求和操作:SELECT SUM(column) FROM table_name•对某列进行分组统计:SELECT column, COUNT(*) FROM table_name GR OUP BY column数据更新与删除SubSQL不仅支持查询操作,还能进行数据的更新和删除。
•更新数据:UPDATE table_name SET column = value WHERE condition•删除数据:DELETE FROM table_name WHERE condition嵌套查询与连接SubSQL支持嵌套查询和多表连接,方便进行复杂的数据关联操作。
•嵌套查询示例:SELECT column1 FROM table_name WHERE colum n2 IN (SELECT column3 FROM table_name2 WHERE condition)•内连接示例:SELECT column1, column2 FROM table_name1 I NNER JOIN table_name2 ON table_ = table_以上仅是FastDB SubSQL的一些常用用法,通过这些简单而强大的语法,可以满足大部分的数据查询和操作需求。
SUNDB数据库开发者指南说明书

Developer Manual Developer Manual目录1.Database Connection (1)1.1特征 (1)1.2选择执行成员 (2)1.3Global Session (4)1.4约束事项 (6)1.5设置 (8)2.ODBC (9)2.1SUNDB ODBC Driver概述 (9)2.2数据源构成 (13)2.3GLOBAL CONNECTION (36)2.4目录函数 (48)2.5非标准数据类型 (54)2.6ODBC API References (69)2.7XA API References (580)3.JDBC (607)3.1概要 (607)3.1功能详情 (614)3.2JDBC API References (669)4.Embedded SQL (942)4.1Precompiler (942)4.2Embedded SQL (958)4.3Advanced Topic (1149)4.4Embedded SQL Reference (1214)Developer Manual 5.PDO (1252)5.1PDO概要 (1252)5.2安装/构成 (1252)5.3使用 (1256)5.4示例 (1256)6.PyDBC (1275)6.1SUNDB PyDBC (1275)6.2API Reference (1280)6.3Exception (1302)6.4Data Type (1304)7.Ruby (1309)7.1概要 (1309)7.2安装 (1309)7.3示例 (1311)7.4ActiveRecord的使用示例 (1316)8.Hibernate (1322)8.1概要 (1322)8.2联动 (1322)8.3示例 (1325)1.Database Connection1.1特征Figure30-1GLOBAL CONNECTIONGlobal connection功能是考虑到数据locality的事务性能优化方案通常connection连接一个成员而global connection连接所有成员使用global connection的应用程序执行查询访问的数据最多的成员的查询从而提高性能Global connection可用于hashrangelist sharding等所有方式此时不需要变更应用程序执行online scale-out时用户不需要追加考虑新的节点应用程序可自动访问新节点运行此节点Figure30-2GLOBAL CONNECTION HA(high availability)执行SQL时所选节点发生故障时通过其他组的其他节点执行SQL所选的组的所有节点发生故障时通过其他组执行SQL恢复发生故障的节点时在online状态下自动重新访问该节点不仅如此用户也可以使用以下语句使应用程序重新执行访问ALTER SYSTEM RECONNECT GLOBAL CONNECTION1.2选择执行成员执行成员按照事务为单位进行选择没有事务时首次执行DML查询时按照sharding key选择组组内的执行成员取决于LOCALITY_MEMBER_POLICY参数之后在COMMIT或ROLLBACK之前执行的所有查询在所选成员中执行如果首次查询未选择根据sharding key的合适的组时根据LOCALITY_GROUP_POLICY参数决定组Figure30-3选择成员上图中transaction1的UPDATE查询根据sharding key在group1执行因此后续COMMIT之间的所有查询均在group1执行Transaction2的UPDATE查询在group3执行即使后续查询不适合在group 3执行但在COMMIT之前所有查询均在group3执行在没有事务的情况下只读专用查询(SELECT)与其他查询相同根据sharding key选择执行成员但后续执行的查询未必在上一次选择的成员中执行即包含在事务的所有查询仅在一个成员中执行与事务无关的查询按照查询为单位选择成员1.3Global SessionFigure30-4从global connection衍生的cluster session与应用程序直接连接的会话叫做driver session从driver session到其他成员的会话叫做cluster sessionGlobal connection在所有成员中创建driver session根据所需向其他成员创建cluster session由于global connection的特征可在一个成员中创建多个cluster sessionFigure30-5Global sessionGlobal session是在global connection创建的cluster session共享一个会话并由此提高资源效率的功能Global connection不使用global session时根据组和成员的增加而增加cluster session相反使用global session时即使增加组和成员也不会增加cluster sessionGlobal session功能仅可在global connection使用普通connection无法使用1.4约束事项使用global connection时SQL语句无法使用拥有session dependenccy的对象(session dependent object)或语句(session dependent clause)或函数(session dependent function)另外访问多个集群节点的SQL存在于一个事务中时事务中的SQL共同使用第一个SQL的sharding key选择的集群节点Global connection中查询仅在以prepare execute执行时考虑数据locality以direct execute执行时在任意节点执行Session Dependent Object在SQL语句使用session dependent object时不支持global connection●Global temporary tableSession Dependent Clause在SQL语句使用session dependent clause时不支持global connection●所有@domain相关语句Session Dependent Function和Pseudo Column 在SQL语句使用session dependent信息时不支持global connection●CURRVAL(sequence),sequence.CURRVAL●UUID()●VERSION()●SESSION_ID()●SESSION_SERIAL()●USER_ID()●LAST_IDENTITY_VALUE()●STATEMENT_VIEW_SCN()●STATEMENT_VIEW_SCN_GCN()●STATEMENT_VIEW_SCN_DCN()●STATEMENT_VIEW_SCN_LCN()●LOCAL_GROUP_ID()●LOCAL_MEMBER_ID()●LOCAL_GROUP_NAME()●LOCAL_MEMBER_NAME()●CLUSTER_GROUP_ID●CLUSTER_GROUP_NAME●CLUSTER_MEMBER_ID●CLUSTER_MEMBER_NAME●CLUSTER_SHARD_ID使用Global Session功能的情况SQL语句不支持Data Definition Language(DDL) 1.5设置详细内容参考如下●ODBC Global Connection●JDBC Global Connection2.ODBC2.1SUNDB ODBC Driver概述SUNDB ODBC Driver的概念ODBC(开放数据库互连Open Database Connectivity)是数据库API(Application Programming Interface)的配置Microsoft ODBC3.0版本基于International Standards Organization/ International Electromechanical Commission(ISO/IEC)和X/open的分级调用接口(CLI)的推荐配置ODBC使用C libarary函数支持SQL语句应用程序通过调用该函数实现ODBC功能架构由执行以下功能的个要素组成组成要素功能应用程序调用与ODBC数据源通信的ODBC函数传递SQL语句后处理结果集驱动管理器管理应用程序以及应用程序中使用的所有ODBC驱动程序之间的通信驱动处理应用程序中的所有ODBC调用连接数据源并从应用程序将SQL语句传递至数据源后向应用程序返回结果必要时驱动将应用程序传递的ODBC SQL转换为数据源使用的基本SQL数据源包含驱动访问数据库数据时所需的所有信息使用ODBC应用程序可以执行以下操作●连接数据源●向数据源传输SQL语句●在数据源处理SQL语句的结果●错误及信息处理●断开与数据源的连接ODBC构成要素概要包含驱动管理器的SUNDB ODBC Driver以下为系统包含驱动管理器的软件架构此时应用程序需要链接到驱动管理器库Figure31-1包含驱动管理器的SUNDB ODBC driver不包含驱动管理器的SUNDB ODBC Driver下图为系统不包含驱动管理器并使用SUNDB ODBC driver的架构此时应用程序需要直接链接到SUNDB ODBC driver库Figure31-2不包含驱动管理器的SUNDB ODBC driverSUNDB ODBC Driver的使用头文件(header file)执行SUNDB ODBC driver需要有$SUNDB_HOME/include中设置的sundb.h文件此文件定义SUNDB ODBC driver的常数和类型提供SUNDB ODBC driver函数的原型库(Libraray)不使用驱动管理器的应用程序需要链接SUNDB ODBC driver库的静态或共享文件UNIX文件名说明libsundb.a包含DA与CS的库的静态版本libsundba.a DA专用库的静态版本libsundbas.so DA专用库的共享版本文件名说明libsundbc.a CS专用库的静态版本libsundbcs-ul32.so将SQLLEN识别为4字节的64Bit CS专用库的共享版本libsundbcs-ul64.so将SQLLEN识别为8字节的64Bit CS专用库的共享版本libsundbcs.so32Bit CS专用库的共享版本libsundbs.so包含DA与CS的库的共享版本Table31-1SUNDB UNIX ODBC driver库文件WindowsSUNDB Windows ODBC driver库只提供CS库文件文件名说明sundbcs-ul64.dll将SQLLEN识别为8字节的64Bit CS专用库的共享版本sundbcs.dll32Bit CS专用库的共享版本sundbsetup32.dll设置32Bit ODBC driver manager的库sundbsetup64.dll设置64Bit ODBC driver manager的库Table31-2SUNDB Windows ODBC driver库文件SUNDB数据库SQL手册2.2数据源构成UNIX中的DSN设置odbcinst.ini文件odbcinst.ini是已安装的ODBC驱动程序的配置文件●unixODBC%odbcinst-junixODBC2.3.4DRIVERS............:/etc/odbcinst.iniSYSTEM DATA SOURCES:/etc/odbc.iniFILE DATA SOURCES..:/etc/ODBCDataSourcesUSER DATA SOURCES..:/home/sundb/.odbc.iniSQLULEN Size.......:8SQLLEN Size........:8SQLSETPOSIROW Size.:8●iODBC%iodbc-config--odbcinstini/etc/odbcinst.iniODBC Driver配置odbcinst.ini文件的ODBC驱动程序配置部分描述驱动程序属性值和目录每个安装的驱动程序的驱动程序名称下有注册信息部分[driver_name]Description=driver_descriptionDriver=driver_library_pathSetup=setup_library_pathFileUsage=file_usage下表描述了驱动程序配置部分中的关键字关键字说明Description说明驱动程序的字符串Driver驱动library路径Setup安装library路径FileUsage显示基于文件的驱动在DSN中直接处理文件的方法的文字以下为查看SUNDB ODBC驱动配置相关信息的示例[SUNDB ODBC Driver]Description=SUNDB ODBC DriverDriver=/home/sundb/home/lib/libsundbcs-ul64.soSetup=/home/sundb/home/lib/libsundbcs-ul64.soFileUsage=0odbc.ini文件odbc.ini文件是应用程序连接的DSN的配置文件分为用户DSN与系统DSN通常用户DSN文件为~/.odbc.ini文件系统DSN文件为/etc/odbc.ini文件●unixODBC%odbcinst-junixODBC2.3.4DRIVERS............:/etc/odbcinst.iniSYSTEM DATA SOURCES:/etc/odbc.iniFILE DATA SOURCES..:/etc/ODBCDataSourcesUSER DATA SOURCES..:/home/sundb/.odbc.iniSQLULEN Size.......:8SQLLEN Size........:8SQLSETPOSIROW Size.:8●iODBC%iodbc-config--odbcini/etc/odbc.ini数据源配置odbc.ini文件的数据源配置部分中说明DSN[data_source_name]Driver=driver_namePROTOCOL={DA|TCP|IPC}CS_MODE={default|dedicated|shared}HOST=host_addressPORT=port_noPREFER_IPV6={0|1}CHARSET={SQL_ASCII|UTF8|UHC|GB18030}TCP_NODELAY={0|1}ALTERNATE_SERVERS=(HOST=ADDRESS1:PORT=PORT1,HOST=ADDRESS2:PORT=PORT2) CONNECTION_RETRY_COUNT=retry_countCONNECTION_RETRY_DELAY=retry_delayFAILOVER_TYPE={CONNECTION|SESSION}FAILOVER_GRANULARITY={0|1|2}FAILOVER_ROUTING_POLICY={0|1}DATE_FORMAT=date_format_stringTIME_FORMAT=time_format_stringTIME_WITH_TIME_ZONE_FORMAT=timetz_format_stringTIMESTAMP_FORMAT=timestamp_format_stringTIMESTAMP_WITH_TIME_ZONE_FORMAT=timestamptz_format_stringCHAR_LENGTH_UNITS={BYTE|OCTETS|CHAR|CHARACTERS}ENABLE_SQLDESCRIBEPARAM={0|1}ENABLE_SQLBINDPARAMETER_CONSISTENCY_CHECK={0|1}USE_TARGETTYPE={0|1|2}LOCATOR_DSN=locator_dsn_nameLOCATOR_SERVICE=locator_service_nameLOCALITY_AWARE_TRANSACTION={0|1}LOCALITY_GROUP_POLICY={0|1|2}LOCALITY_GROUP_PATH=group_name1,group_name2,group_name3LOCALITY_MEMBER_POLICY={0|1|2|3|4}LOCALITY_MEMBER_PATH=member_name1,member_name2,member_name3DB_HOME=database_home_pathPACKET_COMPRESSION_THRESHOLD=packet_compression_thresholdUSE_GLOBAL_SESSION={0|1}LOGIN_TIMEOUT=login_timeoutTRACE={0|1}TRACEFILE=file_path_nameTRACE_POLICY={DEFAULT|ERROR}INCLUDE_SYNONYMS={0|1}DOT_NET_FOR_ODBC={0|1}[locator_dsn_name]FILE=location_file_nameHOST=IP address(v4)PORT=locator_portCONNECTION_TIMEOUT=secondALTERNATE_LOCATORS=(HOST=ADDRESS1:PORT=PORT1,HOST=ADDRESS2:PORT=PORT2)下表为数据源配置部分的关键字属性说明data_source_name数据源section中指定的数据源Driver odbcinst.ini中安装的驱动名PROTOCOL与服务器连接的方式●DA:无额外的通讯直接连接●TCP:使用TCP socket进行通讯●IPC:使用共享内存进行通讯并且需要与server在相同设备上第一次连接时为了传输IPC信息会使用TCP连接所以需要设置HOST和PORT仅可使用Dedicated模式进行连接CS_MODE 设置以dedicated模式访问还是以shared模式连接如果不使用此设置模式取决于listener的configuration(DEFAULT_CS_MODE)HOST HOST IP地址或名称PORT连接端口号PREFER_IPV6HOST参数为HOST名时IP地址中优先IPv6 TCP_NODELAY socket TCP_NODELAY选项UID用户ID属性说明PWD用户密码CHARSET客户端字符集ALTERNATE_SERVERS 发生failover时尝试连接的服务器目录每个服务器以逗号","区分不使用failover功能时不设置ALTERNATE_SERVERSCONNECTION_RETRY_COUNT连接失败时尝试连接服务器的次数CONNECTION_RETRY_DELAY连接失败时尝试连接的服务器的时间间隔(单位:秒)FAILOVER_TYPE ●CONNECTION:连接失败时连接至ALTERNATE_SERVERS●SESSION:连接失败或处理statement过程中连接断开时连接至ALTERNATE_SERVERS后恢复statement如果断开连接时没有进行中的事务则failover后执行进行中的statementFAILOVER_GRANULARITY●0:进行failover的过程中发生错误也继续进行failover属性说明●1:进行failover的过程中发生除SQLExeceute()SQLExecDirect()外的错误时failover将失败●2:进行failover的过程中发生错误时failover将失败DATE_FORMAT DATE类型字符串TIME_FORMAT TIME类型字符串TIME_WITH_TIME_ZONE_FORMAT TIME WITH TIME ZONE类型字符串TIMESTAMP_FORMAT TIMESTAMP类型字符串TIMESTAMP_WITH_TIME_ZONE_FORMAT TIMESTAMP WITH TIME ZONE类型字符串CHAR_LENGTH_UNITS SQLBindParameter()中ParameterType为SQL_CHARSQL_VARCHAR时的ColumnSize的单位●BYTE,OCTETS:以byte为单位●CHAR,CHARACTERS:以字符为单位ENABLE_SQLDESCRIBEPARAM决定是否执行SQLDescribeParam()●0:不支持SQLDescribeParam()●1:对所有parameter返回属性说明SQL_VARCHARENABLE_SQLBINDPARAMETER_CONSISTENCY_CHECK决定是否检查SQLBindParameter()的ColumnSize和DecimalDigits●0:不检查ColumnSize和DecimalDigits ●1:检查ColumnSize和DecimalDigitsUSE_TARGETTYPE设置以通信接收column类型时同时接收的类型信息●0:仅接收column类型●1:接收column类型与column名称●2:接收column类型与column的所有信息LOCATOR_DSN指定Location信息的Data Source Name(DSN)LOCATOR_SERVICE从Service hintglocator获取访问信息LOCALITY_AWARE_TRANSACTION是否使用GLOBAL CONNECTION●0:不使用GLOBAL CONNECTION ●1:使用GLOBAL CONNECTION属性说明LOCALITY_GROUP_POLICY使用GLOBAL CONNECTION时没有可选择的群组或可以选择两个以上的群组时设置群组选择方法●0:任意选择●1:按照顺序选择LOCALITY_GROUP_PATH设置中的群组无法使用LOCALITY_GROUP_PATH的所有群组时选择任意群组●2:按照顺序选择每次按照驱动中连接的群组顺序选择LOCALITY_GROUP_PATH 使用GLOBAL CONNECTION时可选择的群组不是1个时指定选择的群组的目录各群组以逗号()区分例:G1G2G3LOCALITY_MEMBER_POLICY决定使用GLOBAL CONNECTION时所选的群组中的成员的选择方法●0:DML:MASTER/SELECT:MASTER ●1:DML:ANY/SELECT:ANY●2:DML:MASTER/SELECT:ANY●3:DML:MASTER/SELECT:SLAVE属性说明●4:按照LOCALITY_MEMBER_PATH设置中的成员的顺序进行选择无法使用LOCALITY_MEMBER_PATH中的所有成员时选择所选群组的MASTERLOCALITY_MEMBER_PATH 指定在使用GLOBAL CONNECTION时所选的群组中要使用的成员的目录各成员以逗号()区分例:G1N1,G2N1,G3N1,G1N2,G2N2,G3N2DB_HOME设置数据库的home目录默认值使用$SUNDB_HOME的环境变量PACKET_COMPRESSION_THRESHOLD 发送至服务器的通信数据的大小大于PACKET_COMPRESSION_THRESHOLD时压缩通信数据设定值的范围为32~2113929216USE_GLOBAL_SESSION是否使用GLOBAL SESSION●0:不使用GLOBAL SESSION ●1:使用GLOBAL SESSIONLOGIN_TIMEOUT等待完成login请求的时间(秒)TRACE是否在ODBC API使用trace属性说明●0:不使用trace●1:使用traceTRACEFILE Trace文件名输入在相对路径时执行程序的当前目录成为标准默认值为'odbc_trace.log'TRACE_POLICY Trace策略默认值为DEFAULT●DEFAULT:同时记录函数参数和结果●ERROR:函数失败时记录日志INCLUDE_SYNONYMS决定是否在SQLGetColumns()中包含synonym 个体.●0:不包含synonym个体●1:包含synonym个体DOT_NET_FOR_ODBC决定是否将ODBC用于.NET Framework用途●0:不改变用途●1:SQLGetDescField()和SQLColAttribute()中将SQL_DESC_BASE_COLUMN_NAME,属性说明SQL_DESC_NAME属性替换为SQL_DESC_LABEL Table31-3数据源配置部分的关键字关键字说明FILE Location file nameHOST glocator ip addressPORT glocator port number CONNECTION_TIMEOUT Connection timeout with glocator(second) ALTERNATE_LOCATORS未收到glocator的响应时使用ALTERNATE_LOCATORS获取访问信息Table31-4LocationNote:*LOCATOR_DSN中已设置FILE与HOSTPORT属性时优先适用FILE属性FILE相关详细内容参考Location File*通过LOCATOR_SERVICE属性可访问LOCATOR_SERVICE所属的服务器所访问的服务器以外的服务器为ALTERNATE_SERVERS+未设置FAILOVER_TYPE则FAILOVER_TYPE为session+未设置FAILOVER_GRANULARITY则FAILOVER_GRANULARITY为1+详细内容参考glocator与gloctlSUNDB的DSN配置如下[SUNDB]Driver=SUNDB ODBC DriverPROTOCOL=TCPCS_MODE=SHAREDHOST=192.168.0.10PORT=22581CHARSET=UTF8TCP_NODELAY=1ALTERNATE_SERVERS=(HOST=192.168.0.11:PORT=22581,HOST=192.168.0.12:PORT=22581) CONNECTION_RETRY_COUNT=3CONNECTION_RETRY_DELAY=1FAILOVER_TYPE=SESSIONFAILOVER_GRANULARITY=0FAILOVER_ROUTING_POLICY=0DATE_FORMAT=YYYY-MM-DDTIME_FORMAT=HH24:MI:SS.FF6TIME_WITH_TIME_ZONE_FORMAT=HH24:MI:SS.FF6TZH:TZMTIMESTAMP_FORMAT=YYYY-MM-DD HH24:MI:SS.FF6TIMESTAMP_WITH_TIME_ZONE_FORMAT=YYYY-MM-DD HH24:MI:SS.FF6TZH:TZM CHAR_LENGTH_UNITS=CHARACTERSENABLE_SQLDESCRIBEPARAM=1ENABLE_SQLBINDPARAMETER_CONSISTENCY_CHECK=1USE_TARGETTYPE=0INCLUDE_SYNONYMS=0PACKET_COMPRESSION_THRESHOLD=2113929216LOCALITY_AWARE_TRANSACTION=0LOCALITY_GROUP_POLICY=0LOCALITY_GROUP_PATH=G1,G2,G3LOCALITY_MEMBER_POLICY=0LOCALITY_MEMBER_PATH=G1N1,G2N1,G3N1,G1N2,G2N2,G3N2 USE_GLOBAL_SESSION=0LOGIN_TIMEOUT=0LOCATOR_DSN=LOCATORLOCATOR_SERVICE=S1TRACE=1TRACEFILE=/home/test/log/mytrace.logDOT_NET_FOR_ODBC=0[LOCATOR]FILE=/home/test/.location.iniHOST=127.0.0.1PORT=42581ALTERNATE_LOCATORS=(HOST=127.0.0.1:PORT=42582,HOST=127.0.0.1:PORT=42583) Windows中的DSN设置Windows中可通过ODBC数据源管理器添加或设置DSNFigure31-3Creating new data sourceFigure31-4ODBC driver configuration各项详细说明如下关键字说明DSN数据源名称HOST HOST IP地址或名称PORT连接端口号UID用户IDCS_MODE 设置以dedicated模式连接或以shared模式连接未设置时default模式取决于listener的configuration(DEFAULT_CS_MODE)ALTERNATE_SERVERS发生failover时尝试连接的服务器列表以逗号()区分不使用failover功能时ALTERNATE_SERVERS设置为空白CONNECTION_RETRY_COUNT连接失败时尝试重连服务器的次数CONNECTION_RETRY_DELAY连接失败时尝试重连的服务器时间间隔(单位:秒)FAILOVER_TYPE ●CONNECTION:连接失败时连接至ALTERNATE_SERVERS●SESSION:连接失败或语句执行中连接中断时连接至ALTERNATE_SERVERS后恢复语句断开连接时如没有进行中的事务failover后执行进行中的statement关键字说明FAILOVER_GRANULARITY ●Non-atomic:failover过程中即使报错也继续执行failover●Atomic:failover过程中报错则failover失败DATE_FORMAT DATE类型字符串TIME_FORMAT TIME类型字符串TIME_WITH_TIME_ZONE_FORMAT TIME WITH TIME ZONE类型字符串TIMESTAMP_FORMAT TIMESTAMP类型字符串TIMESTAMP_WITH_TIME_ZONE_FORMAT TIMESTAMP WITH TIME ZONE类型字符串CHAR_LENGTH_UNITS SQLBindParameter()中ParameterType为SQL_CHAR时的ColumnSize单位●BYTE,OCTETS:以byte为单位●CHAR,CHARACTERS:以字符为单位LOCALITY_AWARE_TRANSACTION GLOBAL CONNECTION使用与否●0:不使用GLOBAL CONNECTION ●1:使用GLOBAL CONNECTIONUSE_GLOBAL_SESSION GLOBAL SESSION使用与否关键字说明●0:不使用GLOBAL SESSION●1:使用GLOBAL SESSIONLOCALITY_GROUP_POLICY设置可使用GLOBAL CONNECTION时没有可选择的group或有两个以上可选择的group时选择哪个group●0:任意选择●1:依次选择LOCALITY_GROUP_PATH设置中的group无法使用所有LOCALITY_GROUP_PATH中的group时选择任意group●2:依次选择按照每次连接驱动的group顺序选择LOCALITY_GROUP_PATH 使用GLOBAL CONNECTION时可选择的group不是一个时指定选择的group的目录各个group以逗号()区分例:G1G2G3LOCALITY_MEMBER_POLICY使用GLOBAL CONNECTION时决定选择被选择地group中的成员的方法●0:DML:MASTER/SELECT:MASTER●1:DML:ANY/SELECT:ANY●2:DML:MASTER/SELECT:ANY●3:DML:MASTER/SELECT:SLAVE关键字说明●4:依次选择LOCALITY_MEMBER_PATH设置中的成员无法使用所有LOCALITY_MEMBER_PATH中的成员时选择被选择的group的MASTERLOCALITY_MEMBER_PATH 使用GLOBAL CONNECTION时在所选的group中指定要使用的成员的目录各个成员以逗号()区分例:G1N1,G2N1,G3N1,G1N2,G2N2,G3N2LOCATOR_HOST glocator ip address LOCATOR_PORT glocator port number LOCATOR_CONNECTION_TIMEOUT Connection timeout with glocator(second) ALTERNATE_LOCATORS无法从glocator获得响应时使用ALTERNATE_LOCATORS获取访问信息TRACE是否在ODBC API使用trace●0:不使用trace●1:使用traceTRACEFILE Trace文件名输入到相对路径时执行程序的当前目录成为标准默认值为'odbc_trace.log'TRACE_POLICY Trace策略默认值为DEFAULT关键字说明●DEFAULT:同时记录函数参数和结果●ERROR:函数失败时记录日志DOT_NET_FOR_ODBC决定是否将ODBC用于.NET Framework用途●0:不改变用途●1:SQLGetDescField()和SQLColAttribute()中将SQL_DESC_BASE_COLUMN_NAME,SQL_DESC_NAME属性替换为SQL_DESC_LABELTable31-5DSN配置关键字2.3GLOBAL CONNECTION集群环境支持应用程序可以选择符合处理查询的节点后执行的GLOBAL CONNECTION功能设置仅在PROTOCOL为TCP时才可使用GLOBAL CONNECTION此时需要在设置LOCALITY_AWARE_TRANSACTION属性值的同时设置LOCATOR文件或LOCATOR服务器使用global session时需要将USE_GLOBAL_SESSION属性值设置为1使用DSN时的.odbc.ini[SUNDB]PROTOCOL=TCPHOST=192.168.0.1PORT=22581UID=TESTPWD=testLOCALITY_AWARE_TRANSACTION=1LOCATOR_DSN=LOCATOR[LOCATOR]FILE=/home/sundb/.location.ini使用连接字符串时SQLDriverConnect(dbc,NULL,(SQLCHAR*)"PROTOCOL=TCP;HOST=192.168.0.1;PORT=22581;UID=TEST;PWD=test;LOCA LITY_AWARE_TRANSACTION=1;LOCATOR_HOST=192.168.0.2;LOCATOR_PORT=42581",SQL_NTS,NULL,0,NULL,SQL_DRIVER_NOPROMPT);GLOBAL CONNECTION的处理过程Figure31-5Basic steps of applying GLOBAL CONNECTION 1.SQLAllocHandle(DBC)分配connection handle连接用户输入服务器信息的服务器并获取集群系统的信息后通过LOCATOR文件或LOCATOR 服务器建立集群系统信息并连接集群系统的所有节点3.SQLAllocHandle(STMT)向连接的所有节点分配各个statement4.SQLPrepare在连接的所有节点准备执行SQL5.SQLExecute如未建立集群系统信息应用程序可通过LOCATOR文件或LOCATOR服务器建立集群系统信息并连接集群系统的所有节点在集群添加节点后访问新的节点时在该节点同样生成其他节点的所有statement并准备执行SQL如已建立sharding key信息应用程序使用sharding key信息选择合适的节点后执行查询如未建立sharding key信息应用程序从任意服务器建立该SQL的sharding key信息后选择合适的节点并执行查询所选节点发生故障时除该节点外再重新选择合适的节点后执行查询SQLExecute后sharding信息发生变更则删除已建立的sharding key信息SQLExecute后添加/删除集群节点等集群系统信息发生变更则删除已建立的集群系统信息6.SQLFetch从执行SQL的节点获取数据7.SQLCloseCursor在执行SQL的节点关闭游标8.SQLFreeHandle(STMT)在所有已连接的节点上解除statement解除与所有节点的连接10.SQLFreeHandle(DBC)解除connection handleGLOBAL CONNECTION异常处理使用GLOBAL CONNECTION时运行中所选节点发生故障时根据事务发生及SELECT进行与否如下进行操作●没有事务的情况没有事务的情况下所选节点发生故障时在ODBC内部选择其他节点并执行对应查询虽然所选节点发生了故障但由其他节点正常执行因此不向用户报错●有事务或SELECT进行时发生事务或SQLFetch()进行时所选节点发生故障时ODBC无法再进行当前操作因此返回19068(Retry the transactional operations)错误发生19068错误时用户需要重新执行对应事务或SELECTif(!SQL_SUCCEEDED(SQLPrepare(sStmt,(SQLCHAR*)"INSERT INTO T1VALUES(?)",SQL_NTS))){goto stmt_error;}trans_retry:if(!SQL_SUCCEEDED(SQLExecute(sStmt))) {SQLGetDiagRec(SQL_HANDLE_STMT,sStmt,1,sSQLState,&sNativeError,sMessageText,sizeof(sMessageText),&sTextLength);if(sNativeError==19068){goto trans_retry;}goto stmt_error;}if(!SQL_SUCCEEDED(SQLPrepare(sStmt,(SQLCHAR*)"SELECT*FROM T1WHERE C1=?",SQL_NTS))){goto stmt_error;}trans_begin:sReturn=SQLExecute(sStmt);if(sRetrun==SQL_ERROR){SQLGetDiagRec(SQL_HANDLE_STMT,sStmt,1,sSQLState,&sNativeError,sMessageText,sizeof(sMessageText),&sTextLength);if(sNativeError==19068){goto trans_retry;}goto stmt_error;}while(1){sReturn=SQLFetch(sStmt);if(sReturn==SQL_NO_DATA){SQLCloseCursor(sStmt);break;}else if(sReturn==SQL_ERROR){SQLGetDiagRec(SQL_HANDLE_STMT,sStmt,1,sSQLState,&sNativeError,sMessageText,sizeof(sMessageText),&sTextLength);if(sNativeError==19068){goto trans_retry;}goto stmt_error;}...}COMMIT或ROLLBACK事务时COMMIT事务时所选节点发生故障时ODBC通过其他节点查看事务是否在所选节点发生故障之前COMMIT如果所选节点发生了故障但事务正常COMMIT时不返回错误而且在事务未COMMIT的情况下所选节点发生故障时返回19068(Retry the transactional operations)错误发生19068错误时用户要重新执行该事务ROLLBACK事务时如果所选节点发生故障ODBC不报错因为由于节点故障该事务已经被ROLLBACKif(!SQL_SUCCEEDED(SQLSetConnectAttr(sDbc,SQL_AUTOCOMMIT,(SQLPOINTER)SQL_AUTOCOMMIT_OFF,0))){goto dbc_error;}if(!SQL_SUCCEEDED(SQLPrepare(sStmt,(SQLCHAR*)"INSERT INTO T1VALUES(?)",SQL_NTS))){goto stmt_error;}trans_retry:if(!SQL_SUCCEEDED(SQLExecute(sStmt))){SQLGetDiagRec(SQL_HANDLE_STMT,sStmt,1,sSQLState,&sNativeError,sMessageText,sizeof(sMessageText),&sTextLength);if(sNativeError==19068){goto trans_retry;}goto stmt_error;}if(!SQL_SUCCEEDED(SQLEndTran(SQL_HANDLE_DBC,sDbc,SQL_COMMIT))){SQLGetDiagRec(SQL_HANDLE_DBC,sDbc,1,sSQLState,&sNativeError,sMessageText,sizeof(sMessageText),&sTextLength);if(sNativeError==19068){goto trans_retry;}goto stmt_error;}GLOBAL CONNECTION约束事项●为了选择符合查询的节点需要使用SQLPrepare()和SQLExecute()使用GLOBAL CONNECTION查找符合查询的节点时需要使用SQLPrepare()和SQLExecute()SQLExecDirect()中没有查找符合查询的节点的信息因此选择节点取决于LOCALITY_GROUP_POLICY和LOCALITY_MEMBER_POLICY属性●COMMIT或ROLLBACK事务时要使用SQLEndTran()使用GLOBAL CONNECTION时通过SQL语句执行COMMIT或ROLLBACK则无法检测到事务状态变化COMMIT或ROLLBACK事务时必须使用SQLEndTran()●Global session不支持SQL语句中的Data Definition Language(DDL)。
Dorado 5 快速入门
Dorado 5 快速入门富浏览器展现中间件快速创建Rich Internet Application的表现层解决方案1.前言 (4)2.简介 (5)3.STUDIO (6)3.1.使用说明 (6)3.2.工程管理 (17)3.2.1.工程管理 (17)3.2.2.系统菜单 (17)4.一个简单的DORADO应用界面 (17)4.1.视图模型简介 (17)4.2.创建DORADO应用 (20)4.2.1.新建工程 (20)4.2.2.数据连接配置 (22)4.2.3.制作dorado JSP (23)5.常用组件应用技巧 (32)5.1.自由表单(A UTO F ORM) (32)5.2.数据表格(D A TA T ABLE) (36)5.3.菜单(M ENU) (53)5.4.树(T REE) (53)5.5.下拉框(D ROP D OWN) (53)5.6.命令(C OMMAND) (53)6.视图模型 (53)6.1.视图模型的状态 (53)6.2.视图模型实现类 (55)6.3.视图模型的上下文(D ORADO C ONTEXT) (56)6.4.视图模型中的JDBC开发 (58)6.4.1.事务管理 (59)6.4.2.异常处理 (60)7.业务逻辑框架整合范例 (61)7.1.S QL D ATASET (61)7.1.1.预定义Sql编程 (62)7.1.2.实现预定义Sql编程的动态性: (63)7.1.3.运行时Sql编程 (64)7.2.存储过程 (65)7.3.J A V A 实体对象 (66)7.3.1.记录集的监听器内部实现 (66)7.3.2.系统的业务对象实现 (67)7.3.3.通过引入第三方框架管理与组织自己业务对象的基础之上实现(如加入Spring,Hibernate) (69)8.数据坞 (71)8.1.数据模块中的D A TASET (71)9.典型界面开发 (83)10.权限管理和PROFILE (83)10.1.P ROFILE使用说明 (83)10.2.P ROFILE文件的定义 (87)10.3.视图模型(V IEW M ODEL)PROFILE的指定 (87)11.文件或BLOB字段的处理 (88)12.发布 (88)12.1.基本原理 (88)12.2.发布方法 (90)12.2.1.dorado studio打包: (90)12.2.2.其他工具打包: (91)13.升级 (91)14.附录 (93)14.1.参考程序光盘说明 (93)14.2.数据库配置说明 (93)1.前言dorado是由BSTEK公司推出的面向J2EE 的新一代Web应用的开发框架,支持AJAX 机制。
LightDB 数据库安装手册说明书
LightDB数据库安装手册1 前言恒生电子企业级数据库LightDB安装包名格式为:lightdb-x-version-revision-os.arch.ziplightdb-x:数据库名version:数据库版本号,目前最新为13.3-22.2,13.3表示基于PostgreSQL 13.3版本,22.2表示2022年第2个Release版本revision:源代码提交编号os:安装包适用的操作系统arch:安装包适用的CPU架构目前支持如下平台:Architecture OSx86_64(intel)CentOS7/RHEL7/rockylinux8/麒麟V10SP1x86_64(海光)麒麟V10/麒麟V10SP1aarch64CentOS7/RHEL7/rockylinux8/麒麟V10SP1/麒麟V10SP2LoongArch64麒麟V10SP1本文档主要介绍LightDB 在x86_64 CentOS 7.6平台的安装过程及注意事项,其他支持的操作系统如有差异,请根据实际情况灵活调整。
安装过程会自动在/home/lightdb/.bashrc中配置PATH、LTHOME、LTDATA等环境变量,安装完成后,需重新登录Shell会话生效。
2 推荐配置配置参数最低配置推荐配置CPU16核96核内存64GB256GB存储60GB,SSD NVMe1TB以上SSD NVMe或PMEM网络千兆网络千兆网络3 安装前准备本章节所有准备工作,如无特殊说明,均需要在root用户下进行。
3.1 防火墙配置如果您的环境有防火墙,则需要在防火墙中开启以下端口:端口协议用途默认5432TCP数据库服务123UDP NTP校时服务其中,数据库服务的端口5432为默认值,这个值在安装过程中可以自行指定,如果希望使用其他端口,则在此处需要将5432修改为实际值,其余用作EM服务和NTP校时服务的三个端口为固定值。
Fast Report设计手册V3.0
Fast Report 设计手册V2.0一、运用Fast Report 前提1.运用Fast Report 的前提-------------------------------------2二、Fast Report的基础设计1.选择数据源--------------------------------------22工具条的说明-------------------------------------33.插入报表页表头--------------------------------------34.把公司LOGO加到报表中--------------------------------------45.插入报表的表头数据源--------------------------------------46.插入报表的明细档数据源--------------------------------------57.属性的设定--------------------------------------58.报表画线的处理--------------------------------------69.群组功能的运用--------------------------------------610.报表所选对象的对齐工具条--------------------------------------611.文本对齐工具条--------------------------------------712.报表合计--------------------------------------7三、Fast Report 的中级设计1.把小写金额转换为大写金额--------------------------------------92把日期格式转换成字符格式来显示--------------------------------------93.自定义变量的用法--------------------------------------94.在报表明细区打印多张图片--------------------------------------105.在报表中插入页码--------------------------------------126.在每页都打印表身的抬头--------------------------------------127.在报表的每页或最后一页打印一些说明---------------------------------12四、Fast Report 的高级设计1.在报表中添加其他表---------------------------------142.在报表中打印条码---------------------------------163.换页打印在每页固定打印行数---------------------------------174.自动折行/行高---------------------------------175.把报表转出到其他格式---------------------------------186.如何在审核的单据上打印时做电子签名---------------------------------187.如何按货品+特征来汇总打印---------------------------------20一、运用Fast Report 前提设计Fast Report 的前提是首先在营业人资料里的第四页面中的打印类新选择[Fast Report打印] 二、Fast Report 的基础设计在日常作业单据下点打印系统会出现如下窗口:如果需要新建报表请点击[新建]按钮,修改请点击[设计]按钮。
智慧信息化平台系统开发项目数据迁移方案
智慧信息化平台系统开发项目数据迁移方案目录一、内容描述 (2)1.1 项目背景 (2)1.2 数据迁移的重要性 (4)1.3 方案目标 (5)二、项目概述 (6)2.1 项目目标 (6)2.2 项目范围 (7)2.3 项目预期成果 (8)三、数据迁移需求分析 (9)3.1 数据来源 (10)3.2 数据类型 (11)3.3 数据质量要求 (13)3.4 数据迁移策略 (14)四、数据迁移技术方案 (15)4.1 迁移工具选择 (16)4.2 迁移过程规划 (17)4.3 关键技术考虑 (19)五、数据迁移实施计划 (20)5.1 迁移时间表 (21)5.2 迁移任务分配 (22)5.3 迁移过程中的风险管理 (23)六、数据验证与测试 (24)6.1 验证方法 (25)6.2 测试流程 (26)6.3 测试结果评估 (28)七、数据迁移后的整合与优化 (29)7.1 数据整合策略 (30)7.2 数据优化措施 (32)7.3 数据服务质量保证 (33)八、项目验收与风险管理 (34)8.1 项目验收标准 (35)8.2 风险监控与应对 (36)九、项目总结与经验教训 (37)9.1 项目成果总结 (38)9.2 经验教训归纳 (39)一、内容描述本项目旨在构建一个高效、稳定且安全的数据迁移方案,以确保智慧信息化平台系统开发过程中,现有数据能够准确、完整地迁移到新系统中。
数据迁移涉及多个关键环节,包括数据采集、清洗、转换和装载,每个环节都需要精心策划和执行。
在数据采集阶段,我们将与业务部门密切合作,明确迁移数据的范围和格式,确保所有相关数据能够被有效捕获。
数据清洗环节将去除重复、错误或无效的数据,以保证迁移数据的准确性和可用性。
转换阶段则将对数据进行必要的格式调整和标准化处理,以适应新系统的需求。
在装载阶段,我们将把清洗、转换后的数据高效地加载到新系统中,确保数据的完整性和一致性。
整个数据迁移过程将遵循严格的质量控制标准,确保迁移数据的准确性和完整性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Edited by Foxit Reader ActiveX For Evaluation Only. Copyright(C) 2006-2009 Foxit Corporation
FastDB 使用的符号更加流行于面向对象的编程中,而不是面向关系型数据库的 编程中。 将表行看作是对象的实例,表是这些对象的类。 跟 SQL 不一样,FastDB 是面向对象的,而并不跟 SQL 一样是工作在一张二维表 上的。 所以每一个查询的执行结果就是一个类的一组对象。 FastDB 查询语言和标准的 SQL 的主要区别如下:
共享内存的最大尺寸受系统参数限制, 下面数据是在 Linux im_monitor 2.6.9-42.ELsmp 下的缺省值: cat /proc/sys/kernel/shmmax 33554432 默认大小都是 32M; 同样 fastdb 里的代码也用 32M 作为容量上限,而且一旦越界,不再进行扩容; 进程退出; 具体的代码行是:inc/database.h 文件里 #ifdef DISKLESS_CONFIGURATION // In diskless confiuration database can not be reallocated const size_t dbDefaultInitDatabaseSize = 32*1024*1024; #else const size_t dbDefaultInitDatabaseSize = 1024*1024; #endif 为了支持 fastdb 在更大的共享内存下工作,需要做两点修改: 1、系统参数的修改 修改 /etc/sysctl.cfg,添加入下内容: kernel.shmmni = 4096 kernel.shmall = 2097152 kernel.shmmax = 1073741824 sysctl -p 执行; 或者 echo 1073741824 > /proc/sys/kernel/shmmax ,注意需要加到启动脚本 里去; 2、修改 fastdb 源代码 const size_t dbDefaultInitDatabaseSize = 32*1024*1024;修改为合适的数值; 比如 32->1024 鉴于共享内存大小限制,以及不能动态扩容:当容量超过限制,进程不能进行再 分配,直接退出,对于大容量的系统,对 fastdb 的数据使用超过 2G, 或者总的 虚拟内存使用量可能接近 3G, 则不建议在 32 位操作系统中使用共享内存方式的 fastdb,可以改用文件方式,实际上对于文件方式,也是通过 mmap 的方式来实 现,对于 io 的写基本等同于内存效率,且可以在预分配的基础上扩容。
fastdb 共享内存模式下的限制 2009 年 9 月 13 日 imhub 分类 用过的技术 最近项目中使用了 fast db,为了提高访问效率,fast db 采用 diskless 模式编 译。
Edited by Foxit Reader ActiveX For Evaluation Only. Copyright(C) 2006-2009 Foxit Corporation
mdb 支持位操作,and/or 不仅可以用于布尔操作数,也可以用于整型操作数。对整型操作数进行 位-or 操作的得到的一个整型操作数。 mdb 也支持对整型和浮点型的幂运算(x^y) Structures
结构可以作为记录的组成部分,结构的字段可以通过标准的点表达式访问: company.address.city 结构字段可以以指定的顺序索引和使用,可以嵌套并且嵌套的层次没有限制。
文章出处:飞诺网 ():/course/7_databases/database_ot her/2007106/77043.html
FastDB 不同访问模式带来的影响 本文原创作品,如需转载请注明来源,作者:姜涛, towerjt@
FastDB 中不同的访问 DataBase 的模式在程序中能体现不一样的结果。 从试验可以知道,不同访问模式主要体现在对表的锁上。 (具体的试验,大家如果觉得有必要,可以自己做一下,用
Edited by Foxit Reader ActiveX For Evaluation Only. Copyright(C) 2006-2009 Foxit Corporation
Edited by Foxit Reader ActiveX For Evaluation Only. Copyright(C) 2006-2009 Foxit Corporation
FastDB 应用开发指南(一) FastDB 是一个高效率的内存数据库系统,具有实时性能和方便的 C++ 接口。 FastDB 并不支持客户端/服务器结构,所有使用 FastDB 数据库的应用程序都必 须运行在同一台主机上。 FastDB 为具有主导读取访问模式的应用程序作了优化。 通过消除数据传输的开销和使用高性能的锁工具实现了查询执行的高速度。 数据库文件和使用该数据库的每一个应用程序占用的虚拟内存空间相映射。 所以查询在应用程序的任务中执行,不需要进行任务切换和数据传输。 在 FastDB 中,通过原子指令来实现对数据库并发访问的同步,对查询处理几乎 不增加任 何开销。 FastDB 假设整个数据库都在当前内存中,并且在这个假设的基础上优化查询算 法和结构。 另外,数据库缓存管理几乎不会给 FastDB 增加任何开销,同时 FastDB 也不需 要在数据库文件和缓冲池中进行数据传送。 这就是为什么 FastDB 比将所有数据放在缓冲池中的传统数据库明显速度快的原 因。 FastDB 支持事务、在线备份和系统崩溃之后的自动恢复。 事务提交协议基于一个影子根页算法,对数据库执行原子更新操作。 恢复操作执行起来非常快,给关键应用程序提供了高效率。 另外,它还取消了事务日志,提高了系统的整体性能,并且能够更加有效地使用 系统资源。 FastDB 是面向应用程序的数据库,使用应用程序的类信息来构建数据库的表。 FastDB 支持自动系统赋值,只允许你在一个地方——你的应用程序的类中,改 变它们的值。 FastDB 为从数据库中提取数据提供了一个灵活而方便的接口。 使用类似于 SQL 的语言来书写查询语句。 这些非原子字段、嵌套数组、用户自定义类型和方法、直接指向对象内部的指针 等后关系性能,简化了数据库应用程序的设计,并且使得它们更加高效。 虽然 FastDB 的优化是基于整个数据库都存放在机器的物理内存的这个假设上 的,我们依然可以将 FastDB 使用在那些大小超过系统物理内存的数据库上。 最后,标准操作系统的交换机制将会起作用。 但是所有的 FastDB 的算法和结构的优化都是基于数据存放在内存中这个假设 上的,所以数据交换的效率不会很高。 查询语言 FastDB 支持一种语法和 SQL 非常类似的查询语言。
程序员可以定义结构的方法用于查询。该方法不能有参数并且只能返回原子类型 (布尔值、数值、字符串和引用类型)。这些方法也不能改变对象句柄。如果该 方法返回字符串,这个字符串应当使用 new 运算符分配,因为其值拷贝后串就会 被删掉。
用户定义方法可以用来创建虚组件-就是不存储在数据库中由别的组件计算出来 的组件。例如,mdb dbDateTime 类型只包括一个整型的时间戳组件以及如 dbDateTime::year(),dbDateTime::month()之类的方法,可以在应用中指定像这 样的查询:"delivery.year = 1999",
1、 在多张表之间没有连接,也没有嵌套的子查询。 通常,查询是从一张表中返回一个对象集。 2、 表的最小的列单元是标准的 C 类型。 3、 FastDB 只有空指针,而没有 NULL 值。 我完全同意 C.J Date 关于三值逻辑的评论,也赞同他使用默认值的建议。 4、 结构和数组可以用作记录成员。 提供了一个特定的 exists 引用来定位数组中的元素, 5、 不仅可以用无参用户方法来定义记录成员,也可以用它来定义 表记录(对 象)。 6、 应用程序可以定义仅带一个简单字符型或数值型参数的用户函数。 7、 支持对象之间的指针,并且自动支持反向指针。 8、 start from follow by 的构造 C++类结合得比较紧密,关键字和语言的标识符都区分大小 写。 10、 不能进行整型和符点类型到字符串类型的隐式转换。 如果需要进行这种转换的话,必须显式地进行。
标识符大小写敏感,由 a-z, A-Z, '_' 或者 '$'字符开头,只能包含 a-z, A-Z, '_' 或者 '$'字符,不能与 SQL 保留字重复
保留字列表 abs and asc between by current desc escape exists false first follow from in integer is length like last lower not null or real start string true upper 使用 ANSI 标准注释,在双连字符后直至行尾的字符都被忽略。
subsql -access [read-only concurrent-read concurrent-update normal] 可以指定访问数据的模式,然后自己构建相关测试用例进行测试 ) dbDatabase::dbAllAccess,一旦某个进程使用该模式访问表,如果该进程使用 了 insert、update、delete 等修改数据的操作, 其他访问该库的进程的所有操作(包括 open、select)都会被阻塞,直到该操 作提交或回滚 dbDatabase::dbConcurrentUpdate,使用该模式访问表,如果某个进程对数据进 行修改性的操作,同时另外的进程使用 dbDatabase::dbReadOnly 或者 dbDatabase::dbConcurrentRead 读取数据,不会 出现阻塞的情况。 但是 dbDatabase::dbReadOnly 会把未提交的脏数据读出来;而 dbDatabase::dbConcurrentRead 则不会 如果多个进程都使用 dbDatabase::dbConcurrentUpdate,实际效果和 dbDatabase::dbAllAccess 一样,一旦一个进程修改了数据, 其他进程所有的操作(包括 open、select)都将阻塞,直到该操作提交或回滚 结论: FastDB 没有提供商用数据库的记录锁甚至是页级锁的机制,锁的范围是一个 DataBase 文件, 所以在日常的使用过程中: 1、仔细分析业务需求,如果你只需要访问数据,那么最好是使用 dbDatabase::dbReadOnly 或者是 dbDatabase::dbConcurrentRead。这样的话,你的访问操作不会因为这个表被其 他进程修改数据而阻塞。 2、如果一个表有不止一个使用者,那么涉及修改数据的进程应该使用 dbDatabase::dbConcurrentUpdate, 而只读的进程使用则使用 dbDatabase::dbConcurrentRead。 3、如果表只有一个使用者,则可以根据需要,使用 dbDatabase::dbAllAccess 或者 dbDatabase::dbReadOnly 4、所有的数据修改操作,如果有并发要求,一定要及时提交