BOS V6.2开发指南_KSQL

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.3 SQLServer 2005 jtds Driver
jdbc:ksql:net.sourceforge.jtds.jdbc.Driver:dbtype=mssqlserver:jdbc:jtds:sqlserver://192.168.61.28: 1433/sql2005_600;instance=eas2005;
1.2 KSQL 的必要性
公司的多数据库支持策略 大多数开发人员只熟悉一种数据库 大多数不同数据库的方言特性具有共通性,可以抽取为公共的语言特性 SQL 翻译效率很高 KSQL 提供临时表管理等功能
1 / 78
金蝶 BOS 开发指南_KSQL
2 KSQL URL 格式
jdbc:ksql::dbtype=<dbtype></dbtype>[:translate=true|false][:trace=on|off[ :file=]][:DBSchema=]:
3.2.5 数据类型解释
CHAR
定义固定长度字符数据类型。 语法
6 / 78
金蝶 BOS 开发指南_KSQL
CHAR [ ( n ) ] 参数 n 整型值,指定字符数据长度。它可以是 1 到 2000 中的值。如没定义,默认值是 1。
VARCHAR
定义可变长度字符数据类型 语法 VARCHAR[ ( n ) ] 参数 n 整型值,指定字符数据长度。它可以是 1 到 2000 中的值。如没定义,默认值是 1。
BLOB CLOB NCLOB
NUMBER(38)
DATE
3.2.2 数据类型分类
KSQL 支持的数据类型为 CHAR , VARCHAR , NCHAR,NVARCHAR,BINARY,VARBINARY, BLOB ,CLOB , NCLOB, INT, INTEGER,DECIMAL ,DATE,TIME DATETIME
VARBINARY
[1,8000]
VARBINARY[(n)]
LONG RAW
BLOB CLOB NCLOB INT,INTEGER DECIMAL DATETIME
[1,2G] [1,2G] [1,1G] [-2^31,2~31-1] [-10^31+1,10^31-1]
IMAGE TEXT NTEXT INT DATETIME
CHAR VARCHAR NCHAR NVARCHAR BINARY VARBINARY BLOB CLOB NCLOB DECIMAL INT BINARY VARBINARY BLOB CLOB NCLOB DECIMAL INT INTEGER DATETIME (最高)
这是一个开源的 SQL Server 和 Sybase 的 JDBC Driver,据说性能比微软提供的性能要好,我测试 的结果也是。
/projects/jtds
使用新的 Driver,只需要在配置数据源时修改就行了,无须修改代码。
如果原来的 URL 是这样的:
2.8 Sybase Driver
jdbc:ksql:com.sybase.jdbc2.jdbc.SybDriver:dbtype=oracle9:jdbc:sybase:Tds:127.0.0.1:5000/dbNa me
2.9 PostgresSQL Driver
jdbc:ksql:org.postgresql.Driver:dbtype=postgres:jdbc:postgresql://127.0.0.1:5432/dbName
BINARY
二进制数据类型 语法
7 / 78
金蝶 BOS 开发指南_KSQL
BINARY [ ( n ) ] 参数 n 整型值,
BLOB
可变长度二进制数据数据类型。 语法 BLOB [ ( n ) ] 参数 n 整型值,它可以是 0 到 2G 之间的值。如没定义,默认值是 1,
CLOB
可变长度非 Unicode 数据数据类型。 语法 CLOB [ ( n ) ] 参数 n 整型值,它可以是 0 到 2G 之间的值。如没定义,默认值是 1,
2.6 DB2AS400 Driver
jdbc:ksql:com.ibm.as400.access.AS400JDBCDriver:dbtype=as400:jdbc:as400://127.0.0.1/dbNam e
2.7 MySQL Driver
jdbc:ksql:com.mysql.jdbc.Driver:dbtype=MySQL:jdbc:mysql://127.0.0.1:3306/dbName
参数 注释 INT 和 INTEGER 可表示[-2^31,2~31-1]间的数值。
DECIMAL
带定点精度和小数位数的数值数据类型 语法 DECIMAL [ ( p [ , s ] ) ] 参数 p 精度, 指定小数点左边和右边可以存储的十进制数字的最大个数。 精度值可以是 1 到最 大精度 31 之间的值。 S 小数位数,指定小数点右边可以存储的十进制数字的最大个数。小数位数可以是[0,p] 中的值。
斜体
| (竖线) [ ] (方括号) {}(大括号) [ ,...n ] [ ...n ] 加粗
<标签> ::=
除非特别申明,否则所有对数据库对象名的 KSQL 引用可以是格式如下: [database_name.] object_name object_name 引用对象的名称。 当引用某个特定对象时,不必总是为 KSQL 指定标识该对象的数据库实体名称,也可以直 接使用 object_name 引用某个特定对象,但它要依赖它自己所在的上下文环境。
3.2 KSQL 数据类型 3.2.1 数据类型预览
数据类型 CHAR VARCHAR NCHAR 长度 [1,254] [1,4000] [1,2000] Sql server CHAR[(n)] VARCHAR[(n)] NCHAR[(n)]
4 / 78
Oracle CHAR[(n)] VARCHAR2(n) NCHAR[(n)]
NCHAR
固定长度的 UNICODE 数据的数据类型。 语法 NCHAR [ ( n ) ] 参数 n 整型值,指定字符数据长度。它可以是 1 到 4000 中的值。如没定义,默认值是 1。
NVARCHAR
可变长度长度的 UNICODE 数据的数据类型。 语法 参数 NVARCHAR [ ( n ) ] n 整型值,指定字符数据长度。它可以是 1 到 4000 中的值。如没定义,默认值是 1。
Db2 CHБайду номын сангаасR[(n)] VARCHAR(n) ?
金蝶 BOS 开发指南_KSQL
NVARCHAR BINARY
[1,4000] [1,2000]
NVARCHAR[(n)] BINARY[(n)]
NVARCHAR2(n) RAW( n ) VARCHAR(n) FOR BIT DATA LONG VARCHAR FOR BIT DATA BLOB(n) CLOB(n) ? INT DATE TIME TIMESTAMP
金蝶 BOS 开发指南_KSQL
金蝶 BOS 开发指南——KSQL
1 概述
1.1 什么是 KSQL
KSQL 对金蝶产品实现多数据库支持非常重要。所有与金蝶 ERP 产品支持的数据库通讯 的应用程序都通过向数据库服务器发送 KSQL 语句来实现通讯, 与应用程序的用户界面无关。 KSQL 是 SQL92 的子集。 它抽取了 SQL92 的部分语法来满足金蝶 ERP 产品的最大功能 集合,并随着金蝶 ERP 产品的发展逐渐丰富和完善。 一种我们自己定义的 SQL 方言 需要翻译到具体数据库厂商的 SQL 方言 KSQL 具备的特性,能够翻译到我们支持的所有数据库中 类似于 MS SQL SERVER 的 T-SQL
2.4 Oracle9 Driver
jdbc:ksql:oracle.jdbc.driver.OracleDriver:dbtype=oracle9:jdbc:oracle:thin:@127.0.0.1:dbName
2.5 DB2_UDB Driver
jdbc:ksql:com.ibm.db2.jcc.DB2Driver:dbtype=db2:DBSchema=DB2ADMIN:jdbc:db2://127.0.0.1 :50000/dbName
2.1 SQLServer2000
jdbc:ksql:com.microsoft.jdbc.sqlserver.SQLServerDriver:dbtype=mssqlserver:jdbc:microsoft:sqls erver://127.0.0.1:1433;DataBaseName=dbName
3 / 78
金蝶 BOS 开发指南_KSQL
3 KSQL 规范
本章包含 KSQL 的规范和一些注意事项。
3.1 KSQL 语法规则
规范 大写 小写 用于 KSQL 关键字或文法终结符(在具体语法子句中予以解释) KSQL 的语法子句和文法非终结符(在具体语法子句中予以解释) KSQL 语法中用户提供的参数。 分隔括号或大括号内的语法项目。只能选择一个项目。 可选语法项目。不必键入方括号。 必选语法项。不要键入大括号。 表示前面的项可重复 n 次。每一项由逗号分隔。 表示前面的项可重复 n 次。每一项由空格分隔。 数据库名、表名、列名、索引名、存储过程、实用工具、数据类型名 以及必须按所显示的原样键入的文本。 语法块的名称。此规则用于对可在语句中的多个位置使用的过长语法 或语法单元部分进行分组和标记。适合使用语法块的每个位置由括在 尖括号内的标签表示:<标签>。
2.2 SQLServer jtds Driver
jdbc:ksql:net.sourceforge.jtds.jdbc.Driver:dbtype=mssqlserver:jdbc:jtds:sqlserver://192.168.61.28: 1433/master
2 / 78
金蝶 BOS 开发指南_KSQL
32ksql数据类型321数据类型预览数据类型长度sqlserveroracledb2char1254charncharncharnvarchar14000varcharnvarchar2nvarcharnnchar12000ncharnncharn金蝶bos开发指南ksql78nvarchar14000nvarcharnnvarchar2nbinary12000binarynrawbitdatavarbinary18000varbinarynlongrawlongvarcharbitdatablob12gimageblobblobnclob12gtextclobclobnnclob11gntextnclobintinteger2312311intnumber38intdecimal1031110311datetimedatetimedatedatetimetimestamp322数据类型分类ksql支持的数据类型为charncharnvarcharbinaryvarbinaryblobclobnclobintintegerdecimaldatetimedatetime323数据类型层次结构字符和二进制字符串大对象charvarcharclobunicode字符和字符串大对象ncharnvarcharnclob二制数据类型binaryvarbinary二进制大对象blob精确数字intinteger近似数字decimal时间数据类型金蝶bos开发指南ksql78日期date时间time时间戳datetime324数据类型的优先顺序当两个不同数据类型的表达式用运算符组合后数据类型的优先顺序规则确定哪种数据类型要向另一种转换
5 / 78
金蝶 BOS 开发指南_KSQL
日期 DATE 时间 TIME 时间戳 DATETIME
3.2.4 数据类型的优先顺序
当两个不同数据类型的表达式用运算符组合后, 数据类型的优先顺序规则确定哪 种数据类型要向另一种转换。 优先顺序低的数据类型向优先顺序高的数据类型转 换。如果此转换不是目标数据库所支持的固有转换,则返回错误。当两个操作数 表达式有相同的数据类型时,运算的结果就为那种数据类型。 下面是 KSQL 数据类型的优先顺序:
jdbc:ksql:com.microsoft.jdbc.sqlserver.SQLServerDriver:dbtype=mssqlserver:trace=o n:file=null:jdbc:microsoft:sqlserver://192.168.19.131:1433;DatabaseName=JLRelease2;S electMethod=Cursor; SendStringParametersAsUnicode=false
则新的 URL 就应该是这样:
jdbc:ksql:net.sourceforge.jtds.jdbc.Driver:dbtype=mssqlserver:trace=on:file=null:jdbc :jtds:sqlserver://192.168.19.131/JLRelease2;sendStringParametersAsUnicode=false;prepa reSQL=2
NCLOB
可变长度 Unicode 数据数据类型。 语法 NCLOB [ ( n ) ] 参数 n 整型值,它可以是 0 到 1G 之间的值。如没定义,默认值是 1,
INT 和 INTEGER
使用整数数据的精确数字数据类型。 语法 { INT | INTEGER }
8 / 78
金蝶 BOS 开发指南_KSQL
3.2.3 数据类型层次结构
字符和二进制字符串大对象 CHAR VARCHAR CLOB UNICODE 字符和字符串大对象 NCHAR NVARCHAR NCLOB 二制数据类型 BINARY VARBINARY 二进制大对象 BLOB 精确数字 INT INTEGER 近似数字 DECIMAL 时间数据类型
相关文档
最新文档