欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请老师给一个从MYSQL读取数据到技术指标的范例

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有11182人关注过本帖树形打印复制链接

主题:请老师给一个从MYSQL读取数据到技术指标的范例

帅哥哟,离线,有人找我吗?
lilieddove
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:58 积分:423 威望:0 精华:0 注册:2011/3/1 11:18:30
请老师给一个从MYSQL读取数据到技术指标的范例  发帖心情 Post By:2011/5/5 14:31:23    Post IP:116.236.237.185[只看该作者]

 

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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:58 积分:423 威望:0 精华:0 注册:2011/3/1 11:18:30
  发帖心情 Post By:2011/5/5 14:42:06    Post IP:116.236.237.185[只看该作者]

刚在网上搜了一下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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2011/5/5 14:42:34    Post IP:113.105.135.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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:58 积分:423 威望:0 精华:0 注册:2011/3/1 11:18:30
  发帖心情 Post By:2011/5/5 14:51:07    Post IP:116.236.237.185[只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
lilieddove
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:58 积分:423 威望:0 精华:0 注册:2011/3/1 11:18:30
  发帖心情 Post By:2011/5/6 9:43:17    Post IP:116.236.237.185[只看该作者]


我按照下面的方法,找到了连接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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:58 积分:423 威望:0 精华:0 注册:2011/3/1 11:18:30
  发帖心情 Post By:2011/5/6 15:15:20    Post IP:116.236.237.185[只看该作者]

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
金字塔学习者
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:255 积分:780 威望:0 精华:0 注册:2011/9/22 3:04:44
  发帖心情 Post By:2015/12/6 15:20:39    Post IP:115.224.89.157[只看该作者]

请问您这种方法和楼主在下面几楼给出的方法
哪个才能连接MYSQL呢?

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

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

 回到顶部
帅哥哟,离线,有人找我吗?
金字塔学习者
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:255 积分:780 威望:0 精华:0 注册:2011/9/22 3:04:44
  发帖心情 Post By:2015/12/7 13:55:59    Post IP:60.187.81.70[只看该作者]

老师们能帮忙解答下我在7楼的问题么?
谢谢啦。

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/12/7 14:17:15    Post IP:58.246.57.26[只看该作者]

您去高级区发个专门贴咨询下吧,有专人负责的。

 回到顶部
帅哥哟,离线,有人找我吗?
金字塔学习者
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:255 积分:780 威望:0 精华:0 注册:2011/9/22 3:04:44
  发帖心情 Post By:2015/12/7 14:24:22    Post IP:60.187.81.70[只看该作者]

好的  谢谢哦
那我现在去发哦

 回到顶部
总数 11 1 2 下一页