从mssql到access

以前自己管理了一大堆的服务器的时候怎么也没有想过自己的主页还会用到access,那个时候sql server装在很多的服务器上,把我的网站挂在这些服务器上,编码的时候,既不用浪费自己的内存啊cpu资源,又可以让sql server完成我得重要冬冬的备份,实在是没想到几年后当我工作,再把自己的网站放在个人电脑上孤芳自赏时,嘿嘿,竟然出了一些问题,于是借着俺对原来代码进行修理的过程,俺来记录一下从mssql到access转移的问题,我主要说说程序,其实倒数据也会有些问题。

      首先说一下这个时间问题。时间字段在mssql里用起来比较自由,但在access中,程序就得加上两个##,不过那已经是什么年代的问题了,现在大家都用asp.net了,我的网站也不例外,我预先就知道这个问题le,所以就懒得考虑asp.net里写一个sql=“insert into mytable values (#”+mytime+”#)等问题,asp.net不是有parameters吗,mycommand.Parameters.Add("@myDate",OleDbType.DbTimeStamp).value=DateTime.Now;嘿嘿,这样我就避开了考虑那个问题,阿门,这次总不会有顾虑了吧,毕竟asp.net比asp要进步吧。可是,run一下,妈妈的,还是出来一大堆的黄颜色字,又错了,我仔细研究了一下,怪怪了,如果把DateTime.Now变成DateTime.Now.ToString();就好了。艾,这我就没搞懂。其实有啥能搞懂的,只是个规定罢了吧。

         再说个让人气氛的问题,在sql中因为没有是/否这种属性,我一般是用bit,bit占位小,正好用来对应1,0啊,所以我得sql语句是这么写的:sql=”select  * from mytable where isSon=1”,到了access上,这个字段变成了是/否,愣是没有给显示出来我的那些孩子们来。而且也温柔的不报错,让我好一顿的找啊。如果改成isSon=True就ok了。

        还有一个问题真让人头疼,我至今没有解决,就是一个replace的语句。这个replace 呢一般access是不支持的,如果装了jet4.0 sp8后,启动了沙盒才行,说起沙盒来真想骂一下那些不懂计算机只懂几个abc字母就给翻译计算机书的人,沙盒是啥,我来不及搞清楚,反正说是这样可以,后来,我便按照做法启动了沙盒,还好,在access的查询中能用replace了,可是我得程序里的就不能用。那不能用怎么办,我一时还有点一愁没展。我得语句大致是这个样子的:

 sql="update infoindex set infoId=Replace(infoid,'"+Panel1.Controls[i].ID+"','"+newInfoId+"'),InfoFather=Replace(infoFather,'"+Panel1.Controls[i].ID+"','"+newInfoId+"') where InfoId like '"+Panel1.Controls[i].ID+"_%'";

我的想想在access下怎么转变一下,本人最怕的就是麻烦啊。说道这里还是想多说几句,实际上从程序的sql到access的查询是有个引擎在转换的,要不在access模糊查询的时候我们用的是*,但是实际程序我们还是用通常的%,但是你要说奇怪吧它还就是挺奇怪,也许是因为我还没读大乘真经吧,可是access中的函数,你必须在程序中用一样的,比如mssql中的函数substring在access中就得去掉,必须换成mid,服了这个access了。我想可能这个access和程序得执行,可能和vba有关吧。具体就不懂了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值