用vfp的数据库自动生成CursorAdapter类代码
2012-10-13 19:14
204 查看
CursorAdapter类无论是用vfp自带的生成器,还是自己写代码,都非常麻烦,并且,如果修改了数据库中的表,又得改写代码。所以,我就写了个根据数据库自动生成CursorAdapter类的代码。现奖代码贴在下面。
使用说明:参数为数据库名称。
使用说明:参数为数据库名称。
LPARAMETERS dbcname Close Databases Open Database &dbcname Exclusive Dimension gatables(1) createc="" gatables='' m=Adbobjects(gatables, "TABLE") If Not Empty(m) For i=1 To m Use gatables(i) Exclusive Select gatables(i) ziduan=Afields(arrayname) createc=createc+[PUBLIC CursorOb]+gatables(i)+Chr(13) createc=createc+[CursorOb]+gatables(i)+[=createobject("CursorAdapter") ]+Chr(13) createc=createc+[with CursorOb]+gatables(i)+Chr(13) createc=createc+[.Alias ="]+[Cursor]+gatables(i)+["]+Chr(13) createc=createc+[.DataSourceType ="Native"]+Chr(13) createc=createc+[.DataSource ="]+dbcname+["]+Chr(13) createc=createc+[.SelectCmd = "select * from ]+gatables(i)+["]+Chr(13) createc=createc+[.KeyFieldList = "]+arrayname(1,1)+["]+Chr(13) createc=createc+[.cursorschema="] upfieldlist=[TmpList1=""]+Chr(13) upnamelist=[TmpList2=""]+Chr(13) For i2=1 To ziduan createc=createc+arrayname(i2,1)+Space(1)+arrayname(i2,2)+Space(1) upfieldlist=upfieldlist+[TmpList1=TmpList1+"]+arrayname(i2,1)+[,"]+Chr(13) upnamelist=upnamelist+[TmpList2=TmpList2+"]+arrayname(i2,1)+Space(1)+gatables(i)+[.]+arrayname(i2,1)+[,"]+Chr(13) If At(arrayname(i2,2),[CNFQV])>0 createc=createc+[(]+Alltrim(Str(arrayname(i2,3)))+Space(1) If Empty(arrayname(i2,4))=.F. createc=createc+Alltrim(Str(arrayname(i2,3))) Endif createc=createc+[)] Endif createc=createc+[,] Endfor createc=Left(createc,Len(createc)-1)+["]++Chr(13) upfieldlist=Left(upfieldlist,Len(upfieldlist)-3)+["]+Chr(13) upnamelist=Left(upnamelist,Len(upnamelist)-3)+["]+Chr(13) createc=createc+[.Tables ="]+gatables(i)+["]+Chr(13) createc=createc+upfieldlist createc=createc+[.UpdatableFieldList = TmpList1]+Chr(13) createc=createc+upnamelist createc=createc+[.UpdateNameList=TmpList2]+Chr(13) createc=createc+[.CursorFill()]+Chr(13) createc=createc+[.cursorrefresh]+Chr(13) createc=createc+[ENDWITH]+Chr(13) Use Endfor Endif =Strtofile(createc,"cca.prg")&&输出到程序文件中。 Close Databases
相关文章推荐
- C#分析数据库结构,使用XSL模板自动生成代码
- (2)通过脚手架自动生成controller和view ----代码先行/数据库先行
- GreenDao自动生成Android数据库操作代码
- SQL 数据库生成自动编号代码
- 用MyBatis-Generator根据数据库自动生成代码
- MyBatis自动生成代码】根据数据库生成对应实体类,SQL方法等
- [C#]一步一步开发自己的自动代码生成工具之一:获取SQL2005的数据库表结构
- [c#]一步一步开发自己的自动代码生成工具之一:获取sql2005的数据库表结构
- C#分析数据库结构,使用XSL模板自动生成代码 - 清清月儿 .NET万花筒 Asp.net技术 Asp.net教程 Asp.net源码 Asp.net基础 Asp.net控件 Asp.net入门 - CSDNBlog
- 【译】MVC3 20个秘方-(2)通过脚手架自动生成controller和view ----代码先行/数据库先行
- 自动生成与数据库交互代码
- 根据数据库自动生成java代码
- JAVA 自动生成对应数据库表的JPA代码工具
- Jooq根据数据库表自动生成代码教程及配置
- C#分析数据库结构,使用XSL模板自动生成代码
- 基于数据库的自动化生成工具,自动生成JavaBean、数据库文档、框架代码等(v5.8.8版)
- Eclipse(LUNA4.4.2)配置hibernate(4.3.8)连接数据库并自动生成代码
- C#自动数据库代码生成的思路
- (2)通过脚手架自动生成controller和view ----代码先行/数据库先行
- idea中mybatis generator自动生成代码配置 数据库是sqlserver