关于VFP开发软件系统中对错误统一处理的代码?(分享)

敦厚的曹操 2011-09-01 02:47:00
比如,我开发了一个软件系统,能不能在开始处有一段代码(不是【try】,也不是【在表单中错误】)可以

捕获在系统操作中出现的错误,实现的目的是:
1、没有VFP出错的信息,变成我定义好的友好提示(比如:程序出错了,请返回!)。
2、捕获出错的信息(是VFP或SQL server的出错信息),我想把他放在一个表里,回头检查。
3、在程序的主程序中用一段代码不是【try】,也不是【在表单中错误】或某一段程序的error处理。
不知我说明白没,各位狐友有做过的,给分享一下。谢谢!
...全文
273 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyxgq 2011-11-29
  • 打赏
  • 举报
回复
十豆三老师回复
敦厚的曹操 2011-09-02
  • 打赏
  • 举报
回复
要说还是十豆三老师呀!精神和技术水平不得不让我们狐友佩服和崇拜。
十豆三 2011-09-01
  • 打赏
  • 举报
回复
敦厚的曹操 2011-09-01
  • 打赏
  • 举报
回复
为答谢各位,我给大家分享一段我操作sql server的代码。截出来的,主要是sql语句,程序是参考的。

* --------------------------- \\ 新建临时表数据库

m_dbf='a1'
m_sql="CREATE DATABASE life" && \\ sql语句
IF SQLEXEC(gnMyLogHandle,m_sql,m_dbf) = -1
ELSE
MESSAGEBOX("临时文件csj_temp没有数据,无法更新数据,请检查!",48,"众成软件提醒您!")
RETURN
ENDIF

m_dbf='a1'
m_sql="delete from "+"life.dbo."+m_table && \\ 删除表中的数据
IF SQLEXEC(gnMyLogHandle,m_sql,m_dbf) = -1
ENDIF

* ------------------- \\ 先删除临时数据库的表



m_dbf='a1'
m_sql="delete from "+"life.dbo."+m_table && \\ 删除表中的数据
IF SQLEXEC(gnMyLogHandle,m_sql,m_dbf) = -1
ENDIF


* ----------------------------------------------------- \\ 获得数据表字段,先获得所有字段

,再去除主键字段

t_name=m_table && \\ 取表名

* --------------------------- \\ 调字段及描述

m_sql="DECLARE @table_name AS varchar(max) SET @table_name = '"+t_name+"';
SELECT sys.columns.name as name2,sys.columns.name,sys.types.name,

sys.columns.max_length, sys.columns.is_nullable, "+";
(SELECT count(*) FROM sys.identity_columns WHERE

sys.identity_columns.object_id = sys.columns.object_id AND sys.columns.column_id =

sys.identity_columns.column_id) "+";
AS is_identity, (SELECT value FROM sys.extended_properties WHERE

sys.extended_properties.major_id = sys.columns.object_id AND sys.extended_properties.minor_id =

sys.columns.column_id) AS description"+";
FROM sys.columns, sys.tables, sys.types WHERE sys.columns.object_id =

sys.tables.object_id AND sys.columns.system_type_id = sys.types.system_type_id AND

sys.tables.name = @table_name ORDER BY sys.columns.column_id"



m_dbf='a1'
m_sql="INSERT life.dbo."+m_Table +" SELECT "+m_field+" FROM

"+m_database+".dbo."+m_table+ " as aaa" && \\ 表追加数据
IF SQLEXEC(gnMyLogHandle,m_sql,m_dbf) = -1
MESSAGEBOX("系统在复制【"+m_table+"】表时发生错误,请查找原因,点确定

继续执行!")
ENDIF






m_dbf='a1'
m_sql="drop table "+"csj_temp.dbo."+m_table && \\ 删除表语句
IF SQLEXEC(gnMyLogHandle,m_sql,m_dbf) = -1
ENDIF

m_dbf='a1'
m_sql="select * into "+"csj_temp.dbo."+m_table+" from

"+m_database+".dbo."+m_table && \\ 复制表语句
IF SQLEXEC(gnMyLogHandle,m_sql,m_dbf) = -1
MESSAGEBOX("系统在复制【"+m_table+"】表时发生错误,请查找原因,点确定继续

执行!")
ENDIF











2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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