Vb6连接Oracle的不同方法 + 计算日期在第几周

Private Sub showNow_Click()
GetNow
End Sub

Private Sub GetNow()
Dim Conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Conn.ConnectionString = "Driver={Microsoft ODBC for Oracle};Server=SvrName;UID=UserID;PWD=Password;"
Conn.Open
Dim strsql As String
strsql = "select sysdate from dual"
rs.Open strsql,Conn,1,1
CurrTime.Text = rs(0)
rs.Close
Conn.Close
End Sub

Private Sub showWeekSeq_Click()
Dim strNow As String
strNow = Trim(CurrTime.Text)
If strNow = "" Then strNow = CStr(Now)
CurrTime.Text = GetWeekSeq(strNow)
End Sub


'计算具体日期在一年中的第几周
Private Function GetWeekSeq(strStartTime As String) As String
Dim adoConn As ADODB.Connection
Dim adoFirstDay As ADODB.Recordset
Dim strsql As String
Dim dStart As Date
Dim dFirstDay As Date
Dim nWeek As Integer
Dim nYear As Integer
Dim strTempNo As String

OracleConnect adoConn
If adoConn Is nothing Then Exit Function

dStart = Format(strStartTime,"MM/dd/yyyy")
nYear = Year(DateAdd("d",7,dStart))
strsql = "SELECT next_day(to_date('01/01/" & nYear & "','mm/dd/yyyy'),1) -7 SUNDAY " _
& " FROM DUAL"
Fillrs adoFirstDay,strsql,adoConn
dFirstDay = Format(adoFirstDay(0),"MM/dd/yyyy")

If DateDiff("d",dFirstDay,dStart) < 0 Then
nYear = Year(dStart)
strsql = "SELECT next_day(to_date('01/01/" & nYear & "',1) -7 SUNDAY " _
& " FROM DUAL"
Fillrs adoFirstDay,adoConn
dFirstDay = Format(adoFirstDay(0),"MM/dd/yyyy")
End If

nWeek = CInt(DateDiff("w",dStart) + 1)
strTempNo = nYear & "_" & IIf(nWeek < 10,"0" & nWeek,nWeek)
Set adoFirstDay = nothing
Set adoConn = nothing
GetWeekSeq = strTempNo
End Function

'-----------------------------------------
'连接Oracle数据库的不同方法,传参
'-----------------------------------------
Public Sub OracleConnect(inConn As ADODB.Connection)
On Error GoTo Errlbl
Set inConn = nothing
Set inConn = New ADODB.Connection

If inConn.State = 1 Then Exit Sub
sConString = "Driver={Microsoft ODBC for Oracle};Server=SvrName;UID=UserID;PWD=Password;"
' sConString = "Provider=MSDAORA.1;Data Source=SvrName;User ID=UserID;Password=Password;"
'使用Oracle驱动的速度要快一点
' sConString = "Provider=OraOLEDB.Oracle;Data Source=SvrName;User ID=UserID;Password=Password;"
' sConString = "Provider=OraOLEDB.Oracle.1;Data Source=SvrName;User ID=UserID;Password=Password;"
With inConn
.Open sConString
.CursorLocation = adUseClient
.CommandTimeout = 30
End With
Exit Sub

Errlbl:
Err.Clear
Set inConn = nothing
End Sub

Public Sub Fillrs(inRs As ADODB.Recordset,insql As String,inConn As ADODB.Connection)
On Error GoTo ErrContinue
Set inRs = nothing
Set inRs = New ADODB.Recordset

inRs.CursorLocation = adUseClient
inRs.Open insql,inConn,adOpenDynamic,adLockReadOnly
Exit Sub
ErrContinue:
Err.Clear
Set inRs = nothing

End Sub

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...