我准备写一段程序,程序调用sqlserver里查看sqlserver复制状态的存储过程,达到在程序里查看sqlserver复制状态的效果,谢谢帮助,我写好后送大家300分

解决方案 »

  1.   

    你的意思是SQL SERVER时时刻刻都要有返回值直到复制完毕吗?
      

  2.   

    这些是定义 
    Dim conn As ADODB.connection
    Dim rs As ADODB.Recordset这些是使用。
    Set conn = New ADODB.connection
    Set rs = New ADODB.Recordset
    Dim connstring As String
    connstring = "Provider=SQLOLEDB.1;Password=lirh;Persist Security Info=True;User ID=sa;Initial Catalog=tkmanage;Data Source= 192.168.0.32"
    Dim sql  As String
    sql = "create procedure 存储过程名 as select * from 表名"
    conn.Execute sql其实,存储过程的使用和一般的sql语句差不多,但有是需要查看一下,存储过程名是否存在。存储过程名一般在SQL数据库中的sysobjects自带的系统表中。查看有无存在就行了。
      

  3.   

    http://www.csdn.net/develop/author/pam/book8_6.shtm
      

  4.   

    存促过程:SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS OFF 
    GO/****** Object:  Stored Procedure dbo.ZL_Day_Curve_proc    Script Date: 2003-8-14 17:04:20 ******/
    --exec ZL_Day_Curve_proc '2003-07-03 11:36:29','基站',1,1,1,1ALTER   PROCEDURE  ZL_Day_Curve_proc(
     @date datetime, --报表日期
     @SUName varchar(50), --基站名称
     @FirstAddr smallint, --SU地址第1字节
     @SecondAddr smallint,--SU地址第2字节
     @ThirdAddr smallint,--SU地址第3字节
      @result smallint out  --返回结果 0表示成功  1表示异常 其他表示异常类型(保留)
    )
     AS
    /*
    变量说明:
    数值的时间(时刻)
    数值量
    */
    --时间的计算,查询不同的表
    declare @chrDate varchar(50)set @chrDate=cast(year(@date) as varchar) +'-'+cast(month(@date) as varchar)+'-'+cast(day(@date) as varchar)+' 0:0:0'
    set @date=cast(@chrDate as datetime)
    if year(@date)=year(getdate()) and month(@date)=month(getdate()) and day(@date)=day(getdate())
        BEGIN
        select cast(DataTime as datetime) as 'DataTime',cast(VariableData as  float) as 'DataVal'
    from CurrentAnalog where FirstAddress=@FirstAddr and SecondAddress=@SecondAddr and 
    ThirdAddress=@ThirdAddr and FourthAddress=237 and DataTime>@date and DataTime<dateadd(dd,1,@date) 
    order by DataTime
        END
        
    else
        BEGIN
        select cast(DataTime as datetime) as 'DataTime',cast(VariableData  as float)as 'DataVal' 
    from HistoryAnalog where FirstAddress=@FirstAddr and SecondAddress=@SecondAddr and 
    ThirdAddress=@ThirdAddr and FourthAddress=237 and DataTime>@date and DataTime<dateadd(dd,1,@date) 
    order by DataTime
        END
      set @result=0
      return 0/*Create Table #DCDeviceDayTmpTable
     (DataTime datetime,
      DataVal float 
      ) 
    declare @charTmp varchar(30)
    declare @intTotal int
    declare @intInterval int
    declare @intCircle intdeclare @DateBegin datetime
    declare @DateEnd datetime
    declare @DateTmp datetime
    declare @DataVal floatset @charTmp=cast(year(@date) as varchar) +'-'+cast(month(@date) as varchar)+'-'+cast(day(@date) as varchar)
    set @DateBegin=cast(@charTmp as datetime)
    set @DateEnd=dateadd(dd,1,@DateBegin)set @intTotal=datediff(ss,@DateBegin,@DateEnd)
    set @intCircle=200
    set @intInterval=@intTotal/@intCirclewhile @intCircle>=0
        begin
      set @DateTmp=dateadd(ss,@intInterval*(200-@intCircle),@DateBegin)
    set @DataVal=RAND(@intCircle*@intInterval)*200
            set @intTotal=cast(@DataVal as int)
    set @DataVal=(@DataVal-@intTotal)*1000
     
      set  @intCircle=@intCircle-1
    --插入基站名称
      insert #DCDeviceDayTmpTable(DataTime,DataVal) values(@DateTmp,@DataVal)
        end 
     --计算结束
    select * from #DCDeviceDayTmpTable
    */
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
      

  5.   

    调用存储过程,
    第一段:
    Private Sub DealWithAcDeviceCurve()
    On Error GoTo ERR
        Dim i As Integer
        Dim intNumber As Integer
        
        Dim strEFTrueDes As String '&frac34;ù&cedil;&iexcl;&sup3;&auml;&Icirc;&ordf;true&Ecirc;±&micro;&Auml;&Icirc;&Auml;×&Ouml;&Atilde;è&Euml;&Ugrave;
        Dim strEFFalseDes As String '&frac34;ù&cedil;&iexcl;&sup3;&auml;&Icirc;&ordf;False&Ecirc;±&micro;&Auml;&Icirc;&Auml;×&Ouml;&Atilde;è&Euml;&Ugrave;
        
        Dim strReportTitle As String '±¨±í±ê&Igrave;&acirc;
        Dim strScName As String '&frac14;à&iquest;&Oslash;&Ouml;&ETH;&ETH;&Auml;&Atilde;&ucirc;&sup3;&AElig;
        Dim strDateNotice As String   '±¨±í&Ecirc;±&frac14;&auml;&Atilde;è&Euml;&Ugrave;
        Dim strDateValue As String '±¨±í&Ecirc;±&frac14;&auml;&Ouml;&micro;
        
        Dim strStorePro As String '&acute;&aelig;&acute;&cent;&sup1;&yacute;&sup3;&Igrave;&Atilde;&ucirc;&sup3;&AElig;
        Dim strSelectSuName As String '&Ntilde;&iexcl;&Ocirc;&ntilde;&micro;&Auml;&raquo;ù&Otilde;&frac34;&Atilde;&ucirc;
        
        Dim strAddressArray() As String '&acute;&aelig;·&Aring;&Ntilde;&iexcl;&Ouml;&ETH;&micro;&Auml;&micro;&Oslash;&Ouml;·&Ecirc;&yacute;×é
        
        '&frac14;ì&sup2;é&Ecirc;±&frac14;&auml;
        If txtDateCurve.text = "" Then
            MsgBox "&Icirc;&acute;&Ntilde;&iexcl;&Ocirc;&ntilde;±¨±í&Ecirc;±&frac14;&auml;&pound;&iexcl;", vbExclamation, g_cnststrMsgTitle
            GoTo ERR
        End If
        strDateValue = Format(Trim(DTPDateCurve.value), "yyyy-mm-dd") & " " & Format(Trim(DTPTimeCurve.value), "hh:nn:ss")
        
        '&Iacute;&sup3;&frac14;&AElig;&raquo;ù&Otilde;&frac34;&Ecirc;&yacute;&Aacute;&iquest;
        If txtSelectSuCurve.text = "" Or txtSelectSuCurve.Tag = "" Then
            MsgBox "&Icirc;&acute;&Ntilde;&iexcl;&Ocirc;&ntilde;&raquo;ù&Otilde;&frac34;&pound;&iexcl;", vbExclamation, g_cnststrMsgTitle
            GoTo ERR
        End If
        
        If CheckIpAddress(Trim(txtSelectSuCurve.Tag)) = False Then
            MsgBox "&raquo;ù&Otilde;&frac34;&Acirc;&szlig;&frac14;&shy;&micro;&Oslash;&Ouml;·&acute;í&Icirc;ó&pound;&iexcl;", vbExclamation, g_cnststrMsgTitle
            GoTo ERR
        End If
        AnalyzeString Trim(txtSelectSuCurve.Tag), ".", strAddressArray
        If UBound(strAddressArray) <> 3 Then
            MsgBox "&raquo;ù&Otilde;&frac34;&Acirc;&szlig;&frac14;&shy;&micro;&Oslash;&Ouml;·&acute;í&Icirc;ó&pound;&iexcl;", vbExclamation, g_cnststrMsgTitle
            GoTo ERR
        Else
            
            For i = 0 To 3
                If IsNumeric(Trim(strAddressArray(i))) = False Then
                    MsgBox "&raquo;ù&Otilde;&frac34;&Acirc;&szlig;&frac14;&shy;&micro;&Oslash;&Ouml;·&acute;í&Icirc;ó&pound;&iexcl;", vbExclamation, g_cnststrMsgTitle
                    GoTo ERR
                End If
            Next
        End If
        
        Me.MousePointer = vbHourglass
        
        '±¨±í&Iacute;·
        If frmMain.TreeViewLog.Nodes.Count <= 0 Then
            strScName = "" '&frac14;à&iquest;&Oslash;&Ouml;&ETH;&ETH;&Auml;&Atilde;&ucirc;&sup3;&AElig;
        Else
            strScName = frmMain.TreeViewLog.Nodes(1).text '&frac14;à&iquest;&Oslash;&Ouml;&ETH;&ETH;&Auml;&Atilde;&ucirc;&sup3;&AElig;
        End If
        
        If optHourCurve.value = True Then '&Egrave;&Otilde;&cedil;&ordm;&Ocirc;&Oslash;&Ccedil;ú&Iuml;&szlig;
            strReportTitle = "&frac12;&raquo;&Aacute;÷&Eacute;è±&cedil;&Ecirc;±&cedil;&ordm;&Ocirc;&Oslash;&Ccedil;ú&Iuml;&szlig;" '±¨±í±ê&Igrave;&acirc;
            strDateNotice = "&Iacute;&sup3;&frac14;&AElig;&ETH;&iexcl;&Ecirc;±" '±¨±í&Ecirc;±&frac14;&auml;&Atilde;è&Euml;&Ugrave;
            strStorePro = "JL_Hour_Curve_proc"
        ElseIf optDay.value = True Then '&Egrave;&Otilde;±¨±í
            strReportTitle = "&frac12;&raquo;&Aacute;÷&Eacute;è±&cedil;&Egrave;&Otilde;&cedil;&ordm;&Ocirc;&Oslash;&Ccedil;ú&Iuml;&szlig;" '±¨±í±ê&Igrave;&acirc;
            strDateNotice = "&Iacute;&sup3;&frac14;&AElig;&Egrave;&Otilde;&AElig;&Uacute;" '±¨±í&Ecirc;±&frac14;&auml;&Atilde;è&Euml;&Ugrave;
            strStorePro = "JL_Day_Curve_proc"
        ElseIf optMonth.value = True Then '&Ocirc;&Acirc;±¨±í
            strReportTitle = "&frac12;&raquo;&Aacute;÷&Eacute;è±&cedil;&Ocirc;&Acirc;&cedil;&ordm;&Ocirc;&Oslash;&Ccedil;ú&Iuml;&szlig;" '±¨±í±ê&Igrave;&acirc;
            strDateNotice = "&Iacute;&sup3;&frac14;&AElig;&Ocirc;&Acirc;·&Yacute;" '±¨±í&Ecirc;±&frac14;&auml;&Atilde;è&Euml;&Ugrave;
            strStorePro = "JL_Month_Curve_proc"
        ElseIf optYear.value = True Then
            strReportTitle = "&frac12;&raquo;&Aacute;÷&Eacute;è±&cedil;&Auml;ê&cedil;&ordm;&Ocirc;&Oslash;&Ccedil;ú&Iuml;&szlig;" '±¨±í±ê&Igrave;&acirc;
            strDateNotice = "&Iacute;&sup3;&frac14;&AElig;&Auml;ê·&Yacute;" '±¨±í&Ecirc;±&frac14;&auml;&Atilde;è&Euml;&Ugrave;
            strStorePro = "JL_Year_Curve_proc"
        End If
        
      

  6.   

    第二段:
    Dim cn As New ADODB.Connection
        Dim cmd As ADODB.Command
        Dim rs As ADODB.Recordset
        Dim prm As ADODB.Parameter
        Dim strCn As String
        Dim intResult As Integer
        
        '&sup2;&Ugrave;×÷&Aacute;&not;&frac12;&Oacute;
        strCn = "driver=" & g_strDataBaseDriver & ";server=" & g_strDataBaseServerAddress & _
                ";uid=" & g_strDataBaseUserID & ";pwd=" & g_strDataBasePassWord & _
                ";database=" & g_strDatabaseName
        cn.ConnectionString = strCn
        cn.CommandTimeout = 120
        cn.CursorLocation = adUseClient
        cn.Open '&acute;ò&iquest;&ordf;&frac14;&Ccedil;&Acirc;&frac14;&frac14;&macr;
        
        '&Ntilde;&shy;&raquo;·&acute;&brvbar;&Agrave;í
       
        Set cmd = New ADODB.Command
        '&sup2;&Ugrave;×÷&Atilde;ü&Aacute;&icirc;
        cmd.CommandText = strStorePro
        cmd.CommandType = adCmdStoredProc
        
        '&sup2;&Icirc;&Ecirc;&yacute;&para;&Ocirc;&Iuml;ó
        Set prm = cmd.CreateParameter("myDate", adVarChar, adParamInput, 30) '&Ecirc;±&frac14;&auml;
        cmd.Parameters.Append prm
        prm.value = strDateValue
        Set prm = cmd.CreateParameter("SUName", adVarChar, adParamInput, 50) 'SU&Atilde;&ucirc;&sup3;&AElig;
        cmd.Parameters.Append prm
        prm.value = Trim(txtSelectSuCurve.text)
        Set prm = cmd.CreateParameter("FirstAddress", adSmallInt, adParamInput) '&micro;&Uacute;&Ograve;&raquo;&micro;&Oslash;&Ouml;·
        cmd.Parameters.Append prm
        prm.value = CByte(strAddressArray(0))
        Set prm = cmd.CreateParameter("SecondAddress", adSmallInt, adParamInput) '&micro;&Uacute;&para;&thorn;&micro;&Oslash;&Ouml;·
        cmd.Parameters.Append prm
        prm.value = CByte(strAddressArray(1))
        Set prm = cmd.CreateParameter("ThirdAddress", adSmallInt, adParamInput) '&micro;&Uacute;&Egrave;&yacute;&micro;&Oslash;&Ouml;·
        cmd.Parameters.Append prm
        prm.value = CByte(strAddressArray(2))
        
        Set prm = cmd.CreateParameter("myResult", adSmallInt, adParamOutput) '&Ecirc;±&frac14;&auml;
        cmd.Parameters.Append prm
        prm.value = intResult
        
        '&Ouml;&cedil;&para;¨&Aacute;&not;&frac12;&Oacute;
        Set cmd.ActiveConnection = cn
        '·&micro;&raquo;&Oslash;&frac14;&Ccedil;&Acirc;&frac14;&frac14;&macr;
        Set rs = cmd.Execute
         '&Egrave;&ccedil;&sup1;&ucirc;&acute;&aelig;&acute;&cent;&sup1;&yacute;&sup3;&Igrave;&Ouml;&acute;&ETH;&ETH;&Ecirc;§°&Uuml;&Ocirc;ò·&micro;&raquo;&Oslash;
        If cmd.Parameters("myResult") <> 0 Then
            MsgBox "&Ouml;&acute;&ETH;&ETH;&acute;&aelig;&acute;&cent;&sup1;&yacute;&sup3;&Igrave;&Ecirc;§°&Uuml;&pound;&iexcl;", vbExclamation, g_cnststrMsgTitle
            GoTo ERR
        End If
        '&Egrave;&ccedil;&sup1;&ucirc;&frac14;&Ccedil;&Acirc;&frac14;&Ecirc;&yacute;&Icirc;&ordf;0&Ocirc;ò·&micro;&raquo;&Oslash;
        If rs.RecordCount <= 0 Then '&Atilde;&raquo;&Oacute;&ETH;&frac14;&Ccedil;&Acirc;&frac14;
            MsgBox "&Icirc;&THORN;&Iuml;&Ocirc;&Ecirc;&frac34;&Ecirc;&yacute;&frac34;&Yacute;&pound;&iexcl;", vbExclamation, g_cnststrMsgTitle
            GoTo ERR
        End If
        '&micro;÷&Ocirc;¤&Agrave;&Agrave;&acute;°&iquest;&Uacute;
        Load frmPrintPreview
        If frmPrintPreview.DrawPicture(rs) = False Then
            MsgBox "&cedil;&ordm;&Ocirc;&Oslash;&Ccedil;ú&Iuml;&szlig;&raquo;&aelig;&Ouml;&AElig;&Ecirc;§°&Uuml;&pound;&iexcl;", vbExclamation, g_cnststrMsgTitle
            Unload frmPrintPreview
            GoTo ERR
        End If
        
        '±¨±í&Iuml;&Ocirc;&Ecirc;&frac34;×&Ouml;·&ucirc;
        frmPrintPreview.m_strReportTitle = strReportTitle
        frmPrintPreview.m_strScName = strScName
        frmPrintPreview.m_strDateNotice = strDateNotice
        frmPrintPreview.m_strDateValue = txtDateCurve.text
        frmPrintPreview.m_strSuName = txtSelectSuCurve.text
        
        Me.MousePointer = vbDefault
        frmPrintPreview.Show , MeERR:
        If ERR.Number <> 0 Then MsgBox ERR.Description, vbExclamation, g_cnststrMsgTitle
        On Error Resume Next
        Me.MousePointer = vbDefault '&Eacute;è&Ouml;&Atilde;&Ecirc;ó±ê,&micro;&Egrave;&acute;&yacute;&ETH;&Icirc;&Igrave;&not;
        If rs.state > 0 Then rs.Close
        If cn.state > 0 Then cn.Close
        Set rs = Nothing
        Set cn = Nothing
        Set prm = Nothing
        Set cmd = Nothing
        Erase strAddressArray
    End Sub
      

  7.   

    http://www.ourfly.com/forum/View.aspx?fbId=9&Id=123
      

  8.   

    Dim cmd As ADODB.Command
        Set cmd = New ADODB.Command
        'Dim par As Parameter
        'set par=cmd.CreateParameter (
        With cmd
            .ActiveConnection = cn
            .CommandType = adCmdStoredProc
            .CommandText = "au_info"
            
            .Parameters.Append cmd.CreateParameter("astname", adVarChar, adParamInput, 40)
            .Parameters.Append cmd.CreateParameter("irstname", adVarChar, adParamInput, 20)
            .Parameters("astname").Value = lastName
            .Parameters("irstname").Value = firstName
            
            
        End With
        Set GetRoyalties = cmd.Execute()