以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  SQLSelect查询不了  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=173973)

--  作者:wcs
--  发布时间:2021/12/24 16:40:00
--  SQLSelect查询不了
有这样的代码,在许多电脑上正常运行,但是个别电脑不行:

DataTables("A").dataRows(0)("码") = computerid 
DataTables("A").DataRows(0).Save() 

Dim cmd As New SQLCommand
cmd.C
Dim dt As DataTable
cmd.CommandText = "SELECT * Fro m {A} Where [码] = \'"& computerid &"\'"
dt = cmd.ExecuteReader(True)
Dim dr As DataRow = dt.SQLFind("[码]= \'" & computerid & "\'")
Dim drs As List(of DataRow) = dt.SQLSelect("[码]= \'" & computerid & "\'")
If dr Is Nothing Then
    MessageBox.Show("AAA!","AAA",MessageBoxButtons.ok,MessageBoxIcon.Error)
    Forms("窗口1").show()
    basemainform.Close
    DataTables(“窗口1").DataRows(0).Locked = False
END IF

上述代码在AfterOpenProject中,意思是电脑机器码,与网上的核对一致,如果没有就到窗口1中去。

软件启动时会联系数据源test,否则会退出,这无异常。
但是到了AfterOpenProject中的SQLSelect或是SQLFind就会出错:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:
详细错误信息:
操作必须使用一个可更新的查询。

不知是什么原因?如何解决?
原来以为对方的电脑不能上网,但是启动时数据源联接未出现异常。用户换了网络环境也不行。实际上远程数据库有相关信息,应能查询到的

[此贴子已经被作者于2021/12/24 16:44:02编辑过]

--  作者:有点蓝
--  发布时间:2021/12/24 17:13:00
--  
操作必须使用一个可更新的查询】可能原因:
1、表格是查询表无法保存数据,比如DataTables("A")是查询表
2、数据源没有权限保存,如果是access,应该是程序没有权限写数据库,试试把程序设置为使用管理员身份运行;如果是共享的可能是共享权限设置有问题。如果是SqlServer,应该是登录用户权限不足