信息化 频道

数据库常见问题解答

  【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
 

0
相关文章