各位老师:
我用VB写了一个扫条码的程序,每天量比较大,数据库是用的ORACLE,我在每次将条码上的数据写到数据库时,ORACLE就要硬解析一次insert into aaa values('1','2',....),请问,有没有办法让ORACLE只对该语句只解析一次,谢谢。
我用VB写了一个扫条码的程序,每天量比较大,数据库是用的ORACLE,我在每次将条码上的数据写到数据库时,ORACLE就要硬解析一次insert into aaa values('1','2',....),请问,有没有办法让ORACLE只对该语句只解析一次,谢谢。
把这个INSERT语句加入到ORACLE中,做成一个存储过程,
程序只要把相关参数传递给这个SP,这样速度肯定会好
很多。在数据库中的SP是经过编译的。
“每次将条码上的数据写到数据库时,ORACLE就要硬解析一次insert into aaa values('1','2',....),”
这样有什么问题吗?
Public Function GetFaceReportRst(FromDate As Date, _
ToDate As Date, _
ByRef Rst As ADODB.Recordset, FaceReportType As ReportType, _
Optional Model_Id As String = "", _
Optional Workshop_id As String = "") As Boolean
On Error GoTo errHandle:
Dim para As New ADODB.Parameter
Dim i As Integer
Dim Cnn As New ADODB.Connection
Cnn.ConnectionString = ConnectString
Cnn.CursorLocation = adUseClient
Cnn.Open
Dim cmd As New ADODB.Command
cmd.ActiveConnection = Cnn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "prFaceCheckReport"
Set para = cmd.CreateParameter("@rptType", adSmallInt, adParamInput, , CInt(FaceReportType))
cmd.Parameters.Append para
Set para = cmd.CreateParameter("@FromDate", adVarChar, adParamInput, 50, Format(FromDate, "yyyy-mm-dd"))
cmd.Parameters.Append para
Set para = cmd.CreateParameter("@ToDate", adVarChar, adParamInput, 50, Format(ToDate, "yyyy-mm-dd"))
cmd.Parameters.Append para
Set para = cmd.CreateParameter("@model_id", adVarChar, adParamInput, 10)
If Model_Id <> "" Then
para.Value = Model_Id
Else
para.Value = Null
End If
cmd.Parameters.Append para
Set para = cmd.CreateParameter("@workshop_id", adVarChar, adParamInput, 10)
If Workshop_id <> "" Then
para.Value = Workshop_id
Else
para.Value = Null
End If
cmd.Parameters.Append para
Set Rst = cmd.Execute()
GetFaceReportRst = True
Exit Function
errHandle:
strError = Err.Description
End Function