我现在要为access做一个类似于sql server查询分析器一样的东西,用于执行SQL脚本,脚本是由建模类的工具生成,在access中不能执行一系列的SQL脚本,也不识别IF 语句,我用ADOcommand执行脚本会报错,从脚本文件中读取一段脚本执行一次,然后再继续读取执行,如果出错则跳过这一段,读取下一段在执行。请问这样的程序应该怎么写,望高手指教,最好有一段简单的代码。
谢谢,顶着有分,问题解决在开帖加分。
谢谢,顶着有分,问题解决在开帖加分。
解决方案 »
- 求Delphi公交换乘查询的算法
- 如何把文本导入数据库?
- 我刚从BED转到ADO,请问有没有控件能代替TBatchMove的功能(在线等待)
- 一个简单的问题
- 招在杭州用delphi的程序员(专职或兼职)
- 大家好,刚学做组件,一个很菜的问题。
- 如何知道ADOQuery中的SQL查询使用了那些字段
- 下午的考试挂了,没心情,散分!
- 请问如何通过ADO得ACCESS数据表的关键字和索引?
- 哪里有全中文(最好是像FASTREPORT一样由公司开发并能提供升级服务)报表打印控件下载或出售?
- 请大侠指点:关于编辑框中光标的坐标的获取:比如说光标在memo中,而鼠标在memo之外,如何用api函数获取光标的坐标
- 如何判断两个时间相差几天?
谢谢,顶着有分,问题解决在开帖加分。做这个东西的时候,sql server的查询分析器可以给你一些帮助,但不要把思路限制在里边死了。可以自定义一套规则,也可以使用sql server中的规则,但对规则一定要理解透彻。
例如你说的if 语句,那时sql server中的东西,如果你要在你做的查询分析器中支持,你就必须对语句进行语法的解析,看看是否有单独的if出现,并且后边的内容是否复合格式。从脚本文件中读取一段脚本执行一次,然后再继续读取执行,如果出错则跳过这一段,读取下一段在执行。
关于这一部分内容,还是要定义好规则,例如,你是按照什么将sql语句进行分段的,是空一行,还是一个分号之类。当然也可以分析语法来决定下面内容是另外一段还是新的一段,好比
select ***** where ** in()你可以理解为一段。定义好规则后,语法分析。最后说,至于你说的执行,反而不是什么太大问题,将解析好的分段sql 分别读取,然后执行,捕获异常。作为通常使用来说,够了。