【IT168 信息化】
问:isql提示错误,无法连接?
在数据库服务器的主机上(WindowsXP+Kingbase6.1)使用sa用户本地连接一切正常的情况下,在Ubuntu9.10上使用isql却无法连接,提示:
f@f-r51:/usr/local/KingbaseES/6.1.1/bin$ sudo ./isql -h 192.168.29.166 -Usa -Wsa
isql: FATAL: password authentication failed for user "sa"
f@f-r51:/usr/local/KingbaseES/6.1.1/bin$ sudo ./isql -h 192.168.29.166 -U sa -W sa
isql: FATAL: password authentication failed for user "sa"
答:从报错的情况看是这样的:
您在初始化数据库的时候,用户名或者密码指定为小写,在使用isql的时候,需要在用户名或密码之前加上引号。例如:用户名为sa,密码为sa,在使用isql时要这样写,isql -U "sa" -W "sa" -d SAMPLES
问:如何使用sql语句进行分页操作?
代码如下:
//表名:tabels 每页显示几条: pagesize 一般就是表的ID:term 当前页数:pagenum
//排序字段:termOrder 总记录数(输出参数):rowCount
CREATE PROCEDURE PUBLIC.Pagers
(
tabels varchar(50),pagesize int,term varchar(100),
pagenum int,termOrder varchar(100),out rowCount int
)
AS
DECLARE
sql varchar(1000);
BEGIN
sql :='select top '+pagesize +' * from '+tabels+
' where '+term+' not in (select top '+(pagenum-1)*pagesize+' '+
term +' from '+tabels+ 'order by '+termOrder+' desc) order by '+
termOrder +' desc';
call sql;
rowCount := select count(*) from tabels;
END
答:议创建一个包,在包体里写两个存储过程,一个返回总记录数,一个返回分页的记录。然后调用这两个存储过程。
问:SQL修改列数据类型?
ALTER TABLE SC
ALTER COLUMN Sno CHAR(20);
为什么老是出错呢???
ERROR:syntax error at or near "char"
LINE 2:ALTER COLUMN SC CHAR(20);
答:正确的语法是这样的:
alter table SC alter column Sno TYPE char(20);
问:vs2005连接kingbase数据库的写法?
请问下vs2005连接kingbase数据库的写法?前提是不用在控制面板配置数据源,直接用代码代替。主要是需要连接字符串的写法
答:在SQLDriverConnect 调用时使用如下连接串:
"DRIVER={KingbaseES 6 ODBC Driver}; ServerName=192.168.0.8;Port=9999;uid=SYSTEM;pwd=MANAGER;Database=TEST;"
其中ServerName、Port、uid(数据库用户名)、pwd、Database对应用户自身环境的设定进行修改即可。
问:如何通过命令查看当前会话参数的取值?
答:可以通过以下方式:
1、Show 参数名;
显示配置参数的当前会话的取值。 例如:SHOW ALL,显示所有参数设置。
2、通过SELECT语句从 sys_settings 视图获取所需要的参数设置信息。
问:kingbaseES系统配置参数的分几类?
答:按照参数的设置方式,系统参数可以分为:
1、固定级 系统一旦初始化,固定级参数的值就确定下来,是只读参数,不能对其重新设置,例如case_sensitive 等。
2、系统级 对所有数据库及连接是相同的。必须重新启动服务器才可以重新取值。
3、全局级 对所有数据库及连接是相同的。
4、会话级 该参数每个会话可以有不同的取值。
问:对于Log的输出,有哪些参数可以控制?
答:对于log的输出,主要有,Log_connections、Log_disconnections、Log_duration、Log_line_prefix、Log_statement、Log_hostname这几个参数可以控制。
对于各参数的详细功能,在kingbaseES联机帮助里参数说明部分已说得比较详细,可参考该部分内容。
问:如何将一个现有的小系统从Access移植到金仓?
我有一个用ASP加Access做的小作业,要是移植到金仓的数据库,大概怎么做,会有很大的工作量吗?
答:移植的工作量不大,但是具体要看您应用的复杂程度了。大概要分几个步骤做:
第一,安装好金仓数据库KingbaseES,然后使用金仓数据库的数据迁移工具JDTS,把Access数据库中的数据迁移到KingbaseES中;
第二,在你的操作系统中建立系统odbc数据源,建立一个系统DSN,指向KingbaseES,然后把你应用中连接数据库的代码更改为KingbaseES的ODBC连接串;
第三,确认以上两步成功完成后,修改应用中涉及到数据库的语句,主要有两方面,一是某些从Kingbase中取出的数据,类型需要做一定的修改,二是如果使用了Access函数,需要进行对应Kingbase函数进行修改,这里要注意的是,即使函数名一致,语法也很可能不同,需要仔细对比一下。
上面提到的金仓数据库KingbaseES的工具及函数的使用方法在KingbaseES的联机帮助和金仓论坛中都可以找到。
问:wal_buffers参数的主要作用是什么?怎么起到调优作用?
答:wal_buffers主要用于设置共享内存中用于数据库事务日志缓冲区的大小,在KingbaseES V6.1中该值默认为64KB。
如果应用系统中要经常执行一些较大的事务,可以把该值设得大一些,会有利于性能的提升。
问:kingbaseES提供了哪些主要的命令行工具?
答:KingbaseES提供了功能丰富且强大的命令行工具,利用这些工具可以实现对数据库的各种操作和管理。主要包括:
Kingbase:启动KingbaseES服务
isql:交互式SQL查询工具
initdb:数据库初始化工具
sys_backup:数据库物理备份工具
sys_dump:数据库逻辑备份工具
sys_restore:数据库逻辑还原工具
imp与exp:兼容Oracle的数据库导入导出工具
以上工具的详细说明可以参考KingbaseES联机帮助。
问:当表名为小写字母的时候,如何通过命令备份数据库中的该表?
答:命令备份数据库中指定表的语法可以参考联机帮助,表名为小写字符时,可以通过双引号来指定,但有时会存在操作系统提供的shell窗口传送双引号时把它给过滤掉的情况,这时需要在双引号前加反斜杠指明双引号即可。
例如用户名为:SYSTEM ,密码为MANAGER,,要备份一个SAMPLES中名为abc123的表,命令可参考如下:
sys_dump -U SYSTEM -W MANAGER -t \"123abc\" -f C:\123abc.dmp SAMPLES