Foxtable(狐表)用户栏目专家坐堂 → 调用SQL视图出错


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

主题:调用SQL视图出错

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


加好友 发短信
等级:幼狐 帖子:170 积分:1487 威望:0 精华:0 注册:2012/8/15 15:02:00
调用SQL视图出错  发帖心情 Post By:2014/8/27 22:03:00 [只看该作者]

一 生成查询表

Dim q As new QueryBuilde

q.Cq.TableName = "生产备料表"
q.SelectString = "select * from {IaV_STSCBlb}"
q.Build
With Tables("生产备料表")
    .Cols("iPSQuantity").GrandTotal = True
    .Cols("iPlanQuantity").GrandTotal = True
    .GrandTotal = True
End With
MainTable = Tables("生产备料表")

 

结果出现错误提示,检查后发现特别之处在于SQL视图中有除法表达式,请问是否这个原因?(其他普通视图能成功)

有什么解决办法呢?

 

CREATE VIEW dbo.IaV_STSCBlb
AS

SELECT w.cWhCode, w.cWhName, d .cDepCode, d .cDepName, CONVERT(varchar(40),
      s.cSOCode) AS cSOCode, ISNULL(m.cVouchCode, '') AS cVouchCode,
      CONVERT(varchar(30), i.cInvCode) AS cInvCode, ISNULL(i.cInvAddCode, '')
      AS cInvAddCode, i.cInvName, i.cInvStd, m.cFree1 AS bFree1, m.cFree2 AS bFree2,
      i.cInvM_Unit, m.Quantity, CONVERT(varchar(30), ivs.cInvCode) AS scInvCode,
      ISNULL(ivs.cInvAddCode, '') AS scInvAddCode, ivs.cInvName AS scInvName,
      ivs.cInvStd AS scInvStd, ms.cFree1 AS sbFree1, ms.cFree2 AS sbFree2,
      round(ms.iPlanQuantity / m.Quantity,4) AS iPSQuantity, round(ms.iPlanQuantity,4) iPlanQuantity,
      round(isnull(ms.iSumActiQuantity, 0),4) AS iSumActiQuantity,
      CASE WHEN ms.iPlanQuantity - isnull(ms.iSumActiQuantity, 0)
      >= 0 THEN round(ms.iPlanQuantity - isnull(ms.iSumActiQuantity, 0),4) ELSE 0 END AS ibl,
      m.PlanDate, m.dIntend, m.dFinished
FROM MatchVouch m LEFT JOIN
      MatchVouchs ms ON m.cVouchCode = ms.cVouchCode LEFT JOIN
      Warehouse w ON ms.cWhCode = w.cWhCode LEFT JOIN
      Department d ON m.cDepCode = d .cDepCode LEFT JOIN
      SO_SODetails s ON s.isosid = m.isosid LEFT JOIN
      SO_SOMain sm ON sm.cSOCode = s.cSOCode LEFT JOIN
      Inventory i ON i.cInvCode = m.cPSPCode LEFT JOIN
      Inventory ivs ON ivs.cInvCode = ms.cInvCode
WHERE 1 = 1 AND (m.cPSPCode <> ' ')

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/27 22:06:00 [只看该作者]

 你的视图本身报错吗?

 

 直接执行这个语句报错吗?

 

q.SelectString = "select * from {IaV_STSCBlb}"
q.Build


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


加好友 发短信
等级:幼狐 帖子:170 积分:1487 威望:0 精华:0 注册:2012/8/15 15:02:00
  发帖心情 Post By:2014/8/27 22:08:00 [只看该作者]

是不是可以用狐表来处理这个计算过程,然后就越过SQL到狐表这个"门槛"了?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/27 22:09:00 [只看该作者]

 代码报什么错?

 

 1、你的视图,是否能正常通过sql语句得到?

 

 2、出错,报什么错?


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


加好友 发短信
等级:幼狐 帖子:170 积分:1487 威望:0 精华:0 注册:2012/8/15 15:02:00
  发帖心情 Post By:2014/8/27 22:13:00 [只看该作者]

在SQL中执行 select * into IaV_STSCBlb1 from IaV_STSCBlb 可以顺利生成表 IaV_STSCBlb1

然后 

q.SelectString = "select * from {IaV_STSCBlb1}"
q.Build

可以成功执行,

区别就在于越过了含有除法的表达式(结果小数位数很长)

所以估计和除法有关


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/27 22:15:00 [只看该作者]

 直接执行语句 select * from {IaV_STSCBlb} 是否能得到结果?

 

 1、在sqlserver执行是否可以

 

 2、在foxtable执行是否可以,如果不可以,报什么错


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


加好友 发短信
等级:幼狐 帖子:170 积分:1487 威望:0 精华:0 注册:2012/8/15 15:02:00
  发帖心情 Post By:2014/8/27 22:24:00 [只看该作者]

直接执行语句 select * from {IaV_STSCBlb} 可以得到结果?

 

 1、在sqlserver执行可以

2、在foxtable执行不可以,把表达式字段省略掉也不可以,

3 提示的图片怎么发上来?


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


加好友 发短信
等级:幼狐 帖子:170 积分:1487 威望:0 精华:0 注册:2012/8/15 15:02:00
  发帖心情 Post By:2014/8/27 22:25:00 [只看该作者]


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


加好友 发短信
等级:幼狐 帖子:170 积分:1487 威望:0 精华:0 注册:2012/8/15 15:02:00
  发帖心情 Post By:2014/8/27 22:26:00 [只看该作者]


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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/27 22:30:00 [只看该作者]

 你试试把sql语句在这里测试,看是否可以,如果可以,你原本的语句,尝试给表换一个名字。

 

http://www.foxtable.com/help/topics/1484.htm

 


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