如何将VBB从MYSQL数据库转换到SQLServer数据库(个人心得)

elogsoft 2002-01-22 07:53:27
如何将VBB从MYSQL数据库转换到SQLServer数据库(心得)
ELOGSOFT【原创】
VBB论坛是目前论坛中做的比较出色的论坛之一。它为VBulletin.com出的商业小程序。目前在网络上比较流行。
其功能也比较丰富。但其至今未出支持其他数据库的版本。所有再没有MYSQL数据库的朋友在安装时就会出现麻烦。
在VBB论坛中,其中大部分的HTML代码都储存在数据库中。因此修改起来比较麻烦,但是因两种数据库差别不是很大
因此代码修改量为中等。下面我们一步一步介绍VBB向SQLServer转换的过程。
1数据库的转换注意点:
请大家注意MYSQL数据库与MSSQL数据库字段定义的区别:
A:保留字的修改
在MYSQL数据库中有一张用户表名称为USER,这就与MSSQL数据库的保留字产生冲突,因此在每个程序中
涉及到调用USER表时就出现错误。该错误信息为:".处有不正确的名称"(具体忘记了)。
B:自增加字段的修改
在MYSQL中自增加字段定义为int(10) unsigned DEFAULT '0' NOT NULL auto_increment这种定义方式。
在MSSQL中就必须将其改掉:int IDENTITY 。注意:不要在后面加(1,1),因为后面有许多HTML的代码要
导入其中。其他字段可根据MYSQL与MSSQL对照表中修改即可。
C:HTML数据内容的导入
在VBB安装程序INSTALL.PHP中,对于自增加字段MYSQL可以直接写入数字用INSERT语句,但MSSQL不可,所有您必须将
所有自增加字段删除,让其自增加。还有在自增加字段中MYSQL可以插入NULL,而MSSQL则不可,也必须删除。
2程序的转换过程中应注意的问题:
A:PHPLIB库的转换
在VBB中使用了PHPLIB中的DB_MYSQL.INC的类库,建议大家直接将程序中的MYSQL全部替换为MSSQL,不要用
PHPLIB中的DB_MSSQL.INC来替换。在转换的过程中其中获取当前刚插入的记录的ID信息,在MYSQL中有单独的
函数INSERT_ID(),而MSSQL中则没有此类的PHP函数。因此必须用其他方法取代:SELECT MAX(iD) FROM TABLE
这样即可获得。
B:其他不兼容数据库函数的修改
1:LIMIT 函数
该函数在MYSQL是取得表中中间一段数据即LIMIT 2,10将取出从2到10的8条记录,而在MSSQL中将不支持。
我采用的方法是先取出TOP 10 在剔除掉TOP 2的数据。方法虽笨但是有效的。
2:NULL函数
在VBB程序中有大量的自增加字段用NULL来插入,必须将其删除,程序才可正常运行。

总结:在VBB/MYSQL->VBB/MSSQL过程中,其中最多的转换将是SQL语句的转换。用INSTALL.PHP程序来安装可能
有麻烦,我建议采用数据导入的办法来。还有在图象处理中,因VBB论坛是将图象存储在数据库ATTACHMENT表中,
ADDSLASHES函数将不会把MSSQL不接受的字符去掉,但是MYSQL确可以接受。我采用的方法是用BASE64_ENCODE函数来
对其出来,然后取数据时用BASE64_DECODE()函数来恢复。


以上是本人在修改过程中的心得体会,与大家分享,如大家有更好的方法,请告知。如有误请大家指正。本人的
邮箱为:support@elogsoft.com。MSSQL版的VBB下载地点为HTTP://WWW.ELOGSOFT.COM/BBS

...全文
116 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rain_Z001 2002-01-22
  • 打赏
  • 举报
回复
LIMIT语句,这个是MySQL的特色,sybase,oracle都没有!
mySQL不能嵌套查询,没有存储过程和触发器,大的系统应用肯定不如MS SQL!希望能早点加上。
platinum 2002-01-22
  • 打赏
  • 举报
回复

“1:LIMIT 函数
该函数在MYSQL是取得表中中间一段数据即LIMIT 2,10将取出从2到10的8条记录,而在MSSQL中将不支持。
我采用的方法是先取出TOP 10 在剔除掉TOP 2的数据。方法虽笨但是有效的。”

搞不懂 MS SQL 怎么连这个都没有……
panjisheng 2002-01-22
  • 打赏
  • 举报
回复
难懂
qsnake 2002-01-22
  • 打赏
  • 举报
回复
幸苦了

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧