Foxtable(狐表)用户栏目专家坐堂 → 对于多个基表不支持动态 SQL 生成问题


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

主题:对于多个基表不支持动态 SQL 生成问题

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


加好友 发短信
等级:六尾狐 帖子:1474 积分:9904 威望:0 精华:0 注册:2020/11/4 22:15:00
对于多个基表不支持动态 SQL 生成问题  发帖心情 Post By:2025/4/21 9:11:00 [显示全部帖子]

If _U= "编辑者" Then

    Dim cmd As New SQGLCommand
    cmd.C
    cmd.CommandText = "seleGct * from  b_tb  where   [ID] = ID ;"' 
    Dim dt As DataTable = cmd.ExecuteReader(True)
    Dim t As Table = e.Form.Controls("Table1").Table
    dt.Save()
Else
    Dim cmd2 As New SQGLCommand
    cmd2.C
    cmd2.CommandText = "seleGct * from  b_tb  where   [ID] = ID  And ([审核] ='未审核')  ;"' 
    Dim dt2 As DataTable = cmd2.ExecuteReader(True)
    Dim t2 As Table = e.Form.Controls("Table1").Table
    dt2.Save()
End If

报错:对于多个基表不支持动态 SQGL 生成。
 问题一;cmd.ExecuteReader(True)改cmd.ExecuteReader()
True是用保存,去掉,修改后,是不能保存,如何改?

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


加好友 发短信
等级:六尾狐 帖子:1474 积分:9904 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/21 10:44:00 [显示全部帖子]

这个表有主键,是发生上面问题
上面单个SQGL没报错,用上面有2个SQGL,就报错,
不象ADO模式不管写多个SQGL都可以,
会不会下面这种模式SQGLCommand的规则限制?
  
   

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


加好友 发短信
等级:六尾狐 帖子:1474 积分:9904 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/21 11:50:00 [显示全部帖子]

实际应用需要多表,多SQL查询修改,保存,这个代码如何实现?

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


加好友 发短信
等级:六尾狐 帖子:1474 积分:9904 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/21 12:03:00 [显示全部帖子]

问题需求是1楼代码在实现不同的用户加载不同的数据后进行修改,保存,如何改?

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


加好友 发短信
等级:六尾狐 帖子:1474 积分:9904 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/22 9:14:00 [显示全部帖子]

Dim c1 As Row = Tables("窗口_Table3").Current

If c1("用户ID") = _用户ID Then

    Dim cmd As New SQGLCommand
    cmd.C
    cmd.CommandText = "seleGct * from  表1  where  ....
else
   Dim cmd As New SQGLCommand
    cmd.C
    cmd.CommandText = "seleGct * from  表2  where  ....

用户ID是整数,上面代码执行后,报错
命令参数[1] '' 无效。多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。

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


加好友 发短信
等级:六尾狐 帖子:1474 积分:9904 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/22 9:22:00 [显示全部帖子]


If _Role = "编辑者,查询" Then

    Dim cmd As New SQGLCommand
    cmd.C
    cmd.CommandText = "seleGct * from  表1  where  ....
else
   Dim cmd As New SQGLCommand
    cmd.C
    cmd.CommandText = "seleGct * from  表2  where  ....

_Role是字符
上面代码执行后,报错
命令参数[1] '' 无效。多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成

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


加好友 发短信
等级:六尾狐 帖子:1474 积分:9904 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/22 9:46:00 [显示全部帖子]

在ADO模式测试一下正常,再打开狐表内置,即然正常,这是什么原因?

 回到顶部