下面是鄙人自己编写的一个查询函数,并获取该记录的相关信息,其中SQLGetData是调用odbc中的函数,我的VB工具并没有设定变量检查,奇怪的是编译时,pcblen老通不过,需要byRef的,我就定义为:Dim pcblen as Variant 可是获取不到需要的数据,Vb6.exe还出错,希望高手指点..谢谢!
Public Function Query(ByVal TmpMaterialId As String) As Boolean
Dim SQLstmt As String '存放SQL语句的字符串
Dim pcblen As Variant
Me.fk_material_id = TmpMaterialId
'连接数据库
DB_Connect
'执行SQL语句
SQLstmt = " SELECT * FROM h_storage_detail WHERE fk_material_id = '" + TmpMaterialId + "' "
OdbcExt (SQLstmt)
'从结果集中读取数据,如果有数据,则Query = True;否则 Query = False
If SQLFetch(Hstmt) = SQL_NO_DATA_FOUND Then
Query = False
Exit Function
Else
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 2, 1, ColVal, Lench(ColVal), pcblen)
Me.material_name = TrimStr(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 3, 1, ColVal, Lench(ColVal), pcblen)
Me.material_total = Val(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 4, 1, ColVal, Lench(ColVal), pcblen)
Me.usable_material_quantity = Val(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 5, 1, ColVal, Lench(ColVal), pcblen)
Me.damaged_material_quantity = Val(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 6, 1, ColVal, Lench(ColVal), pcblen)
Me.material_unit = TrimStr(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 7, 1, ColVal, Lench(ColVal), pcblen)
Me.material_description = TrimStr(ColVal)
End If
'释放语句句柄
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
Query = True
'断开连接
DB_Disconnect
End Function
Public Function Query(ByVal TmpMaterialId As String) As Boolean
Dim SQLstmt As String '存放SQL语句的字符串
Dim pcblen As Variant
Me.fk_material_id = TmpMaterialId
'连接数据库
DB_Connect
'执行SQL语句
SQLstmt = " SELECT * FROM h_storage_detail WHERE fk_material_id = '" + TmpMaterialId + "' "
OdbcExt (SQLstmt)
'从结果集中读取数据,如果有数据,则Query = True;否则 Query = False
If SQLFetch(Hstmt) = SQL_NO_DATA_FOUND Then
Query = False
Exit Function
Else
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 2, 1, ColVal, Lench(ColVal), pcblen)
Me.material_name = TrimStr(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 3, 1, ColVal, Lench(ColVal), pcblen)
Me.material_total = Val(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 4, 1, ColVal, Lench(ColVal), pcblen)
Me.usable_material_quantity = Val(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 5, 1, ColVal, Lench(ColVal), pcblen)
Me.damaged_material_quantity = Val(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 6, 1, ColVal, Lench(ColVal), pcblen)
Me.material_unit = TrimStr(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 7, 1, ColVal, Lench(ColVal), pcblen)
Me.material_description = TrimStr(ColVal)
End If
'释放语句句柄
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
Query = True
'断开连接
DB_Disconnect
End Function
变量默认不就是变体类型吗/???