标准表达式中数据类型不匹配(Access 时间格式)

早上,在尝试把一个应该程序从Mysql的数据库迁移到Access(数据库改用Access)时,出现了这样一个错误:标准表达式中数据类型不匹配
我忙活了一个早上,也没有弄清楚是为什么,后来,突然想起原来使用Access的时候,时间是用#括起来的(在Mysql中是可以用‘’的);而我在迁移的时候,这些Sql语句都几乎没有变过。马上把操作时间的地方改用#,问题迎刃而解!

我这里想说的是,数据库之间的差距其实是非常大的,总是以为应该是差不多的,但是,即使是差一点点,但是在应用程序中的话,这个一点点就会被扩大n倍。要发现这个小差别就够搞死你了。而且,好像MS的数据库也不是支持标准的Sql语句的。 
所以,以后在设计数据库的时候,如果以后要做数据库方面的迁移的话,那么在设计的时候,要绝对的考虑清楚各个数据库的兼容问题,以及支持的Sql语句之间的区别。

PS: 早上发现另一个会出现这种情况的问题,就是在查询的时候,如果运用Group By子句,且select的内容不包含在group by中(如select name, sum(money) from t_test group by id),也会出现上述问题。
汇聚杭州外卖:外卖汇
Tag标签: 数据库,Access
posted @ 2008-02-18 13:50 随风逝去(叶进) 阅读(2217) 评论(9)  编辑 收藏

  回复  引用  查看    
#1楼 2008-02-18 14:02 | 戏水      
截图 说的再详细些吧
  回复  引用    
#2楼 2008-02-18 15:20 | 阿里 [未注册用户]
不仅仅是数据库,很多编程语言虽然思路差不多,但细节差异特别大。
这也是我不愿意听到有人说 语言都差不多的原因。
  回复  引用  查看    
#3楼 [楼主]2008-02-18 15:35 | 随风逝去      
@阿里
其实可能确实是差不多,只是,这个差不多在整个应用程序中被放大之后,就会相去甚远!
失之毫厘,谬之千里!
  回复  引用  查看    
#4楼 2008-02-18 15:52 | GuoYong.Che      
记得当年使用DAO访问Access数据库时SQL语句中通配符%应改为*,这问题就困扰了我几天。
  回复  引用  查看    
#5楼 [楼主]2008-02-18 17:34 | 随风逝去      
@GuoYong.Che
就是这种“小”问题最烦人了

  回复  引用  查看    
#6楼 2008-02-18 18:01 | Dove.Net      
参数化就不会有这种问题了吧
  回复  引用  查看    
#7楼 2008-02-18 21:20 | 蛙蛙池塘      
这个可以移除首页吧,或者你多总结几条再发上来
  回复  引用  查看    
#8楼 2008-02-19 17:09 | 一路走好      
select name, sum(money) from t_test group by name
這樣寫才對
  回复  引用  查看    
#9楼 [楼主]2008-02-20 09:11 | 随风逝去      
@一路走好
这样写是对,可是有时候,name可能是相同的,但其实是不同的人; 只有id才是唯一的!

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
博客园首页

新闻频道

社区

小组

博问

网摘

闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-02-19 12:38 编辑过
成果网帮您增加网站收入


相关链接:
 
Free Web Counter
Free Web Counter