Foxtable(狐表)用户栏目专家坐堂 → 查询外部数据源数据问题


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

主题:查询外部数据源数据问题

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/30 15:48:00 [显示全部帖子]

1、用临时表dt接收

 

Dim cmd As New SQLCommand
cmd.ConnectionName = "数据源"        'Name前空格要去掉
cmd.CommandText = "Exec 存储过程名"  '有参数--cmd.CommandText = "Exec 存储过程名 参数1,参数2"

Dim dt As DataTable = cmd.ExecuteReader

 

2、然后显示到窗口table里面,如

 

forms("窗口1").controls("table1").table.datasource = dt

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/30 17:25:00 [显示全部帖子]

1、你存储过程那里,能否直接 select * from ##tb_jxydjy_resoult

 

2、如果必须用字符串执行sql,你把结果插入到一个临时表,如 select * into #t from 查询的表


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/30 18:41:00 [显示全部帖子]

以下是引用18523500398在2018/11/30 17:32:00的发言:
我用直接select也是数据显示不到ft里面

 

不可能。比如你测试 select * from 表A 这样也不行?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/3 11:16:00 [显示全部帖子]

我改成这样没问题,可以直接调用

 

USE [sync]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER proc [dbo].[Plato_jxydjy](@i int)
as
begin
set nocount on
--设置过去的时间段
declare @dd datetime
select @dd=DATEADD(DAY,@i,GETDATE())
declare @prdname varchar(50)
set @prdname='8VT曲轴'
--找出检基
select rowid=identity(int,1,1),flag=0,project into #tb_jxydjy from MC_TF_JXYDJY tf where tf.记录号 in
(select top 1 MAIN_ID from MC_MF_JXYDJY where prdname=@prdname and  T_JYSJ>=@dd and T_JYSJ<=GETDATE())
--保存查询出来的结果

create table #tb_jxydjy_resoult
(
main_id varchar(50),prdname varchar(50),ysh float,bhgs float,fla1 float
)
--循环
declare @project varchar(20)
declare @rowid int
select @rowid=MIN(rowid) from #tb_jxydjy where flag=0
--保存查询出来的结果
declare @ysh float--验收数
declare @bhgs float--不合格数
while @rowid is not null
begin
 --检基
 select @project=PROJECT  from #tb_jxydjy where rowid=@rowid
 --进行查找结果,然后把结果存放到结果表中
 select @ysh=SUM(num.num_ys),@bhgs=SUM(num.num_bhg)
 from MC_MF_JXYDJY mf
 left join num_jxydjy num
 on mf.MAIN_ID=num.main_id
 where prdname=@prdname and  T_JYSJ>=@dd and T_JYSJ<=GETDATE()
 and LOST like '%'+@project+'不合格%'
 insert into #tb_jxydjy_resoult(MAIN_ID,prdname,ysh,bhgs) values (@project,@prdname,@ysh,@bhgs)
 update #tb_jxydjy set flag=1 where rowid=@rowid
 select @rowid=min(rowid) from #tb_jxydjy where flag=0
end
--查找结果中的集合
declare @sumlost float
select @sumlost=SUM(bhgs) from #tb_jxydjy_resoult
update #tb_jxydjy_resoult set fla1=@sumlost
declare @sql NVARCHAR(MAX)
--select main_id as 检基,prdname as 产品,ysh as 验收数量,bhgs as 不合格数, ((sum(bhgs)*1.00)/(sum(fla1)*1.00)*100) as 不合格率 into tbbbbb_mc_jxydjy from #tb_jxydjy_resoult group by main_id,prdname,ysh,bhgs
--order by bhgs desc
--set @sql='select main_id as 检基,prdname as 产品,ysh as 验收数量,bhgs as 不合格数 from #tb_jxydjy_resoultorder by bhgs desc'
--EXEC sp_executesql @sql
--清空建立的表
set nocount off
select * from #tb_jxydjy_resoult
drop table #tb_jxydjy_resoult
drop table #tb_jxydjy
end


 回到顶部