科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Delphi数据库编程技巧  

Delphi数据库编程技巧  

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

我原来在万千的新闻组Delphi版上闲逛那段时间,发现经常有人提出一些数据库方面的技巧性问题,问题其实不难,但是要一个简单的解决方案,可能也破费思量,特别在此简单谈谈。

作者:emi 来源:yesky 2007年11月1日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
3. 如何扑捉运行SQL语句时的错误

  老是有朋友在开发一些开放的数据库接口(比如Delphi的SQL Explorer工具)时发愁,既然是开放的,当然需要允许用户使用SQL语句访问数据库,这些还好办,一旦用户的运行SQL语句出现错误,程序员如何扑捉该异常呢?很简单,看看下面的函数:

  
Const
  ExecSQLMode = 0 ;
  OpenSQLMode = 1 ;
  ResultRight = ''SQL query result is right'' ;
  ...
  function RunSql(RunQuery: TQuery; Sqls: TStringList; var ErrorMsg: string;
  Mode: integer) : integer ;
  begin
  ErrorMsg := ResultRight ;
  Result := 0 ;
  try
  RunQuery.DatabaseName := ''RecordDB'' ;
  RunQuery.SQL.Clear() ;
  RunQuery.SQL.AddStrings(Sqls) ;
  if Mode = ExecSQLMode then
  RunQuery.ExecSQL()
  else
  RunQuery.Open() ;
  except
  on e:exception do
  ErrorMsg := e.Message + #13 + #10 +''--- 错误是俺发现的 ---'' ;
  end;
  end;


  朋友看明白了吧,我的函数很简单,将SQL语句代码段作为参数传递给TQuery组件,通过设置查询方式(ExecSQLMode、OpenSQLMode)来处理有结果集返回的数据查询语句(select)或是没有结果集返回的数据操作语言(update、delete、insert、create等)。而异常的扑捉呢,我们扑捉所有异常的老祖宗Exception,因为Delphi的所有异常都是从Exception继承下来的,这样一个简单的SQL语句运行和异常处理函数就完成了,一旦返回的ErrorMsg的值不是ResultRight,ErrorMsg就会返回异常的信息,程序员就可以加以判断以处理不同的情况。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章