Foxtable(狐表)用户栏目专家坐堂 → [注意] 外部数据源的问题!!


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

主题:[注意] 外部数据源的问题!!

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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
[注意] 外部数据源的问题!!  发帖心情 Post By:2008/9/2 16:12:00 [显示全部帖子]

      今天花了半天多时间,按照帮助文件的说明顺序,一鼓气将狐表的基本功能(开发部分除外)全部尝试了一下。感觉确实是很爽:在继承了易表全部优点的基础上,很多功能更加强大了,比如窗口停靠,这界面真的是很漂亮!!尤其是新增的EXCEL报表功能,这太厉害了,实在是好用!

      当然,我关注狐表,更关心的是它对外部数据源的支持。因为,只有使用外部数据源,才能做到真正的程序和数据分离。我用我手上一直在用的SQL Server数据中的一个表做了测试(不到14万条数据),发现有以下问题:

     1、建立外部数据源时,为什么不能把连接字符串信息写入到一个配置文件中呢?因为开发和使用时,SQL数据库的网络环境是不一样的。比如,我现在用狐表开发时,我的数据库服务器是A,用户名、密码是C和D;但项目完成以后,移植到客户那里使用时,他的数据库服务器、用户名、密码等等可能是完全不一样的。
     如果可以把连接字符串信息写到一个配置文件里,那么以后将开发好的项目分发给其它用户使用时,他只要根据自己的数据库服务器重新配置一下这个文件,项目运行时自动读取这个文件就可自动完成外部数据库的连接了。

    2、新增外部数据表时,速度还可以,但新增外部查询表时会出错。以我这个不到14万条的数据表为例,将它新增进入狐表基本是一分钟的时间。以select * from ……这样的查询语句新增外部查询表时,时间也基本是一分钟左右。但如果以select field1,field2.... from table group by之类的方式新增外部查询表的话,总是会出现一些错误提示、新增失败。

    3、在外部数据表新增完成以后,我在狐表中对这个数据表选择两项进行分组、对两项进行统计时,大约在1分钟时出现了“统计表”的字样,又过了大约3分钟才出现统计结果。而同样的统计,在我现在自己编写的应用程序中,只要不到1分钟的时间(用SQL语句完成的)。

    4、在狐表中,我又对这个新增的数据表,分别选择一个水平列和垂直列,对两项指标进行交叉统计。结果是,在5分钟左右时,才出现“统计表”字样,然后一直没有反映。这中间我吃了顿午饭,饭后过来再看,发现是死机了。而同样的统计,通过SQL语句完成的话,时间也就是2分钟左右。

    由此可见,狐表虽然已经可以支持外部数据源,但它在处理大数据量方面还是很欠缺的,速度仍然是个问题。刚才的这种测试还是在局域网中的,如果是远程数据库,那么,这种统计工作肯定更加吃力。另外,弧表在启动时非常慢,这点能否想办法解决。还有就是,帮助文件中,关于SQL语句的介绍,最好是按ACCESS和SQL SERVER两种数据库分别介绍,因为在增加外部查询表时,两种数据库的语法还是有一定差别的。据我所知,“TRANSFORM 统计表达式 SELECT 查询语句 WHERE 条件表达式 GROUP BY 分组语句 Pivot 水平分组”这种语法好象就只在ACCESS中有效。
[此贴子已经被作者于2008-9-2 16:16:09编辑过]

[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2008/9/2 16:19:00 [显示全部帖子]

新增外部查询表时,出现的错误提示如下(需要说明的是,该查询命令在SQL查询分析器中是通过的):

图片点击可在新窗口打开查看此主题相关图片如下:snap1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2008-9-2 16:21:09编辑过]

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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2008/9/2 17:03:00 [显示全部帖子]

还有就是,外部数据表在新增以后,我如果修改了某一行数据,执行“同步行”功能不能同步刷新外部数据,只有执行“同步当前表”才可以。但这样做的话,同步的时间要耗费好几分钟。

关于大数据量的问题,通过条件限制进行动态加载,确实效率比较高。但如果要对数据表中的全部记录进行查询呢?这种情况在实际应用中是经常存在的,比如,数据库中有10年或者8年的几十万条甚至上百万条记录,想通过foxtable本身的“汇总模式”来进行灵活分析每年的走势,这就需要载入全部的数据。这样一来,速度的软肋又体现出来了。当然,要解决这个问题,可以通过新增外部查询表、QueryBuilder的方式直接得到结果,但这样新增的数据就不是原始数据了,foxtable本身各种强大的汇总统计功能就没必要再使用,实在可惜。

关于第2条的问题,确实是正确的SQL语句,但也确实是出错了,等会我把抓图帖上来。

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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2008/9/2 17:09:00 [显示全部帖子]

刚回完帖子,想到foxtable里进行操作抓图,突然弹出这个窗口,也不知怎么回事(foxtable的当前状态为:新增外部表的汇总模式):

图片点击可在新窗口打开查看此主题相关图片如下:snap2.jpg
图片点击可在新窗口打开查看

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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2008/9/2 17:12:00 [显示全部帖子]

以下是引用狐狸爸爸在2008-9-2 16:51:00的发言:
测试这个看看:

select Top 1000 from [t_icitem] 

这样不会等很长时间。


正确的应该是 select Top 1000 * from [t_icitem] 吧? 


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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2008/9/2 17:29:00 [显示全部帖子]

真是奇怪了,我在一楼讲到的第2个问题确实是碰到的,现在再试又正常了。因为我是直接从我原来那个程序里复制的SQL语句,现在怎么试都正常。如下图,这就预览后的结果:

图片点击可在新窗口打开查看此主题相关图片如下:snap3.jpg
图片点击可在新窗口打开查看
会不会是因为中午foxtable死机导致的原因呢?

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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2008/9/2 17:33:00 [显示全部帖子]

eric803碰到的问题和我中午说的一样,都是在输入表名后、加载时出错。
现在居然正常了,奇怪的很!!

 回到顶部