首頁 資料庫 mysql教程 ruby调用Office Jet引擎压缩access数据库

ruby调用Office Jet引擎压缩access数据库

Jun 07, 2016 pm 03:50 PM
jet office ruby 壓縮 引擎 呼叫

由于单位业务需要,搭建一台服务器专门用来做数据存储。因为数据流很小,遂采用access库作为DB。开始还好,但是后来发现access数据库有一问题,就是表空间会随着使用越来越大,哪怕表里没有数据。因为表中单次存放的内容是很小的,每隔几分钟会全删除然后再

    由于单位业务需要,搭建一台服务器专门用来做数据存储。因为数据流很小,遂采用access库作为DB。开始还好,但是后来发现access数据库有一问题,就是表空间会随着使用越来越大,哪怕表里没有数据。因为表中单次存放的内容是很小的,每隔几分钟会全删除然后再写入,所以表也会越来越大啊!

    开始是用VB写的一个压缩软件,因为是M$自家的语言嘛,自然对Office系列支持很好,后来发现ruby中也可以通过Win32ole访问Jet引擎,为何不用ruby来写呢?因为是以前写的代码神马都用class来搞,稍显夸大,但效果还好。

#hb table write by hopy 2012 
require 'win32ole'
require 'oci8'

class Hb
  def initialize
    @oci = OCI8.new("xxx","***","xxx")
  end
  
  def open
    unless @acs
      conn_str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=#{Dir.pwd}/hb.mdb"
      #conn_str = "driver={SQL Server};database=xxx;server=localhost,1433;uid=sa;pwd=sa"
      @acs = WIN32OLE.new('ADODB.Connection')
      @acs.Open(conn_str)
    end
  end
  
  def close
    (@acs.Close;@acs=nil) if @acs
  end
  
  def cls
    self.open
    sql = "DELETE * from InTable";@acs.Execute(sql)
    sql = "DELETE * from OutTable";@acs.Execute(sql)
  end
  
  def zip
    start = Time.now
    self.close
    jet = WIN32OLE.new('JRO.JetEngine')
    path = Dir.pwd+"/hb.mdb"
    new_path=Dir.pwd+"/hb_ziped.mdb"
    File.delete(new_path) if File.exist?(new_path)
    sp = "Provider=Microsoft.Jet.OLEDB.4.0"
    ss = sp+";Data Source="+path
    sd = sp+";Data Source="+new_path
    jet.CompactDatabase(ss,sd)
    File.delete(path)
    File.rename(new_path,path)
    puts "access ziped , take #{Time.now - start} s"
  end
  
  def sync
    self.cls
    self.open
    
    zb = [64981,57520]
    
    i = 0;start = Time.now
    ret = @oci.exec('select * from DBO.DPXS_ARRIVAL') do |r|
      next if r[7].unpack("v*") != zb
      
      zt = if r[24] == "Arrived" 
        r[23]
      elsif r[25]
        r[25]
      else
        r[23]
      end
      
      tm = if r[12]
        r[12]
      elsif r[11]
        r[11]
      else
        r[10]
      end
      
      @acs.Execute("INSERT INTO InTable VALUES('#{r[0]}','#{tm}','#{r[13]}','#{zt}')");i+=1
    end
    <span style="white-space:pre">	</span>puts "sync #{i} arrival flights , take #{Time.now - start} s"
    
    i = 0;start = Time.now
    ret = @oci.exec('select * from DBO.DPXS_DEPARTURE') do |r|
      next if r[7].unpack("v*") != zb
      
      tm = if r[13]
        r[13]
      elsif r[12]
        r[12]
      else
        r[11]
      end
      
      @acs.Execute("INSERT INTO OutTable VALUES('#{r[0]}','#{tm}','#{r[14]}','#{r[27]}')");i+=1
    end
    puts "sync #{i} departure flights , take #{Time.now - start} s"
  end
end

INTERVAL_sec = 10
hb = Hb.new
t = 0
loop do 
  sleep(INTERVAL_sec);t+=INTERVAL_sec
  hb.sync
  (hb.zip;t=0) if t >= 60
  #t=0 if t >= 60
end
登入後複製


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1249
24
vscode怎麼查看word文件 vscode檢視word文件的方法 vscode怎麼查看word文件 vscode檢視word文件的方法 May 09, 2024 am 09:37 AM

首先,在電腦上開啟vscode軟體,點選左邊的【Extension】(擴充)圖標,如圖中①所示然後,在擴充介面的搜尋框中輸入【officeviewer】,如圖中②所示接著,從搜尋結果中選擇【officeviewer】安裝,如圖中③所示最後,開啟文件,如docx,pdf等,如下圖

xlsx檔手機打不開怎麼辦 xlsx檔手機打不開怎麼辦 Apr 25, 2024 am 08:28 AM

蘋果手機為什麼wps和excel文件打不開顯示無法預覽此文件1、蘋果手機上無法預覽WPS和Excel文檔的原因是因為手機上沒有安裝支持這些文件格式的應用程序,解決辦法有安裝支持文檔格式的應用程序,將文件轉換為PDF格式,將文件傳送到電腦或其他裝置上開啟。 2.先檢查檔案的後綴是什麼,如果是excel類別檔案後綴卻打不開,表示該檔案類型未註冊到電腦的資料夾選項中。 3.首先,在手機上開啟QQ瀏覽器;點選下方中間的那個按鈕;點選「檔案下載」;點選「文件」選擇想要開啟的excel檔案即可。總結打開QQ瀏覽

小米平板 6 系列全量推播 PC 等級 WPS Office 小米平板 6 系列全量推播 PC 等級 WPS Office Apr 25, 2024 pm 09:10 PM

本站4月25日消息,小米今日官宣,小米平板6、小米平板6Pro、小米平板6Max14、小米平板6SPro現已全量支援PC級WPSOffice。其中,小米平板6Pro、小米平板6需升級系統版本為V816.0.4.0以上,才可在小米應用商店下載WPSOfficePC。 WPSOfficePC採用了電腦同款操作和佈局,搭配平板的鍵盤配件,可以提高辦公室效率。根據本站先前的評測體驗,WPSOfficePC在編輯文件、表格、簡報等文件時效率明顯更高了。而且各種行動端使用不便的功能,諸如文字排版、圖片插入、

WPS和Office沒有中文字體,中文字體名稱顯示為英文 WPS和Office沒有中文字體,中文字體名稱顯示為英文 Jun 19, 2024 am 06:56 AM

小夥伴電腦,WPS和OFFICE中字體仿宋、楷體、行楷、微軟雅黑等所有中文字體都找不到,下面小編來說說如何解決這個問題。系統中字體正常,WPS字體選項中所有字體都沒有,只有雲端字體。 OFFICE只有英文字體,中文字體一個都沒有。 WPS安裝不同版本後,英文字體有了,但同樣一個中文字體都沒有。解決方法:控制台→類別→時鐘、語言和區域→更改顯示語言→(區域和語言)管理→(非Unicode程式的語言)更改系統區域設定→中文(簡體,中國)→重新啟動。控制面板,右上角查看方式改為“類別”,時鐘、語言和區域,更改

小米平板6系列全量推送PC級WPS!電腦同款佈局、操作 小米平板6系列全量推送PC級WPS!電腦同款佈局、操作 Apr 25, 2024 pm 06:40 PM

4月25日消息,今日,小米平板官方宣布,小米平板6、小米平板6Pro、小米平板6Max14、小米平板6SPro現已全量支援PC級WPSOffice。據了解,小米平板6、小米平板6Pro需升級系統版本為V816.0.4.0以上,才可在小米應用商店下載WPSOffice。 WPSOfficePCforPad擁有電腦版同款的操作和頁面佈局,被官方稱為「在平板上實現媲美電腦版WPS的高效率。」另外,在小米澎湃OS中,小米還為小米平板帶來了全新多任務系統,交互與PC視窗模式相似,官方稱為自

3d渲染,電腦配置?做設計3D渲染需要配置什麼樣的電腦? 3d渲染,電腦配置?做設計3D渲染需要配置什麼樣的電腦? May 06, 2024 pm 06:25 PM

3d渲染,電腦配置? 1電腦配置對於3D渲染非常重要,需要足夠的硬體效能才能確保渲染效果和速度。 23D渲染需要大量的運算和影像處理,因此需要高效能的CPU、顯示卡和記憶體。 3建議配置至少一台搭載至少6核心12執行緒的CPU、16GB以上的記憶體和一張高效能顯示卡的電腦,才能滿足較高的3D渲染需求。同時,也需要注意電腦的散熱和電源等方面的配置,以確保電腦的穩定運作。做設計3D渲染需要配置什麼樣的電腦?本人也是做設計的,給你一套配置吧(本人再用)CPU:amd960t開6核心(或1090t直接超頻)記憶體:1333

福昕PDF編輯器怎麼將PDF轉換成PPT_福昕PDF編輯器將PDF轉換成PPT教程 福昕PDF編輯器怎麼將PDF轉換成PPT_福昕PDF編輯器將PDF轉換成PPT教程 Apr 30, 2024 pm 03:13 PM

1.先開啟福昕PDF編輯器軟體。 2.然後用福昕PDF編輯器開啟PDF文檔,如圖所示:3、頂部工具列切換到【轉換】標籤頁。 4.接著選擇【到MSOffice】下拉式選單裡的【PowerPoint】。 5.最後將轉換後的PPT文件儲存到所需的位置即可。

7-zip最大壓縮率設定,7zip如何壓縮到最小 7-zip最大壓縮率設定,7zip如何壓縮到最小 Jun 18, 2024 pm 06:12 PM

發現某下載網站下載的壓縮包,解壓縮後再打包會比原來的壓縮包大一些,小的幾十Kb的差別,大的幾十Mb的差別,如果上傳到雲盤或付費空間,文件少無所謂,文件多的話,大大的增加儲存成本。特意研究了下,有需要的可以藉鏡。壓縮等級:9-極限壓縮字典大小:256或384,字典越壓縮越慢,256MB之前壓縮率差異較大,384MB後壓縮率無差別單字大小:最大273參數:f=BCJ2,測試加參數壓縮率會高一些

See all articles