再问ado问题:如何得知一个sql语句的正确性?

farfh 2003-08-06 02:25:20
我经常出现sql不正确导致程序出错的问题,
请问有何办法能够先确定了sql语句的正确性再执行????
...全文
71 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
farfh 2003-08-12
  • 打赏
  • 举报
回复
问题没解决,不过我还是结贴了,谢谢大家关心。
如果有人愿意帮俺看看,我留个qq:14773900
全天8小时再线,不觉得我弱智的请帮我看看,谢谢了先。

commandconque 2003-08-11
  • 打赏
  • 举报
回复
你使用catch{
}try(_com_error *e){
AfxMessageBox(e->Description());
}
这样你可以知道错误的信息,但一般不是高手是无法理解那英文式的中文的,我用的是将SQL放到MICROSOFT SQL2000 server 的查询分析器中校验语法错误和查询错误之后在再程序中对应出错信息,请注意单引号和双引号,在程序中的有时将字符串自动加上‘’;
如在
_VARIANT 类型中给SQL语句时将参数自动加入'' ,而查询器中必须对字符补加
guanjinke 2003-08-11
  • 打赏
  • 举报
回复
除非你写个函数来检测SQL语句的语法,否则的话你只能通过异常处理来得到SQL语句的正确性。可以根据异常号来判断是哪种错误。
my_mtx 2003-08-11
  • 打赏
  • 举报
回复
如果是别人传给你的,不大好办,只有让他传条件,你自己拚SQL语句,多加判断。这样安全一些。
再有作动态存储过程,你在程序中调用
likangnian0128 2003-08-11
  • 打赏
  • 举报
回复
靠语法分析来保证sql语句的正确性……

写起来太累了…………

不值得。

而且也不能判别sql当中涉及具体的表名、字段名、字段值等信息的错误。
nomenn 2003-08-11
  • 打赏
  • 举报
回复
你学了编译原理???
自己写一些代码判断 sql语句的正确阿
zerphy 2003-08-11
  • 打赏
  • 举报
回复
try catch
topYellow 2003-08-08
  • 打赏
  • 举报
回复
UP
BuZhang_AP97091 2003-08-08
  • 打赏
  • 举报
回复
VC 程序给了你自由发挥的空间

自己实现吧
个人比较同意TRY CATCH
dzqsuper 2003-08-08
  • 打赏
  • 举报
回复
looking...
farfh 2003-08-08
  • 打赏
  • 举报
回复
做个小程序啊,sql语句是拼凑出来的,检查不出语句出错的模块的原因,我在format语句之前都对每一个变量做了检测的,可检查不出来,所以就想在sql语句上面打主意,这个问题出现的几率很低,但一出错就会导致程序当掉,平时debug什么的都检查不出来的,只能靠log错误,所以改起来很恼火
ZouMorn 2003-08-08
  • 打赏
  • 举报
回复
是对的 SQL 语句就不会错,是错的就就不会对,我是说固定在代码里面。

如果你的 SQL 是别人传给你的,你在做引擎啊,我佩服!

如果你的 SQL 是靠代码拼凑起来的,请还是先严格一点过滤。

再说,SQL那么复杂的语法,只有到执行的时侯 数据库引擎才会告诉你对不对。
farfh 2003-08-08
  • 打赏
  • 举报
回复
写到存储过程中来执行也没用,郁闷死了.........
skink 2003-08-07
  • 打赏
  • 举报
回复
mark,看最后怎样解决
我也遇到同样的问题,但是没有楼主这么必须要解决,我改了,不判断,直接运行。tnnd,在数据库里面执行一下,那算什么,如果为此写一个算法,还不值当。
grey_whp 2003-08-07
  • 打赏
  • 举报
回复
catch 抓到的异常里面有详细的说明,你抓抓看看就知道了
farfh 2003-08-07
  • 打赏
  • 举报
回复
try catch俺还是会的,写程序这是基本需要啊,我自从写代码以来都加了的,但是这种方法也不成的。程序照样当,根本没办法
farfh 2003-08-07
  • 打赏
  • 举报
回复
也就是说任何人传一个sql语句过来,我能先检测,然后再执行,就这个意思。^_^
farfh 2003-08-07
  • 打赏
  • 举报
回复
这个道理我懂啊,我不是抓不出错误来,只是即使能抓到错误,并且知道错误原因,可是这个错误无法避免,而且一旦产生就会让让程序当掉,这个大家可以自己测试,一旦使用ado执行一个错误的sql语句后,过一段时间程序几乎是一定挂,无论怎么处理都没用。我的意思就是要不出错误,而不是抓出错误,不知道俺说清楚了没有。希望有大侠能提供一下思路也好,谢谢了先
csuxiong 2003-08-06
  • 打赏
  • 举报
回复
好像只有try catch 亚!
wuchuncai 2003-08-06
  • 打赏
  • 举报
回复
vc也支持try...catch
加载更多回复(9)

4,011

社区成员

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

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