本地机器上有access数据库,然后要求用户定期从服务器上下载数据,填充到本地机的数据库中去,服务器是一个web服务器,正常运转了一个网站,用的也是同一个数据库,可以说软件和网站是互动的,这样的东西怎么做?给提个醒

解决方案 »

  1.   

    关注.SQL SERVER可以用发布/订阅实现同步,
    ACCESS数据库??????????????//
      

  2.   

    使用XMLHTTP,服务端再编写一段ASP程序就行了
      

  3.   

    <?xml version="1.0" encoding="gb2312"?>
    <?xml-stylesheet type="text/xsl" href="Update.xsl"?>
    <page> <update>
    <title>WinRar 解压缩工具</title>
    <url>wrar32b5sc.exe</url>
    <time>2003-7-15</time>
    <fileformat>exe</fileformat>
    <filesize>952K</filesize>
    <note>说明:解压缩的程序</note>
    </update>
    </page>
      

  4.   

    ASP+XML倒可以实现。
    例子参考:
    http://www.dapha.net/down/list.asp?id=605
      

  5.   

    我的思路是这样的,在Web服务器上放一个文本文件,里面记录要升级或更新的文件的大小,安装路径,文件名称,当前版本号(或更新日期),例如:
    filename=...'第1个文件
    filepath=...
    filever=...
    filesize=...
    filename=...'第2个文件
    filepath=...
    filever=...
    filesize=...
    ...
    相应你的程序把相应文件名称、路径、版本记录在注册表或另一个本地文本文件中,当你的程序设为自动升级时,每次启动先下载这个文本文件,再在程序中对本地文件(或注册表)记录的版本信息进行对比,如果发现服务器的比较新,则提示升级,否则不升级,升级成功后把新的信息写到注册表中。
    我的程序就是这样实现自动升级的,好处是可以对所有文件升级.建议要另写一个升级程序,这样可以对主程序升级.
      

  6.   

    在服务器上开一个共享文件夹....让每个用户有权制访问...
    当用户登录后就访问日志文件.如果发现文件是最新的.就以\\server\fileshare\file的形式将本地文件覆盖呀,懂了吗/ 不懂QQ找我:470829
      

  7.   

    给定IP地址
    访问,
    判断是否可以更新数据,
    通过ASP给客户端数据就OK了
      

  8.   

    Private Type STARTUPINFO
          cb As Long
          lpReserved As String
          lpDesktop As String
          lpTitle As String
          dwX As Long
          dwY As Long
          dwXSize As Long
          dwYSize As Long
          dwXCountChars As Long
          dwYCountChars As Long
          dwFillAttribute As Long
          dwFlags As Long
          wShowWindow As Integer
          cbReserved2 As Integer
          lpReserved2 As Long
          hStdInput As Long
          hStdOutput As Long
          hStdError As Long
       End Type   Private Type PROCESS_INFORMATION
          hProcess As Long
          hThread As Long
          dwProcessID As Long
          dwThreadID As Long
       End Type   Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal _
          hHandle As Long, ByVal dwMilliseconds As Long) As Long   Private Declare Function CreateProcessA Lib "kernel32" (ByVal _
          lpApplicationName As String, ByVal lpCommandLine As String, ByVal _
          lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, _
          ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _
          ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As String, _
          lpStartupInfo As STARTUPINFO, lpProcessInformation As _
          PROCESS_INFORMATION) As Long   Private Declare Function CloseHandle Lib "kernel32" _
          (ByVal hObject As Long) As Long   Private Declare Function GetExitCodeProcess Lib "kernel32" _
          (ByVal hProcess As Long, lpExitCode As Long) As Long   Private Const NORMAL_PRIORITY_CLASS = &H20&
       Private Const INFINITE = -1&   Public Function ExecCmd(cmdline$)
          Dim proc As PROCESS_INFORMATION
          Dim start As STARTUPINFO      ' Initialize the STARTUPINFO structure:
          start.cb = Len(start)      ' Start the shelled application:
          ret& = CreateProcessA(vbNullString, cmdline$, 0&, 0&, 1&, _
             NORMAL_PRIORITY_CLASS, 0&, vbNullString, start, proc)      ' Wait for the shelled application to finish:
             ret& = WaitForSingleObject(proc.hProcess, INFINITE)
             Call GetExitCodeProcess(proc.hProcess, ret&)
             Call CloseHandle(proc.hThread)
             Call CloseHandle(proc.hProcess)
             ExecCmd = ret&
       End Function   Sub Form_Click()
          
       End SubPrivate Sub testCreateProcess_Click()
    Dim retval As Long
          retval = ExecCmd("dtsrun /S 远程SQL的IP地址 /U 用户 /P 密码 /N 数据库名 /M")
         ' MsgBox "Process Finished, Exit Code " & retval
         MsgBox retval
         If retval = 1 Then MsgBox "网络不通,请检查是否已经连上互联网"
         If retval = 0 Then
          MsgBox "成功"
         Else
         MsgBox "失败"
         End If
    End Sub
      

  9.   

    错了,上面/N后是要执行的DTS名称,不是数据库名.
      

  10.   

    远程数据传送方法的讨论
    之前做的一些系统中都涉及将本地数据上传到远程数据库服务器,或者将远程数据库服务器的数据下载的本地,都不知道用那种方式实现更方便,更安全 
    一种是用这样的方式实现 
    在远程服务器写一个ASP文件接收数据如: <% If Request.ServerVariables("REQUEST_METHOD")="POST" Then 
       ON ERROR RESUME NEXT 
       Dim AttendArray 
       Dim ResStr 
       Set xmldom=Server.CreateObject("Microsoft.XMLDOM") 
       Set Obj=Server.CreateObject("SAS.SHIFT") 
       xmldom.load(Request) 
       Set Rs=Server.CreateObject("ADODB.Recordset") 
       Rs.Open xmldom 
       AttendArray=Rs.GetRows  
       If IsArray(AttendArray) Then 
          ResStr=Obj.AddAttendRecord(AttendArray) 
       End If 
       If Err.number =0 Then 
          Response.Write "OK" 
          Set xmlResult=Server.CreateObject("Microsoft.XMLDOM") 
          xmlResult.save(Response) 
          Set xmlResult=Nothing    
       Else 
          Response.Write "NO"       
          Set xmlResult=Server.CreateObject("Microsoft.XMLDOM") 
          xmlResult.save(Response)  
          Set xmlResult=Nothing    
       End If 
    End If 
    %> 
    客户端这样写的     Dim Url As String     Url = "http://"; & ServerName & "/shift/AddAttendRecord.asp" 
         
        Dim Conn As ADODB.Connection 
        Dim rs As ADODB.Recordset 
        Dim Strm As ADODB.Stream 
        Dim XMLHttp As XMLHTTPRequest 
        Dim ObjSas As InstantPassCls.clsSAS 
        Dim AttendArray As Variant 
        Dim i As Integer 
        Set rs = New ADODB.Recordset 
        Set ObjSas = New InstantPassCls.clsSAS 
        AttendArray = ObjSas.GetUploadRecord 
         
        If IsArray(AttendArray) Then 
             
            With rs.Fields 
                .Append "StaffNo", adBSTR 
                .Append "Time", adBSTR 
                .Append "AttendType", adBSTR 
            End With 
            rs.Open 
            With rs 
                For i = 0 To UBound(AttendArray, 2) 
                    .AddNew 
                    .Fields("StaffNO") = AttendArray(0, i) 
                    .Fields("Time") = AttendArray(1, i) 
                    .Fields("AttendType") = AttendArray(2, i) 
                    .Update 
                Next i 
            End With 
             
            Set Strm = New ADODB.Stream 
            rs.Save Strm, adPersistXML 
            Set XMLHttp = New XMLHTTPRequest 
            XMLHttp.Open "POST", Url, False 
            XMLHttp.send Strm.ReadText 
             
            If Err.Number = 0 Then 
                UPloadData = XMLHttp.responseText 
                Sleep (10000) 
                'If Left(UPloadData, 2) = "NO" Then 
                If InStr(1, UPloadData, "NO") > 0 Then 
                    UPloadData = LoadResString(5038) 
                    WriteLog 4, "Upload data failed" 
                End If 
                'If Left(UPloadData, 2) = "OK" Then 
                If InStr(1, UPloadData, "OK") > 0 Then 
                    ObjSas.MarkRecord 
                    WriteLog 4, "Upload data success" 
                    UPloadData = LoadResString(5037) 
                End If 
            Else 
                UPloadData = LoadResString(5036) 
                WriteLog 4, "Upload data failed" 
            End If 
         
        Else 
            UPloadData = LoadResString(5035) 
        End If 
         
        Set ObjSas = Nothing 
        Set rs = Nothing 
      

  11.   

    用RDS直接传送recordset
    我的服务器上先设置好了,供大家测试下面的代码,10天后可能会取消这个服务。
    如以后想测试,可到我的论坛中提出。
    http://office.9zp.com引用 Microsoft Remote Data Services x.x Library
    引用 ADODim DF As Object
    Dim strServer As String
    Dim strConnect As String
    Dim strSQL As String
    Dim objADORs As Recordset
    Dim ds As New DataSpace
    strServer = "http://9zp.com";
    strConnect = "Data Source=hzn;"
    strSQL = "Select * from parts"
    Set DF = ds.CreateObject("RDSServer.DataFactory", strServer)
    Set objADORs = DF.Query(strConnect, strSQL)
    MsgBox objADORs.Fields(0)
    objADORs.Fields(0) = "改变这几个字再运一次"
    DF.SubmitChanges strConnect, objADORs
    MsgBox objADORs.Fields(0)