用sql语句向数据表中插入记录的格式为:
INSERT INTO [数据库名!] 表名 [(字段名表)] VALUES (表达式表)
关于Insert语句的格式及用法请参考:sql语言教程。
本例对看实例学VFP:向数据表中添加记录时自动生成编号一例的插入数据部分用sql语句进行了改写,运行界面如下图:
本例用到了“数据1”数据库中的“网站信息表”,关于该数据库的情况已经在看实例学VFP:示例数据库一文中给出,这里不再详述。
制作步骤如下:
一、新建表单form1,并将其Caption属性值设为“用sql语句向数据表中添加记录”,AutoCenter属性值设置为.t.,widht属性值设为290,height属性值设为210,将其保存为“用sql语句向数据表中添加记录.scx”。
二、向表单添加一个grid控件,将其readonly属性设置为.t.,其RecordSourceType值采用默认的“1-别名”,在表单设计器中将其宽和高粗略调小一些即可,具体属性值我们将在表单的init事件代码中对其进行设置。
三、向表单添加三个Label控件,其属性值依次设置为“编号”、“网站名称”和“网站网址”,将这三个控件排成一列;在这一列Label控件右侧添加三个文本框控件,属性值不用设置采用默认即可,也把它们排成一行;在第一个文本框的右侧添加两个命令按钮command1和command2,其Caption属性值依次设置为“添加”和“退出”。适当调整一下各控件的大小和位置,“表单设计器”如下图所示:
四、添加事件代码:
(一)表单form1的unload事件:
set exact off
close data
(二)表单form1的init事件:
set exact on set talk off use 网站信息表 this.Text1.value="" this.Text2.value="" this.Text3.value="" with this.grid1 .width=290 .height=110 .left=0 .top=0 .recordsource="网站信息表" .deletemark=.f. .visible=.t. .readonly=.t. .ColumnCount=3 .Column1.Header1.Caption="编号" .Column1.Header1.BackColor=RGB(255,255,190) .Column2.Header1.BackColor=RGB(255,255,190) .Column2.Header1.Caption="网站名称" .Column3.Header1.BackColor=RGB(255,255,190) .Column3.Header1.Caption="网站网址" .Column1.width=75 .Column2.width=80 .Column3.width=150 endwith this.grid1.Setall("DynamicBackColor","RGB(224,225,255)","Column") calculate max(编号) to maxbh &&在数据表中查找出序号最大的记录 szbh=val(right(maxbh,3)) &&取出数字部分 if szbh=0 then &&判断数字部分是否为0 zdbh='wz001' else zdbh='wz'+padl(alltrim(str(szbh+1)),3,'0') &&生成自动编号 endif this.Text1.value=zdbh this.Text1.readonly=.t. this.Text2.setfocus
(三)命令按钮command1(“添加”按钮)的click事件代码:
b=alltrim(thisform.Text2.value) c=alltrim(thisform.Text3.value) if empty(b) &&此条件成立则说明该文本框是空的 messagebox("请输入网站名称",16,"系统提示") return else locate for 网站名称=b if .not.eof() &&此条件成立,说明要添加的内容和表中有重复的 go top messagebox("不允许有重复的网站名称",16,"系统提示") return endif endif if empty(c) messagebox("请输入网站网址",16,"系统提示") return else locate for 网站网址=c if .not.eof() go top messagebox("不允许有重复的网站网址",16,"系统提示") return endif endif msg=messagebox('确定要添加记录吗?',32+4,'系统提示') if msg=6 INSERT INTO 网站信息表; (编号,网站名称,网站网址) ; VALUES(alltrim(thisform.Text1.value),; alltrim(thisform.Text2.value),; alltrim(thisform.Text3.value)) messagebox('保存记录成功!',64,'系统提示') thisform.grid1.refresh calculate max(编号) to maxbh &&在数据表中查找出序号最大的记录 szbh=val(right(maxbh,3)) &&取出数字部分 if szbh=0 then &&判断数字部分是否为0 zdbh='wz001' else zdbh='wz'+padl(alltrim(str(szbh+1)),3,'0') &&生成自动编号 endif thisform.Text1.value=zdbh thisform.Text2.value="" thisform.Text3.value="" thisform.Text2.setfocus thisform.refresh endif
(四)命令按钮command2(“退出”按钮)的click事件代码:thisform.release
五、运行“用sql语句向数据表中添加记录.scx”。
参考资料:
vfp基础教程:http://bianceng.cn/vfpjc/index0.htm
vfp初级教程:http://bianceng.cn/cc/index.htm
vfp中级教程:http://bianceng.cn/mcc/mcc.htm
vfp高级教程:http://bianceng.cn/hcc/hcc.htm
VFP网络开发:http://bianceng.cn/VFPwz/vfpwlkf.htm
vfp调用api函数:http://bianceng.cn/VFPwz/vfpapi.htm
VFP报表打印:http://bianceng.cn/VFPwz/vfpreport.htm
VFP常用技术:http://bianceng.cn/VFPwz/vfpcyjs.htm
VFP经验汇总:http://bianceng.cn/VFPwz/vfpjyhz.htm
VFP控件使用:http://bianceng.cn/VFPwz/vfpkjsy.htm
VFP数据处理:http://bianceng.cn/VFPwz/vfpsjcl.htm
本例代码在Win2003+VFP6.0环境下调试通过。
查看全套“菜鸟也学VFP”教程
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!