高分求教高手

CNNO01 2006-09-02 12:50:50
我现在要为access做一个类似于sql server查询分析器一样的东西,用于执行SQL脚本,脚本是由建模类的工具生成,在access中不能执行一系列的SQL脚本,也不识别IF 语句,我用ADOcommand执行脚本会报错,从脚本文件中读取一段脚本执行一次,然后再继续读取执行,如果出错则跳过这一段,读取下一段在执行。请问这样的程序应该怎么写,望高手指教,最好有一段简单的代码。
谢谢,顶着有分,问题解决在开帖加分。
...全文
354 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yoyoxu 2006-09-06
  • 打赏
  • 举报
回复
路過
hanjie216 2006-09-06
  • 打赏
  • 举报
回复
丁阿
giftzheng 2006-09-06
  • 打赏
  • 举报
回复
Access有自带一个简单的'查询分析器'
CNNO01 2006-09-06
  • 打赏
  • 举报
回复
谢谢各位兄弟帮忙。
wudi_1982 2006-09-06
  • 打赏
  • 举报
回复
我现在要为access做一个类似于sql server查询分析器一样的东西,用于执行SQL脚本,脚本是由建模类的工具生成,在access中不能执行一系列的SQL脚本,也不识别IF 语句,我用ADOcommand执行脚本会报错,从脚本文件中读取一段脚本执行一次,然后再继续读取执行,如果出错则跳过这一段,读取下一段在执行。请问这样的程序应该怎么写,望高手指教,最好有一段简单的代码。
谢谢,顶着有分,问题解决在开帖加分。

做这个东西的时候,sql server的查询分析器可以给你一些帮助,但不要把思路限制在里边死了。可以自定义一套规则,也可以使用sql server中的规则,但对规则一定要理解透彻。
例如你说的if 语句,那时sql server中的东西,如果你要在你做的查询分析器中支持,你就必须对语句进行语法的解析,看看是否有单独的if出现,并且后边的内容是否复合格式。

从脚本文件中读取一段脚本执行一次,然后再继续读取执行,如果出错则跳过这一段,读取下一段在执行。
关于这一部分内容,还是要定义好规则,例如,你是按照什么将sql语句进行分段的,是空一行,还是一个分号之类。当然也可以分析语法来决定下面内容是另外一段还是新的一段,好比
select ***** where ** in()你可以理解为一段。定义好规则后,语法分析。

最后说,至于你说的执行,反而不是什么太大问题,将解析好的分段sql 分别读取,然后执行,捕获异常。作为通常使用来说,够了。
CNNO01 2006-09-05
  • 打赏
  • 举报
回复
Access不支持两个以上的SQL,比如create table a(id int),create table b(id,int)这样的他只能执行一个,后面会显示create 语法错误,所以只能一个一个的读取出来,分开执行。
caixinke 2006-09-03
  • 打赏
  • 举报
回复
帮顶一下
yuehaiyang 2006-09-03
  • 打赏
  • 举报
回复
可以执行一系列语句呀,但是只是说对于复杂的语句和函数,不支持而已。
我觉得,你首先应该做语句分析,如可以使用go来区别语句块;然后才是执行,最后显示结果
CACACACACA 2006-09-03
  • 打赏
  • 举报
回复
mark
CNNO01 2006-09-03
  • 打赏
  • 举报
回复
没人来啊,我顶
fireflyc 2006-09-02
  • 打赏
  • 举报
回复
可以把每一个SQL用一个对象去实现,出现问题的话只是那一个对象的问题。

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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