CMAdox 5 (Win 64位元) 使用與安裝說明
本文件說明如何註冊、引用 cmadox5.dll 以及在程式中調用 CMADODB5.CMConnection 物件進行資料查詢。
一:關於 cmadox5.dll 的引用
使用本範例,必須先註冊 cmadox5.dll,再引用進來使用。 例如將 cmadox5.dll 複製到您的 C:\Windows\SysWOW64 目錄下,並將該 dll 檔案註冊:
-
執行指令:於「開始」的「執行...」鍵入 regsvr32 C:\Windows\SysWOW64\cmadox5.dll 後按確定執行。
-
手動註冊:元件服務中註冊。
實際的程式碼中您可以使用物件 CMADODB5.CMConnection,此物件提供方法 CMExecute 可回傳 ADODB.recordset。
二:關於 CMADODB5.CMConnection 的 CMExecute 方法
使用舊協定查詢 回傳一個 adodb 的 recordset。
-
CMConn:是一個 CMADODB5.CMConnection 物件。
-
SQL:想要執行的 SQL 陳述式。
範例語法:
1. 輸出基本表資料
' table 名稱直接使用 CMoney 上看到的表名即可
' 例如 SQL = "SELECT * FROM 日收盤表排行 WHERE (日期 = '20041110') ORDER BY 股票代號"
CMConn.Execute "5" ,資料庫位置,資料庫位置連接埠, SQL
三:關於 CMADODB5.CMConnection 的 CMExecuteSQLNCLI11 方法
使用TLS1.2協定來查詢 回傳一個 adodb 的 recordset。
-
CMConn:是一個 CMADODB5.CMConnection 物件。
-
SQL:想要執行的 SQL 陳述式。
範例語法:
1. 輸出基本表資料
' table 名稱直接使用 CMoney 上看到的表名即可
' 例如 SQL = "SELECT * FROM 日收盤表排行 WHERE (日期 = '20041110') ORDER BY 股票代號"
CMConn.CMExecuteSQLNCLI11 "5" ,資料庫位置,資料庫位置連接埠, SQL
四:程式範例
Dim Conn_CMado As New CMADODB5.CMConnection
Dim Rs As New ADODB.Recordset
Dim Str_SQL As String
Dim Str_Arg As String
Str_SQL = "SELECT * FROM 日收盤表排行 WHERE (日期 = '20041110') ORDER BY 股票代號"
Str_Arg="5"
Set Rs = Conn_CMado.CMExecute(Str_Arg,"cmoneyserver","", Str_SQL)
*若執行查詢失敗,會回傳錯誤給 Str_Arg變數中
五:關於動態連結代號 – 台股
標籤:使用 <CM參數1,參數2> 來決定要設定的動態連結代號,標籤內用逗號來分隔參數。
- 參數 1 是動態連結的種類
- 參數 2 是動態連結的代號。
-
台股 – 交易所代號:<CM代號,1>
例:SELECT * FROM [季財報(現金流量單季)] WHERE 年季='201003' AND 股票代號 IN <CM代號,1>
-
台股 – 細產業分類:<CM產業,303>
例:SELECT * FROM [季財報(現金流量單季)] WHERE 年季='201003' AND 股票代號 IN <CM產業,303>
-
台股 – 個股特殊分類(不含指數彙編):<CM特殊,1>
例:SELECT * FROM [季財報(現金流量單季)] WHERE 年季='201003' AND 股票代號 IN <CM特殊,1>
例:SELECT [中文簡稱] FROM [上市櫃公司基本資料] WHERE 年度='2014' AND 股票代號 IN <CM特殊,2002> -
多個代號寫法:比如想抓取收盤價,樣本為上市、上櫃、創新板、ETF
例:SELECT 股票代號,收盤價 FROM [日收盤表排行] WHERE (股票代號 IN <CM代號,1> OR 股票代號 IN <CM代號,2> OR 股票代號 IN <CM代號,Y1> OR 股票代號 IN <CM特殊,5>) AND 日期='20231110'
-
格式建議:欄位名稱有 (),建議以中括號 [] 包起來,資料表名建議都要用 [] 包起來:
例:SELECT 股票代號,[總市值(億)] FROM [日收盤表排行] WHERE (股票代號 IN <CM代號,1> OR 股票代號 IN <CM代號,2>) AND 日期='20231110'
六:關於動態連結代號 – 非台股
標籤:使用 <CM參數1,參數2,參數3,參數4> 來決定要設定的動態連結代號,標籤內用逗號來分隔參數。
- 參數 1 是動態連結的種類
- 參數 2 是動態連結的代號
- 參數 3 是資料表名稱
- 參數 4 是次樣本名稱。
-
非台股:<CM一般,日本,重要國際指數,國家>
例:SELECT * FROM [重要國際指數] WHERE 日期='20110120' AND 代號 IN <CM一般,日本,重要國際指數,國家>
例:SELECT * FROM [權證基本資料表] WHERE 年度='2011' AND 代號 IN <CM一般,一般型認售權證,權證基本資料表,類型>
註:資料表前後請留空白,若表格名稱內含有中括號,則表格名稱請不要再用中括號包住。
===============================================================================
新版本 - 支持指定連線sql使用的帳號、密碼(組件版本需在2.10.0.0 以上)
CMConn= CreateObject("CMADODB5.CMConnection") Call
CMConn.UseIdPassword("指定帳號", "指定密碼")
發表
我的網誌
