抛砖引玉,比如以窗体frmA上的文本框txtB中的内容作为查询的条件:rs.open "select * from table_name where fieldA='" & frmA.txtB.text & "'"
在ACCESS中,有一个方便的地方,就是上面的SQL可以写成: select * from table_name where fieldA = frmA.txtB.text 又可以是: select * from table_name where fieldA = 自定义函数() 也就是可以在SQL中可加入窗体属性、或函数等。我的意思就是这样了,VB6能这么做吗?ACCESS能这样,有时很是方便的。
创建自定义函数: create function getstring(@id int) returns varchar(8000) as begin declare @sql varchar(8000) set @sql='' select @sql=@sql+','+rtrim(内容) from t where id=@id set @sql=right(@sql,len(@sql)-1) return @sql end go创建存储过程: create proc Test(@id int ,@name varchar(20) output) as begin --存储过程中调用自定义函数getstring select @name=dbo.getstring(id) from customers where customerid= @id End调用: Dim cmd As ADODB.Command Dim par1 As ADODB.Parameter Dim par2 As ADODB.Parameter Set cmd = New ADODB.Command cmd.CommandText = "test" cmd.CommandType = adCmdStoredProc Set par1 = cmd.CreateParameter("a", adInteger, adParamInput, , 3) cmd.Parameters.Append par1 Set par2 = cmd.CreateParameter("b", adVarChar, adParamOutput, 20) cmd.Parameters.Append par2 Set cmd.ActiveConnection = cnDatabase cmd.Execute Debug.Print par2.Value Set cmd = Nothing
TO yoki(小马哥): 太感激你了,我找来找去也找不到存储过程的内容在MSDN中。但问题是我用VB+ADO+ACCESS,没有存储过程编辑和调试器,如果编写和调试存储过程???我决定给题目加分,以报答朋友对我的帮助。
select * from table_name where fieldA = frmA.txtB.text
又可以是:
select * from table_name where fieldA = 自定义函数()
也就是可以在SQL中可加入窗体属性、或函数等。我的意思就是这样了,VB6能这么做吗?ACCESS能这样,有时很是方便的。
方法 调用存储过程传递参数,存储过程中调用自定义函数,接收参数并返回值
如何做呀,求求你教教我,否则我撞死算了。
create function getstring(@id int)
returns varchar(8000)
as
begin
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+','+rtrim(内容) from t where id=@id
set @sql=right(@sql,len(@sql)-1)
return @sql
end
go创建存储过程:
create proc Test(@id int ,@name varchar(20) output)
as
begin
--存储过程中调用自定义函数getstring
select @name=dbo.getstring(id) from customers where customerid= @id
End调用:
Dim cmd As ADODB.Command
Dim par1 As ADODB.Parameter
Dim par2 As ADODB.Parameter
Set cmd = New ADODB.Command
cmd.CommandText = "test"
cmd.CommandType = adCmdStoredProc
Set par1 = cmd.CreateParameter("a", adInteger, adParamInput, , 3)
cmd.Parameters.Append par1
Set par2 = cmd.CreateParameter("b", adVarChar, adParamOutput, 20)
cmd.Parameters.Append par2
Set cmd.ActiveConnection = cnDatabase
cmd.Execute
Debug.Print par2.Value
Set cmd = Nothing
太感激你了,我找来找去也找不到存储过程的内容在MSDN中。但问题是我用VB+ADO+ACCESS,没有存储过程编辑和调试器,如果编写和调试存储过程???我决定给题目加分,以报答朋友对我的帮助。