|
Function 功能说明:根据条件查询DB里面某个字段的值,参数:查询条件值
test 功能说明: 传递参数,调用function。
参数有两种赋值方式:
方式1: 直接赋值。a="123456"
方式2:通过datatable 取值。a=DataTable.Value("a",Global) //在global table 里面已经设好a的值等于123456
相同函数调用语句:DBfileName=ConnectDB(a)
现在的问题是:
用方式1,可以调用函数成功返回DB里面的filename。但是用方式2不行,得到的filename为空?
Function 代码如下:
Function ConnectDB(a) ‘Debug的结果a 的值通过两种方式传入均是一样的,都是123456
Dim strCon,SQLQuerySentence
strCon = "Driver={Microsoft ODBC for Oracle}; " & _
"CONNECTSTRING=(DESCRIPTION=" & _
"(ADDRESS=(PROTOCOL=TCP)" & _
"(HOST=***)(PORT=***))" & _
"(CONNECT_DATA=(SERVICE_NAME=***))); uid=***;pwd=***;"
Dim oCon
Set oCon = CreateObject("ADODB.Connection")
Dim oRs
Set oRs = CreateObject("ADODB.Recordset")
SQLQuerySentence = "SELECT * tablename WHERE filecode ="
SQLQuerySentence = SQLQuerySentence + "'"+a +"'"
oCon.Open strCon
Set oRs = oCon.Execute(SQLQuerySentence)
Dim MSGLink
While Not oRs.EOF 'debug结果是用方式1的时候oRs.EOF是false,方式2的时候oRs.EOF是true。但是SQLQuerySentence 都是相同一句话。为什么会这样呢?
MSGLink=oRs.Fields(6).Value
oRs.MoveNext
Wend
msgbox MSGLink
Dim LinkArray,filename
filename=Mid(MSGLink,42,75) '
msgbox XMLname
oCon.Close
Set oRs = Nothing
Set oCon = Nothing
ConnectDBXML=filename
End Function
[ 本帖最后由 topor 于 2009-8-17 10:08 编辑 ] |
|