|
楼主 |
发表于 2016-4-6 14:16
|
显示全部楼层
本帖最后由 hyefeifei 于 2016-5-16 19:35 编辑
原本想讲一下学习sql环境搭建,发现虽然不难,但要讲的话,却是很麻烦,各位可安装vmware workstation 12 pro版,建虚拟机,装windows server 2008 r2,在其中安装sql 2008r2,这些操作的教程,百度到处都是,有空的话,也许会做一个视频给大家。
接着讲用临时表方式向数据库插入记录,且看程序截图:
因为后面还要讲到临时表,所以为避免枝蔓,在这里只对标示的8个参数讲解:
1、 因为现在是要向数据库插入记录,所以不需要从数据库返回记录,加Where 1=2 只从数据库返回字段信息。
2、 Recordset的Cursorlocation的属性可取以下2个值
a) Aduseserver 2
b) Aduseclient 3
当取2时,由数据库管理查询结果
当取3时,在本地内存中形成临时表
因为2是默认值,所以当此属性出现时,必定是取aduseclient值
3、这个参数除了下面两个值,其他基本不用
a) adOpenForwardOnly 0 '默认,打开一个只许前向类型的光标
b) adOpenStatic 3 '打开一个静态类型的光标
当我们只从数据库读取数据时,可以取仅向前(adopenforwardonly),这样速度最快。
一般来说,都是取3,也就是形成静态临时表,当cursorlocation值为aduseclient时,无论此参数取何值,都是静态临时表。
4、这处的参数,如果取adlockbatchoptimistic,那么,每次addnew时,都会把插入的记录存入缓冲区,直到执行 8 updatebatch时,才批量向数据库插入记录。
当取adLockOptimistic时,程序可以改为下图:
每次执行到update时,即向数据库插入当前记录。
如果省略了update,那么,每次执行到addnew时,会把上一条记录插入数据库,到最后,会少插入一条记录,所以不能省。
5、这里的参数,建议只取adcmdtext,这意思是说,strSQL变量里的字符串,永远要写标准的sql语句。
举个例子:
stSQL=”Fltab”
rst.Open strSQL, Conn, adOpenStatic, adLockOptimistic, adCmdTable
|
注意,当用fltab表名,取代了select * from fltab时,相应的,adcmdtext参数,要改为adcmdtable,告诉ado,strsql里存的是表名,此时,ado会自动把 select * from fltab传给数据库,得到同样结果。这里不建议这样做,永远使用adcmdtext是一个比较好的选择。
6、addnew 这个方法向数据库添加数据,除了如程序所未的方式外,你也可以这样使用addnew方法:
rst.addnew array(‘ZY编号’,’序号’,’部件’,’零件’,’工序’),array(arr(i,1),arr(i,2),arr(i,3),arr(i,4),arr(i,5))
即addnew后面跟两个数组,第一个数组放字段名,第二个数组放相应的字段值。
7、以下引当前字段的值的方法,结果是一样的:
rst.Fields("ZY编号").Value
rst.Fields(0).Value
rst(0).Value
rst("ZY编号").Value
rst! ZY编号.Value
rst.Fields ("ZY编号")
rst.Fields (0)
rst (0)
rst ("ZY编号")
rst! ZY编号 |
这里使用rst! ZY编号 这种方式
8、updatebatch 这个在前面已经讲过了,当以乐观批更新锁的方式打开数据表时,每修改或插入一条记录,都放在缓冲区中,直到updatebatch方法执行时,才更新数据库。
要讲的太多了,但是都讲,会冲淡主题,不讲,会有所缺漏,真是不好取舍,好在临时表这个话题,以后肯
定会再讲,先到这里吧。
下一讲,准备讲一下数据库与文本文件,及excel与文本文件交互,主要讲一下文本文件的随机打开方式
(Open 文件全路径 For Random As 文件号 Len = Len(udttype)) |
|
|