請問有關於寫入Access檔案格式

   我想把一堆抓到ㄉ數據存成 Access檔案格式, 

 及讀取歷史資料(Access檔案格式 )顯示成圖形

 我該如何做ㄋ? ![<img border=](upload://ekm3yUkVpx9yRp2Oc1K3CjKn5ta.gif)

Benjamin37825.7673842593

其實國外有一些網站很好,他們有自己寫一些LabVIEW元件,可以供別人免費下載,還有豐富的範例可以參考,喜歡用LabVI EW開發程式的人,可千萬不要錯過。

這裡提供兩個我之前在網路下載的LabVIEW程式,分別讓你可以存取本機的資料庫以及處理XML格式的資料:

下載LabSQL-1.1a.zip後,可以參考它的範例以及使用方式,就可以順利跟Access資料庫連結了。

Benjamin38094.6382060185

  可以不使用SQL的方式存取Access的檔案格式嗎?

[QUOTE=idea-Eric]  可以不使用SQL的方式存取Access的檔案格式嗎?[/QUOTE]

這我就不知道了...因為我也是用上面的Toolkit去聯結資料庫的。

剛剛到NI.com網站去看,發現它們有一種展品,叫做:LabVIEW Database Connectivity Toolset。網址是:http://sine.ni.com/apps/we/nioc.vp?cid=6429&lang=US。不過天下沒有吃的午餐,那一個Toolkit是要收費的,價格是新台幣:38,300元。

Benjamin38094.6394444444

[QUOTE=idea-Eric]  可以不使用SQL的方式存取Access的檔案格式嗎?[/QUOTE]

對了,我剛剛想到,為什麼你不想要使用SQL的指令來寫入、讀取Access的資料。因為Access就是一個資料庫,所以用SQL指令去讀取,應該是一見天經地義的事情阿。可以請你詳細說明你的用途嗎?比如說:為什麼要使用Access來存放資料?...等等。

![|61x59](upload://lTkBiKYocE5J6EqRejuxVFrtSxf.gif)

   原因是我想把一堆抓到ㄉ數據存檔(ASCII格式),但重新開啟查詢時,LabVIEW就掛了!(檔案大小約6.5MB).所以想要使用(Access格式)來存放資料的原因.為什麼不想要使用SQL的指令來寫入、讀取Access的資料。是因為想借重Access檔案格式存取超過1GB的能力,但是又不想牽扯到資料庫的設定問題.不知可行性如何?

Access的存放資料的極限是2G,所以他確實可以存放大量的資料。但是我想,要使用Access就一定要用到資料庫的指令。而且我認為,如果你用Access存了好幾百MB的資料,在做查詢時,執行效能可能不高,因為資料量過大時,跟SQL或MySQL比較起來Access就會像是廢物一樣。

當然,將所有資料用同一個Access格式的檔案來存放、管理是一個很好的方法。因為所有的數據都被集中成一個檔案,而不是分散的。這一點我覺得相當直得推崇。

不過我想要請問一下,有沒有可能減少你的資料量呢?我的意思是說,在你結取完訊號之後,有沒有先用LabVIEW將原始數據加工一下,變成精簡的數據呢?

例如,我要測量光的強度,於是我用LabVIEW擷取Powermeter的數據,為了慎重,我取了1000筆數據。但是,我不用將這1000筆數據全部儲存起來。我只要這1000筆數據的平均值而已。這樣我就可以只儲存1筆數據,而不是1000筆數據。

我不知道您取的是什麼樣的數據。也許您的數據真的需要這麼大量的資料也不一定。可以請您說說:您要取的是什麼樣的數據嗎?

不過我有一個疑問,你在文中說到:「但重新開啟查詢時,LabVIEW就掛了!(檔案大小約6.5MB)」。如果不使用Access,您要如何查詢呢?請問你這邊的重新開啟查詢是什麼意思呢?

   數據是由Data Acquisition擷取,內容為一些電壓/溫度數值,須長時間記錄一天~一週甚至更久....需要完整記錄,數據無法平均.重新開啟查詢是指記錄後的資料開啟/或是圖形化

顯示.

但是現在存檔格式一直無解  ![](upload://bim7Kb3Zfl5SrPF2GFcCSDus3NW.gif)

[QUOTE=idea-Eric]

   數據是由Data Acquisition擷取,內容為一些電壓/溫度數值,須長時間記錄一天~一週甚至更久....需要完整記錄,數據無法平均.重新開啟查詢是指記錄後的資料開啟/或是圖形化

顯示.

但是現在存檔格式一直無解  ![](upload://bim7Kb3Zfl5SrPF2GFcCSDus3NW.gif)

[/QUOTE]

請問多久擷取資料一次,1秒?10秒?1分鐘?

以前我也做過這種事,我將雷射的資料,如溫度、電流、電壓、使用時間等等,透過web傳到遠端的伺服器上。伺服器上的資料庫也是使用Access。如果你要使用web將資料傳到遠端的資料庫時,您必須有:

  • IIS網路服務伺服器(Win2000、Win2003皆可)
  • Access軟體

不過呢...我想你還是將資料儲存到本機的Access檔,比較實在。

不過,我目前只知道用上述的免費Toolkit來寫入資料庫,另外的方法,我就不清楚了。不過你換個想法,只要你解決這一個問題,你就可以順便學會如何操作資料庫,這樣也可以多學一點。

Benjamin37826.4513310185

   請教Benjamin,之前你也做過這種事,如溫度、電流、電壓、使用時間等等,透過web傳到遠端的伺服器上。伺服器上的資料庫也是使用Access。可以序述一下當初架設的過程及Toolkit來寫入資料庫的經驗嗎?謝謝!

多久擷取資料一次,1秒?10秒?1分鐘?   = 1秒~10秒

我當時是透過web的ActivX,30秒鐘擷取一次,在擷取資料後,連線到網頁。如果網頁是:http://stdb.org/test.asp的話。如果溫度是「30」,假設溫度用「t」代表,那我就連線到「http://stdb.org/test.asp?t=30」。

然後必須要在test.asp這一個檔案下寫相對應的ASP程式。先接收t(<%t=request("t")%>)。然後再開啟資料庫,再將溫度存到資料庫中。

這樣做的好處是可以將資料送到遠端的資料庫中。

此外,另一種方式,可以參考「http://stdb.org/bbs/forum_posts.asp?TID=33」裡面的程式。我也曾經用那一個程式來及時傳送資料,速度很快。

也許我這些方法是所謂的土法片剛,也許有更好的做法,蕭子健先生的「LabVIEW網路篇」我沒有看過,雖然實驗室已經改了這一本書,但是我一直沒有時間看。也許看了之後,會得到更好的解決方案吧。

Benjamin37826.5027662037

  若是不透過網路方式,而使用SQL-Toolkit來寫入資料庫的方式,可以大概解說嗎?

彷間是否有提及Access資料庫讀取架設的書籍?

  • 若是不透過網路方式,而使用SQL-Toolkit來寫入資料庫的方式,可以大概解說嗎?
    你可以參考壓縮檔裡面的範例。因為我也只會寫入資料庫而已,而且最近真的很忙。我只能給你一個方向,沒有辦法幫你做...![](upload://wh1Jr0invKZTARRL2Hqlvc8do63.gif),有點抱歉...

  • 彷間是否有提及Access資料庫讀取架設的書籍?
    應該沒有。

感謝Benjamin 的協助

設定資料庫的方法如下:

1、「開始」、「系統管理工具」、「資料來源(ODBC)」

 

2、在「系統資料夾名稱」處,選取「新增」

 

3、選擇「Driver do Microsoft Access(*.mdb)」,然後按「完成」

 

4、資料來源名稱假設輸入:「opticalcoating_database」,在「資料庫」處,按「選取」,然後選擇你的資料庫的路徑

 

5、選擇路徑

 

6、完成設定後,按下「確定」即可

Benjamin37827.5764351852

   都要經過這樣的設定成序才可以在LabVIEW使用SQL讀取Access嗎?

[QUOTE=idea-Eric]   都要經過這樣的設定成序才可以在LabVIEW使用SQL讀取Access嗎?[/QUOTE]

我是先經過這樣的設定,然後再使用LabSQL-1.1a.zip裡面的範例,這一個方法我也是從網路上面學來的,從哪裡學來的我是忘記了。不過,如果你要使用LabSQL-1.1a.zip裡面的範例,就應該要這樣設定才對。至少我是這樣設定的,而且我也可以順利寫入資料庫,以及從資料庫查詢資料。

Database Connectivity Toolset User Manual:LV_Database.pdf

有空看看吧...

     LV_Database.pdf裡面的東東是乎要不少銀兩!LabSQL-1.1a是目前最好最快的解決之道嗎?

[QUOTE=idea-Eric]     LV_Database.pdf裡面的東東是乎要不少銀兩!LabSQL-1.1a 是目前最好最快的解決之道嗎?[/QUOTE]

我目前知道的是這樣的情況,目前我也是用LabSQL-1.1a來與資料庫連結,但是,「一山還有一山高,強中自有強中手」,如果各位高手還有更好的辦法的話,敬請提出喔...

![|55x55](upload://ovaW2kOJ4jb5dJ6DVOFqR28qsQh.gif) ![|55x54](upload://oJFZ9b0JZRtluEbdgsUHBv9yLzB.gif) ![|59x55](upload://aeTYlqEc1qXvs9Jv3ju6pnq9wZt.gif)