你的意思是: 带new的,声明一个Connection对象(内存中不存在这个对象); 不带new的,不仅声明一个对象,而且将这个对象实例化(也就是在内存中分配空间); 是不是?另外你说“要使用,必须实例化”: 就是说是用Dim cnn As new ADODB.Connection后必须还要用Dim cnn As ADODB.Connection,否则无法是用,是这样吗?
就是说是用Dim cnn As new ADODB.Connection后必须还要用Dim cnn As ADODB.Connection,否则无法是用,是这样吗Dim cnn As new ADODB.Connection set cnn = ADODB.Connection
你恰巧说反了,不带New 没有实例化 带New ,实例化了
错了 Dim cnn As new ADODB.Connection set cnn = new ADODB.Connection
再问几个问题: 1、根据你的答复,说明必须要带上new才能正常工作,是不是? 2、很多源码中只有Dim cnn As ADODB.Connection,不带new,又是为什么?什么意思? 3、有些ACCESS数据库源码中,没有set cnn = ADODB.Connection,怎么也能运行? 4、有了Dim rst As new ADODB.Recordset,是否必须要用Set rst = New ADODB.Recordset ? 5、这些语句不放from-load中,都放在“通用”中可以吗?
看看这个帖子dbcontrols的回答,也没有使用set cnn = new ADODB.Connection呀? http://topic.csdn.net/u/20110405/19/d362a8ab-a708-48e2-acb1-aa380d1bec48.html?46426
不要尽信书,装一个vb6.多实践下就明白些如果你定义的时候 Dim cnn As new ADODB.Connection就不用后来的set ......
dim 是用来定义变量的关键字.dim 变量 as 类型X 这是定义一个类型X的变量,比如:dim str as string再来看你发的代码dim 变量 as adodb.connection这是定义一个adodb.connection类型的变量,这个变量是个对象,这个对象还没有被初始化,要用这个变量,你需要set 变量 = new adodb.connection 这样你就可以使用变量了,此时的变量在内存中存在了,有效了,set 变量 = new XXX可以让为变量在内存中申请一段空间,于是变量存在了有效了,可以用了.为了销毁这段内存空间,我们在不用变量了之后可以用 set 变量 = nothing 来释放空间(此处不细说了,不然你会晕).
还有一种方法,你可以使用New关键字定义变量,例如: dim cn as new adodb.connection 这里使用了new关键字,有了它你就不再需要set cn = new adodb.connection,使用后你仍然需要set cn = nothing.
你可以这样理解,下面两段代码近似于一样的.dim cn as adodb.connection set cn = new adodb.connection set cn = nothing dim cn as new adodb.connection set cn = nothing
后者不仅声明一个对象,而且将这个对象实例化(也就是在内存中分配空间)要使用,必须实例化。
带new的,声明一个Connection对象(内存中不存在这个对象);
不带new的,不仅声明一个对象,而且将这个对象实例化(也就是在内存中分配空间);
是不是?另外你说“要使用,必须实例化”:
就是说是用Dim cnn As new ADODB.Connection后必须还要用Dim cnn As ADODB.Connection,否则无法是用,是这样吗?
set cnn = ADODB.Connection
带New ,实例化了
错了
Dim cnn As new ADODB.Connection
set cnn = new ADODB.Connection
1、根据你的答复,说明必须要带上new才能正常工作,是不是?
2、很多源码中只有Dim cnn As ADODB.Connection,不带new,又是为什么?什么意思?
3、有些ACCESS数据库源码中,没有set cnn = ADODB.Connection,怎么也能运行?
4、有了Dim rst As new ADODB.Recordset,是否必须要用Set rst = New ADODB.Recordset ?
5、这些语句不放from-load中,都放在“通用”中可以吗?
http://topic.csdn.net/u/20110405/19/d362a8ab-a708-48e2-acb1-aa380d1bec48.html?46426
Dim cnn As new ADODB.Connection就不用后来的set ......
这是定义一个类型X的变量,比如:dim str as string再来看你发的代码dim 变量 as adodb.connection这是定义一个adodb.connection类型的变量,这个变量是个对象,这个对象还没有被初始化,要用这个变量,你需要set 变量 = new adodb.connection 这样你就可以使用变量了,此时的变量在内存中存在了,有效了,set 变量 = new XXX可以让为变量在内存中申请一段空间,于是变量存在了有效了,可以用了.为了销毁这段内存空间,我们在不用变量了之后可以用 set 变量 = nothing 来释放空间(此处不细说了,不然你会晕).
dim cn as new adodb.connection
这里使用了new关键字,有了它你就不再需要set cn = new adodb.connection,使用后你仍然需要set cn = nothing.
set cn = new adodb.connection
set cn = nothing
dim cn as new adodb.connection
set cn = nothing
就是一个新的副本
所以可以NEW很多次