以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- 如何快速的只把股票历史数据写入SQL server数据库 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=188338) |
-- 作者:sword8586 -- 发布时间:2021/5/17 12:02:55 -- 如何快速的只把股票历史数据写入SQL server数据库 老师好,如题: 1、快速写入股票,只要股票的历史数据,不要债券等的历史数据写入SQL SERVER数据库 2、我的VBA方法太慢,请老师帮忙改改,提高写入速度。谢谢。、 sub SQL_Con1()
application.MsgOut Date &" " &Time& "检索股票名称及代码"
Dim marketName
marketName=Array("SZ","SH")\'此处只查上海及深圳A股"SZ","SH"。不查期货市场"SQ","DQ","ZQ","ZJ",
\'找到股票的代码及名称
dim markets
For j=0 To UBound(marketName)
markets=marketName(j)\'某一市场名称
n=marketData.GetReportCount(markets)\'某一市场名称下股票或商品的数量
For i=0 To n-1 Set reportData=marketdata.GetReportDataByIndex(markets,i)\'某一市场名称下某种(i号)股票或商品的所有信息(代码、名称等)
Dim Table_name,Code,Open,Close,High,Low,Date
table_name1="M1_"+reportData.Label
\'=====================================================================================================
dim cn,rs
Set cn = CreateObject("Adodb.Connection")
Set rs = CreateObject("Adodb.Recordset")
\'连接数据库``
strCn="Provider=sqloledb;Server=高大\\MYSQL;Database=MyStocK;Uid=sa;Pwd=88888888;"
cn.Open strCn
strfield1 ="[OpenD] [varchar](53) NOT NULL,[CloseD] [varchar](53) NOT NULL,[StockO] [float](53) NULL,[StockC] [float](53) NULL,[StockH] [float](53) NULL,[StockL] [float](53) NULL,[StockV] [float](53) NULL,[StockOI] [float](53) NULL" strsqlcre ="CREATE TABLE [dbo].["+ table_name1 + "]("+strfield1+")"
cn.Execute(strsqlcre)
strSQL ="select * from ["&table_name1&"]" \'定义SQL查询命令字符串
rs.Open strSQL,cn,1,3 \'执行strSQL所含的SQL命令,结果保存在rs记录集对象中
\'调入调试数据,4 60分钟
set qtzq= marketdata.GetHistoryData(reportData.Label,marketName(j),0)\'周期类型:0 1分钟,1 5分钟,2 15分钟,3 30分钟,4 60分钟,5日线,6周线,7月线,8年线,9多日线,10分笔成交,11多小时线,12多秒线,13多分钟线,14季度线,15半年线,16节气线,17 3分钟,18 10分钟,19 多笔线 for ii=0 to qtzq.Count-1
rs.addnew rs("OpenD")=DateAdd("n", -1, qtzq.Date(ii)) rs("CloseD")=qtzq.Date(ii) rs("StockO")=CSng(qtzq.Open(ii)) rs("StockC")=CSng(qtzq.Close(ii)) rs("StockH")=CSng(qtzq.High(ii)) rs("StockL")=CSng(qtzq.Low(ii)) rs("StockV")=CSng(qtzq.Volume(ii)) rs("StockOI")=CSng(qtzq.OpenInt(ii))
rs.update
next
rs.close
cn.Close \'关闭数据库链接,释放资源
Set cn = Nothing\'释放连接
next
next MSGBOX "table text1表已存在"
end sub |
-- 作者:sword8586 -- 发布时间:2021/5/17 12:08:56 -- sub SQL_Con1()
application.MsgOut Date &" " &Time& "检索股票名称及代码"
Dim marketName
marketName=Array("SZ","SH")\'此处只查上海及深圳A股"SZ","SH"。不查期货市场"SQ","DQ","ZQ","ZJ",
\'找到股票的代码及名称
dim markets
For j=0 To UBound(marketName)
markets=marketName(j)\'某一市场名称
n=marketData.GetReportCount(markets)\'某一市场名称下股票或商品的数量
For i=0 To n-1
Set reportData=marketdata.GetReportDataByIndex(markets,i)\'某一市场名称下某种(i号)股票或商品的所有信息(代码、名称等)
Dim Table_name,Code,Open,Close,High,Low,Date
table_name1="M1_"+reportData.Label
\'=====================================================================================================
dim cn,rs
Set cn = CreateObject("Adodb.Connection")
Set rs = CreateObject("Adodb.Recordset")
\'连接数据库``
strCn="Provider=sqloledb;Server=高大\\MYSQL;Database=MyStocK;Uid=sa;Pwd=88888888;"
cn.Open strCn
strfield1 ="[OpenD] [varchar](53) NOT NULL,[CloseD] [varchar](53) NOT NULL,[StockO] [float](53) NULL,[StockC] [float](53) NULL,[StockH] [float](53) NULL,[StockL] [float](53) NULL,[StockV] [float](53) NULL,[StockOI] [float](53) NULL"
strsqlcre ="CREATE TABLE [dbo].["+ table_name1 + "]("+strfield1+")"
cn.Execute(strsqlcre)
strSQL ="select * from ["&table_name1&"]" \'定义SQL查询命令字符串
rs.Open strSQL,cn,1,3 \'执行strSQL所含的SQL命令,结果保存在rs记录集对象中
\'调入调试数据,4 60分钟
set qtzq= marketdata.GetHistoryData(reportData.Label,marketName(j),0)\'周期类型:0 1分钟,1 5分钟,2 15分钟,3 30分钟,4 60分钟,5日线,6周线,7月线,8年线,9多日线,10分笔成交,11多小时线,12多秒线,13多分钟线,14季度线,15半年线,16节气线,17 3分钟,18 10分钟,19 多笔线
for ii=0 to qtzq.Count-1
rs.addnew
rs("OpenD")=DateAdd("n", -1, qtzq.Date(ii))
rs("CloseD")=qtzq.Date(ii)
rs("StockO")=CSng(qtzq.Open(ii))
rs("StockC")=CSng(qtzq.Close(ii))
rs("StockH")=CSng(qtzq.High(ii))
rs("StockL")=CSng(qtzq.Low(ii))
rs("StockV")=CSng(qtzq.Volume(ii))
rs("StockOI")=CSng(qtzq.OpenInt(ii))
rs.update
next
rs.close
cn.Close \'关闭数据库链接,释放资源
Set cn = Nothing\'释放连接
next
next MSGBOX "table text1表已存在" end sub
|
-- 作者:yukizzc -- 发布时间:2021/5/17 21:09:47 -- 抱歉,这边不提供数据导出相关的技术服务的 |
-- 作者:sword8586 -- 发布时间:2021/5/18 10:19:04 -- 谢谢您。我就用Dll处理吧。 |