Excel-vfp-sql server结合应用实例2007-05-09说在前面我不是专职的 Visual FoxPro 程序员,从最后一次用Visual FoxPro 写完整的应用程序,算来也有10多月了。三天不练手生、三天不说口生,我这么长时间不写真的要变成傻子了!前几天好友托我些个Excel->SQL Server的数据转换程序,盛情之下就答应了。花了两个晚上草草写就,一定是Bug多多。但是由于不会牵涉商业机密、公司利益,所以就想拿出来与大家交流,您可不要笑话我这个不如流的程序…… 如果大家有兴趣,我会在接下来的日子里分析所有代码,直到使用Install Shield Express For Visual FoxPro将其打包。 前期计划 为什么选用Visual FoxPro我有两种选择:用Delphi或是用Visual FoxPro。我选择Visual FoxPro 来做这个项目是考虑到:Excel的数据可能非常凌乱,有时候一个Sheet中的数据会对应到多个SQL Server表中,所以必须通过我的程序分解、组合数据。用Delphi的话,会非常麻烦--很多的条件判断+很多的循环;用Visual FoxPro在这方面就有优势,本地强健的光标系统,支持传统的XBase语言与标准的SQL语句,还有谁比它厉害呢?凭我对这两种语言的了解,我认为:用Visual FoxPro 完成此工作肯定比Delphi来得容易很多!OOP的设计思路朋友对我说,用户的最终意见没有定下来,随时有改动的可能,所以我尽量用OOP的方式,把一些不太会改变得内容做在基类里,例如:SQL Server的连接、事务的管理、Excel 文件的打开、关闭等;对于变异性大的内容,我尽量用同一的接口封装在子类里,例如,读取Excel 数据,分解数据等。采用OLE方式读取Excel的数据这是会遭到非议的一个设计,起码我的朋友就有意见:要让客户装一个Excel,太烦了吧!我的想法是:现在机器里装一个Excel 应该不是太困难;直接读取Excel文档能减轻用户操作负担;每次的数据量不太大(1000条一下),所以速度也不成问题;用OLE方式直接读取Excel文件能使应用程序更强大!几点说明运行环境SQL Sever 7或2000(中英文版都可以);Visual FoxPro 7(英语版),不支持Visual FoxPro 3、5、6;Excel 2000或 XP (中英文版) ;中文操作系统。Excel文档的规范我附带三个Excel文档,规范就以他们为准。如果网友有类似的需要,可以在基类的基础上,自己制作子类以适应不同的需要。先用起来配置ODBC连接本程序用连接字符串的方式连接SQL Server,所有连接信息写在了ODBC.TXT文档里:DRIVER=SQL Server;UID=sa;DATABASE=Northwind;SERVER=BOE请按照你的情况更改连接字符串。建立数据表所有的脚本都在SQL.SQL文件里,在SQL Server的“Query Analyzer”中运行一下就行了。出错出错的信息都会写在ERROR.LOG文件中,你可以查阅。运行

库存数据对应:ck.xls虚拟库存数据对应:virstore.xls缴库单数据对应:sj.xls