Labsql支援的SQL語法有哪些?

之前曾經問到labsql無法將access資料表的欄位名稱那一行匯入labview中,至少labsql的範例沒有,我問了一下會sql,access的同學,他給我一些語法:SELECT TreeList.SpeciesCode, TreeList.BotanicalName, TreeList.Drought AS Dry, TreeList.Sandy AS Sand FROM TreeList        可是我怎麼試都不行,台灣好像沒有書有完整介紹labsql吧.大陸那邊好像就有,我想請問labsql是所有sql都能用嗎?不知道有沒有人兩種都精通?

這是個人第一次在此論壇發表淺見,如何不週之處尚請見諒。

基本上LabSQL應該是所有SQL語法都可以執行。有關如何從table中讀取欄位名稱可用下圖來取得。

![](upload://qD55kwY2pWk0r7SPeuCkuU4Ljxx.jpeg)

各位可以試看看,利用invoke node來取得Fields物件的Item方法及property node取得Field物件的Name屬性,之後就看你怎麼用它了。

可以的我用过的,你可以看一看杨乐平的LV高级程序设计,上面说的还可以的。

請問Roy3680圖中左邊第二個icon在哪裡?我的labview7.1好像找不到,另外,說實話我都看不太懂,可能要去買一本"LV高级程序设计"來讀

第二個icon是Automation Open,你可以從All Functions>Communication>ActiveX中看到

其實左下哪三個圖形就等於LabSQL的ADO Connection Create及ADO Connection Open的功能,你如果將上述兩個vi開啟來研究,就可以發現是利用這三個圖形寫出來的。你若看不太懂應該不是在LabVIEW的設計部分,而是對ADO的Model不熟悉。ADO Model中重要的主要物件就是Connection, Recordset, Command這三個,你必須注意它們的依存關係,從LabSQL附的ADO210.CHM你可以去了解。

我想講半天還是直接放上範例會比較快了解些,下面範例有附上SampleDatabase.mdb,其中有說明如何不用DSN去讀取跟vi同目錄的Access檔,另外connection必須在recordset close後才可以close,所以資料流是有順序性的,這一點必須注意。

LabSQL_GetFieldName.rar

 

 

太厲害了,這篇可以收藏起來,謝謝

感謝 Roy3680 兄解決了我長久以來使用 database 的問題,

以前使用資料庫都必須到控制台 - > 系統管理工具 - > ODBC ,

進行設定, 現在依照 roy3680 兄的方法, 成功讀取資料庫檔案 , 完全不需設定 ODBC,

只要將資料庫跟程式放在同個目錄即可, 如此太方便了, 解決了我一個大問題,

建議使用資料庫的朋友千萬要試試看

 

 

 

剛剛發現一個嚴重的問題.我把Roy3680的範例編成exe執行檔以後就抓不到資料庫數據了!!

我確定有把*.exe和*.mdb放在同一個資料夾內,還是得用ni的toolkit才能解決嗎?

你的問題其實在於Application的路徑,如果在run time跟設計模式是有差異的,之間是相差一個目錄,建議你用如下方式解決。

利用App.Kind屬性確認是run time時多加一個路徑解析,不是的話就直接連線就行。

![](upload://qhsNs1Bb07l1gS0DAXBmFEoGDQ6.jpeg)

 

有範例可以看嗎?我照上面的程式寫,只會顯示目前exe檔案的位置(C:\Documents and Settings\Administrator\My Documents\LabVIEW Data\app\Application.exe),

To 13,

我想你可能誤會我的意思,我只是告訴你可利用Application的Kind屬性多加一個路徑解析,至於你後面要做什麼處理就看你自己的需求。

不過我還是改了一下上回的範例檔案,你可以再試試看。LabSQL_GetFieldName.rar

杨乐平的LV高级程序设计,上面只介绍了通过设置ODBC来访问数据库的方法,对LabSQL介绍了基础,要想用好LabSQL还要自己钻研。roy3680这种方法太好了,我本没打算在自己的程序中加上数据库访问,就是设置ODBC嫌麻烦,这下roy3680让我在程序中重新加入了数据库访问。谢谢roy3680兄。