Chinaunix首页 | 论坛 | 博客
  • 博客访问: 112717
  • 博文数量: 53
  • 博客积分: 2062
  • 博客等级: 大尉
  • 技术积分: 550
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-31 10:14
文章分类

全部博文(53)

文章存档

2011年(1)

2010年(3)

2009年(49)

我的朋友

分类: Mysql/postgreSQL

2009-05-31 13:34:05

我们单位是个综合性的门诊部,目前联网工作的机器有近二十台,门诊日常工作的关键流程基本上都在网上进行。我们目前的数据库软件使用的就是MySQL,下面把我在使用MySQL中遇到的一些问题与大家交流。

  一、从ORACLE到MySQL

  最初设计的单位信息系统,工作平台时使用的是Windows环境,工作站跑98,服务器跑2000,因为对MySQL并不熟悉,所以数据库选用的是ORACLE。

  三年前开始准备向linux开发环境过渡,正好当时单位有许多新业务要向局域网上移植,网络上的业务量大大增加,老服务器速度太慢,于是新购置一台服务器,联想T280,装机的时候我就直接装上了红旗linux的操作系统,数据库就使用了系统里带的MySQL。

  在Windows环境中我的开发工具是C++Builder,数据库接口用的是开发工具里带的BDE。使用ORACLE时,BDE里直接有ORACLE的驱动, 使用MySQL时稍稍麻烦一点,BDE里没有直接对MySQL的驱动,但可以通过ODBC的方式和MySQL连接。首先安装MySQL官方的ODBC驱动 程序,然后在控制面板的数据源里添加系统DSN,把MySQL服务器加进去,添加成功之后,在BDE里就会看到刚才添加的DSN,程序访问MySQL就通 过这个DSN来完成。

  之后就是程序的修改。从ORACLE转向MySQL的程序移植比较突出的问题有两个:一是数据表的名称大小写问题,二是函数问题。

   在送往ORACLE服务器的SQL语句中,数据表名的大小写是不敏感的,SQL语句大小写的区别仅仅是为了美观,但在Linux上的MySQL里,大写 和小写的表名称含义却不一样,“TABLE”和“table”在ORACLE里表示的同一个表,但在MySQL里它们是两个不同的表。

   函数问题比较突出的一个是关于日期的函数。在程序里许多地方的操作都与日期有关,ORACLE中用到日期的SQL语句中一般都是这么 写:to_date('2009-02-03','yyyy-mm-dd'),在MySQL中却可以直接这么写:‘2009-02-03’,取系统日期的 函数在ORACLE中是sysdate,在MySQL中则是curdate()。其它的函数因为用的比较少,所以矛盾并不突出。

  把这两个问题解决之后,程序就可以正常运行了。当时的移植并没有一步到位,采用了逐步过渡的方法,有些数据表放在ORACLE里,有些数据表放在MySQL里,共用了一段时间后,才完全移植到MySQL上。





ChinaUnix-ITpub网站MySQL技术征文大赛

作者:IT168 sundp70

阅读(803) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~