以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请老师给一个从MYSQL读取数据到技术指标的范例  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=6423)

--  作者:lilieddove
--  发布时间:2011/5/5 14:31:23
--  请老师给一个从MYSQL读取数据到技术指标的范例

 

http://www.weistock.com/BBS/dispbbs.asp?BoardID=5&ID=401&replyID=&skin=1

利用数据库扩充金字塔的数据存放及分析能力

 

版主在上帖中给了一个从ACCESS数据库中读取数据,并导入到技术指标的例子。

 

//连接d:\\test.mdb数据库
DATABASE(\'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb\');

 

但我用的是MYSQL数据库,不知道如何建立连接。

 

假设在MYSQL数据库中表的字段名和ACCESS中的表字段名一致。版主能否给个例子,说明如何和MYSQL建立连接。

[此贴子已经被作者于2011-5-5 14:31:51编辑过]

--  作者:lilieddove
--  发布时间:2011/5/5 14:42:06
--  

刚在网上搜了一下DATABASE连接数据库的函数。根据下面的方法应该能搞定。

不通过DSN对SQL SERVER数据库进行连接。
DATABASE(\'driver={SQL Server};Server=127.0.0.1;DATABASE=test;UID=sa;PWD=1234\'),其中Server是127.0.0.1服务器的名称或IP地址,test是数据库的名称。

 

连接MYSQL数据库
DATABASE(\'driver={MySQL ODBC 5.1 Driver};Server=localhost;DATABASE=test;UID=root;PWD=123\')

 


--  作者:admin
--  发布时间:2011/5/5 14:42:34
--  

ADO连接MYSQL非常的麻烦,如果有可能更换数据库,还是建义更换SQL SERVER

 

ADO连接MySQL(2007-12-28 15:25:46)

<!-- 正文开始 -->
 
1.将myodbc3.dll,myodbc3S.dll拷贝到Windows/system32下
2.运行myodbc.reg
其内容为:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\\SOFTWARE\\ODBC\\ODBCINST.INI\\MySQL ODBC 3.51 Driver]
"UsageCount"=dword:00000001
"Driver"="C:\\\\WINDOWS\\\\system32\\\\myodbc3.dll"
"Setup"="C:\\\\WINDOWS\\\\system32\\\\myodbc3S.dll"


3.利用连接串Provider=MSDASQL.1;Driver={MySQL ODBC 3.51 Driver};Server=localhost;DataBase=test;UID=root;PWD=sa
 
 
如果需要上面的Dll,发信到gengpengfeix@163.com
warning:远程连接不能用Root用户
 

在安装MySql后只有一个超级管理权限的用户ROOT,而且ROOT限制只能在数据库本机上使用,如果我们要远程管理MySql咋办呢?那么事实上我们需要添加一个具有超级管理权限并且可能远程访问的超级用户,而在MySql中有两种方法可以实现这个目的,我们以增加一个超级权限管理用户 admin为例来说明。

你可以通过发出GRANT语句增加新用户:首先在数据库本机上用ROOT用户登录上MySql(不用我告诉你如何登录吧?),然后:

mysql>GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY \'something\' WITH GRANT OPTION;
mysql>GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY \'something\' WITH GRANT OPTION;

第一句增加了一个admin用户授权通过本地机(localhost)访问,密码“something”。第二句则是授与admin用户从任何其它主机发起的访问(通配符%)。

你也可以直接通过发出INSERT语句增加同样的用户存取信息:
mysql>INSERT INTO user VALUES(\'localhost\',\'admin\',PASSWORD(\'something\'), \'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\')
mysql>INSERT INTO user VALUES(\'%\',\'admin\',PASSWORD(\'something\'), \'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\')

取决于你的MySQL版本,对上述,你可能必须使用一个不同数目\'Y\'值(在3.22.11以前的版本有更少的权限列)。

验证方法,在命令行中输入:mysql -h主机名或IP地址 -u用户名 -p密码

[此贴子已经被作者于2011-5-5 14:43:07编辑过]

--  作者:lilieddove
--  发布时间:2011/5/5 14:51:07
--  

按上述方法试了下,报错了,提示“找不到可安装的isam 数据库


--  作者:lilieddove
--  发布时间:2011/5/6 9:43:17
--  


我按照下面的方法,找到了连接MYSQL的ADO字符串,并显示连接成功。
具体的ADO字符串为:Driver=MySQL ODBC 5.1 Driver;SERVER=127.0.0.1;UID=root;PWD=123;DATABASE=mytest;PORT=3306

其中数据库mytest下的表的设置和论坛给的ACCESS数据库中的表设置一样,如表名为SH600000或ZJIF00,字段名为stockdate和stockclose。


http://blog.csdn.net/zyq5945/archive/2010/04/14/5486393.aspx
自己如何正确获取MYSQL的ADO连接字符串

 

但我在技术指标中,使用下列代码时,没有报错。但却读不出数据库中的数据,显示cc:0。
DATABASE(\'Driver=MySQL ODBC 5.1 Driver;SERVER=127.0.0.1;UID=root;PWD=123;DATABASE=mytest;PORT=3306;\');
DBTABLE(\'Select * From @Code@ Order By StockDate\');
cc:DBVALUE(\'STOCKCLOSE\');

请版主帮忙看一下。

 

另外,我发现你们提供的DSN连接数据库的方式也有些问题。
比如我做如下设置,在控制面板/管理工具/数据源ODBC/系统DSN/添加/Miscrosoft Access Driver (*.mdb)/完成,接着数据源名输入:testaccess,数据库/

选择 d:\\test.mdb 确定后,在“系统数据源”下会出现testaccess数据源名称。这里的test.mdb就是论坛上给出的那个SH600000的ACCESS数据库。

 

以下为技术指标公式源码。
DATABASE(\'Data Source=testaccess;\');
DBTABLE(\'Select * From @Code@ Order By StockDate\');
cc:DBVALUE(\'STOCKCLOSE\');

 

运行后报错:找不到\'D:\\Weisoft Stock\\testaccess\'
请版主一并看看原因,也希望金字塔与数据库交互的功能能够逐渐完善。


--  作者:lilieddove
--  发布时间:2011/5/6 15:15:20
--  

 

从金字塔读MYSQL数据已搞定,上述代码没有问题,关键是在数据中的字段stockclose属性要设成浮点double类型。


--  作者:金字塔学习者
--  发布时间:2015/12/6 15:20:39
--  
请问您这种方法和楼主在下面几楼给出的方法
哪个才能连接MYSQL呢?

另外,我在网上自己查了下VBA连接MYSQL的方法。
自己理解的方法是
1 安装对应MYSQL版本的ODBC程序
2 在控制面板下面的管理工具里设置ODBC数据源
3 在金字塔软件里用VBA写楼主给出的那些字串来连接MYSQL
不知道我这样的理解对么?

因为最近在考虑更换电脑,系统什么的都可能要换了,所以在考虑把一些原来的程序做改变。
还望版主以及各位坛友帮忙解答下哦。
谢谢啦。

--  作者:金字塔学习者
--  发布时间:2015/12/7 13:55:59
--  
老师们能帮忙解答下我在7楼的问题么?
谢谢啦。

--  作者:yukizzc
--  发布时间:2015/12/7 14:17:15
--  
您去高级区发个专门贴咨询下吧,有专人负责的。
--  作者:金字塔学习者
--  发布时间:2015/12/7 14:24:22
--  
好的  谢谢哦
那我现在去发哦