以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  对于多个基表不支持动态 SQL 生成问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=196363)

--  作者:lin98
--  发布时间:2025/4/21 9:11:00
--  对于多个基表不支持动态 SQL 生成问题
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是用保存,去掉,修改后,是不能保存,如何改?

--  作者:有点蓝
--  发布时间:2025/4/21 9:23:00
--  
这个表没有主键,或者是个查询表,不能使用true参数。
--  作者:lin98
--  发布时间:2025/4/21 10:44:00
--  
这个表有主键,是发生上面问题
上面单个SQGL没报错,用上面有2个SQGL,就报错,
不象ADO模式不管写多个SQGL都可以,
会不会下面这种模式SQGLCommand的规则限制?
  
   

--  作者:有点蓝
--  发布时间:2025/4/21 10:55:00
--  
ExecuteReader仅支持执行一条sql,单个表
[此贴子已经被作者于2025/4/21 10:54:59编辑过]

--  作者:lin98
--  发布时间:2025/4/21 11:50:00
--  
实际应用需要多表,多SQL查询修改,保存,这个代码如何实现?
--  作者:有点蓝
--  发布时间:2025/4/21 11:56:00
--  
只能一个个表来,处理完一个表,再处理另外一个表
--  作者:lin98
--  发布时间:2025/4/21 12:03:00
--  
问题需求是1楼代码在实现不同的用户加载不同的数据后进行修改,保存,如何改?
--  作者:有点蓝
--  发布时间:2025/4/21 13:41:00
--  
If _U= "编辑者" 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  ....