今天去面试,看了我做的东西,我说做了10天,面试的人说做的时间太长了。晕倒~然后他叫我写一个程序,考查一下我的SQL的掌握程度:写一个类似于查询分析器一样的工具软件,能供判断SQL语法语法是否正确!比如:select * from table where selet A.*,B.* from A Inner Join B on上边的两个语句都是有问题的,我写的程序应该提示语法有错误!注:这是工具软件,是不需要连接到数据源提供者的。大哥们给个思路!从来没有做过这样的程序!!
调试欢乐多
http://www.quanye.com/
http://www.csdn.net/cnshare/soft/15/15227.shtm
http://www.aspenterprisemanager.comhttp://www.freevbcode.com
http://www.sqleditor.com
select
insert
update
create table
create proc
create index
insert into ..select.....
假设以上程序都只是针对一个表的,各位有什么好的方法?
以 select句子为例,分析整个字符串,
select 关键字记为A
as 关键字记为B
from 关键字记为C
其他记为D
最后分析结果是ADCD或者ADBDCD或者AD,DBD,DCD格式的就是语法正确的
像ADBDC就是错误的漏了from后面的表名
不知道楼主能不能明白。
这个是编译原理的语法分析问题,隔的久了,大学里编译原理的课程设计就是做的c程序的语法分析器
按关键字来区分,括号内的递归下次处理
例如select * from (select * from table1)
那么就处理select * from ....
再处理select * from table1
当中的语句再进行细分化处理
select
insert
update
create table
create proc
create index
insert into ..select.....
假设以上程序都只是针对一个表的,各位有什么好的方法?过路人.如果就是上面几条的话,不知道用空格区分合不合你意,,取前面的数,,到空格,再分组,LOOP判断,
select xx from xxx ,,Y
select x x from xx x ,,Y
select from xxx ,,N
select xx from ,,N
嘿嘿,,到时你就表演这几条给他看看算了,,, 就是那些表名,字段名也可以带空格,麻烦点,
临场磨刀上,,UPing
给我30天也写不完.
2.临时生成ACCESS数据表.
3.执行该SQL语句.
4.将错误码返回.
郁闷ing,难道VB程序员就天生要受人欺负和歧视?不爽啊!
他说啦,不要连数据库,要不都可以直接捕获错误来处理啦!
他说啦,不要连数据库,要不都可以直接捕获错误来处理啦!
'---------------------------------------------------------
其实,对一个问题产生难道和恐慌心理的根源是你找不到解决该问题的方法..'他说啦,不要连数据库,要不都可以直接捕获错误来处理啦!'
1.不要连接数据库,我只是在代码中动态生成一个数据库而已...换句话说,生成的数据库只是一个中间物,我们借助它可能解决很多问题.
2.不可能使用错误捕获..
你自已想一想吧,VB中和数据库中定义的错误有多少??几千条,几万条??还是更多..不用捕捉,一条条判断??又不能用数据库??如果这样,你大可将面试你的这个家伙 嘲弄一翻 然后离开.因为,他也不可能...
3.你提供的只是EXE文件.内部如何处理的是我的事,我完成就行了.现在不是在考试,没有这么多条框框.话又说回来,考你的这个家伙水平一定不会怎么样,我敢肯定地说.
如果按他的考人思路,叫CSDN中随便一个人来考考他,一样可以将他考死.
给我写一个显卡驱动程序出来。又像我说我对sql非常非常的熟为了证明给你看于是拿出一堆我用过的
sql安装盘。同时怀疑那4000行程序是不是一堆if then else的正确sql格式的穷举判断
1.建立一个空ACCESS数据库.
2.临时生成ACCESS数据表.
3.执行该SQL语句.
4.将错误码返回.
VB 我们研究学习的都不够久 ! 哎 ! 郁闷啊!
加油吧 !大家一起努力!
那家公司应该这样出题,“写一个程序,由用户输入一句话,然后由程序判断这句话是否通顺或合理。”
他们以为是判断四则运算吗,是SQL语法那么多,变化又那么大,真要写,应该是能写出来的,关键是工作量太大了,恐怕一个人不是一两个月能做出来的