以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] sql server 2000  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=122868)

--  作者:zcgmxf
--  发布时间:2018/8/3 11:54:00
--  [求助] sql server 2000
老师,foxtable 是不是不支持sql server 2000?

新增行时出现 以下错误提示怎么办?


.NET Framework 版本:2.0.50727.8789
Foxtable 版本:2018.7.9.1
错误所在事件:
详细错误信息:
将 varchar 值 \'True\' 转换为数据类型为 bit 的列时发生语法错误。

--  作者:有点甜
--  发布时间:2018/8/3 12:28:00
--  

1、绝对支持;

 

2、贴出你所写代码。


--  作者:zcgmxf
--  发布时间:2018/8/3 14:06:00
--  
老师,我的项目在免费的 sqlserver 2008 没问题。
1、出现上述问题的新增行代码
                                               这个问题刚才这个表又没有了,但是其他的表还有。没调试完,还不知道其他的有多少
    Case "新增病例"
        static ptime As Date = Nothing
        Dim sp As TimeSpan = Date.now - ptime
        If sp.TotalSeconds <= 1 Then
            Return \'一秒内多次触发无效
        Else
            ptime = Date.now
        End If
        Dim t As DataRow = DataTables("登记总表").SQLFind("序号 = \'" & DataTables("登记总表").SQLCompute("max(序号)") & "\'")
        If User.Group = "综合门诊" Then
            If t Is Nothing  Then
                Tables("登记总表").AddNew.Save()
            Else
                If  t.IsNull("病人姓名") = True Then
                    DataTables("登记总表").LoadFilter = "序号 = \'" & DataTables("登记总表").SQLCompute("max(序号)") & "\'"
                    DataTables("登记总表").Load()
                    MessageBox.Show("姓名不能为空,请完善后新增.","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                    Return
                ElseIf  t.IsNull("性别") = True Then
                    DataTables("登记总表").LoadFilter = "序号 = \'" & DataTables("登记总表").SQLCompute("max(序号)") & "\'"
                    DataTables("登记总表").Load()
                    MessageBox.Show("性别不能为空,请完善后新增.","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                    Return
                ElseIf t.IsNull("年龄") = True Then
                    DataTables("登记总表").LoadFilter = "序号 = \'" & DataTables("登记总表").SQLCompute("max(序号)") & "\'"
                    DataTables("登记总表").Load()
                    MessageBox.Show("年龄不能为空,请完善后新增.","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                    Return
                ElseIf t.IsNull("联系电话") = True Then
                    DataTables("登记总表").LoadFilter = "序号 = \'" & DataTables("登记总表").SQLCompute("max(序号)") & "\'"
                    DataTables("登记总表").Load()
                    MessageBox.Show("联系电话不能为空,请完善后新增.","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                    Return
                Else
                    Tables("登记总表").AddNew.Save()
                End If
            End If
        Else
            MessageBox.Show("您不是接种医生,无权新增病例.","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            Return
        End If
2、疫苗药品出库表,DataColChanging 根本就没有涉及到一些列,新增行时出现下面的错误提示:  有十列 出现都成了逻辑列了

    Case "新增明细"
        Dim d As Row  = Tables("疫苗药品出库单").Current
        If d IsNot  Nothing  Then
            If d("打印次数") > 0 Then
                MessageBox.Show("该出库单已经处理完毕,禁止新增明细!","警告提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                Return
            End If
            If d("确认开单") = True Then
                Dim crs As List(of DataRow) = d.DataRow.GetChildRows("疫苗药品出库表")
                Dim n As Integer  = crs.Count
                If n >= 8 Then
                    PopMessage("出库明细已达到最多8行,请新增出库单后新增明细!","提示",PopIconEnum.Infomation,3)
                    Return
                Else
                    For Each cr As DataRow In crs
                        If cr("确认开单") = False Then
                            MessageBox.Show("请勾选""确认开单""新增!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                            Return
                        End If
                    Next
                End If
            Else
                PopMessage("请勾选""确认开单""后新增""","提示",PopIconEnum.Infomation,2)
                Return
            End If
        Else
            PopMessage("请先新增出库单回后新增明细","提示",PopIconEnum.Infomation,2)
            Return
        End If
        Tables("疫苗药品出库单.疫苗药品出库表").AddNew.Save()

新增行出现错误提示
.NET Framework 版本:2.0.50727.8789
Foxtable 版本:2018.7.28.1
错误所在事件:表,疫苗药品出库表,DataColChanging
详细错误信息:
调用的目标发生了异常。
从字符串“记账”到类型“Boolean”的转换无效。
输入字符串的格式不正确。
.NET Framework 版本:2.0.50727.8789
Foxtable 版本:2018.7.28.1
错误所在事件:表,疫苗药品出库表,DataColChanging
详细错误信息:
调用的目标发生了异常。
没有为 类型“Date” 和 类型“Boolean” 定义运算符“=”。

3、有的列删除后新增没得问题了,但是有的新增也不行。

4、老师,服务器出现这个提示是什么意思?
.NET Framework 版本:2.0.50727.5420
Foxtable 版本:2018.7.9.1
错误所在事件:
详细错误信息:
\'CHECKSUM\' 不是可以识别的 BACKUP 选项。

5、老师,怎么我的表重定向后,有的逻辑列变成了整数?

6、老师,有的逻辑列选中,取消就出现 
.NET Framework 版本:2.0.50727.8789
Foxtable 版本:2018.7.28.1
错误所在事件:
详细错误信息:
将 varchar 值 \'True\' 转换为数据类型为 bit 的列时发生语法错误。

[此贴子已经被作者于2018/8/3 15:19:24编辑过]

--  作者:有点甜
--  发布时间:2018/8/3 15:20:00
--  

1、想升级到最新版。你使用的版本有bug的。

 

2、【\'CHECKSUM\' 不是可以识别的 BACKUP 选项】是你执行备份的sql语句的问题,你什么时候执行了备份?定时执行?

 

3、升级到最新版,再重定向,看是否还有问题。


--  作者:zcgmxf
--  发布时间:2018/8/4 8:32:00
--  
老师,
1、我已经升级到最新版了。
2、我一次性定向了几十张表,是不是太多了?

[此贴子已经被作者于2018/8/4 9:45:08编辑过]

--  作者:有点蓝
--  发布时间:2018/8/4 9:28:00
--  
定向多少表没有关系。定向后,到数据库把表结构修改为合理的值,比如逻辑列的改为bit,然后在狐表外部表管理编辑这个表,重新加载一下表结构

sql2000的备份语句用法可能和2008不一样,去掉CHECKSUM的用法。降版本使用的特别要注意兼容性问题

--  作者:zcgmxf
--  发布时间:2018/8/4 11:42:00
--  
老师,刚才发现,我的一个项目复制一份,然后把所有表定向到内部数据源,现在都不能编辑了,出现,e 是private ,因此在上下文中不可访问。编辑时小精灵也没反应。
定向到外部数据源后出错,可能是这个原因。怎么会这样啊?别人等到要,会急死。

下面是在sql 2008 中的备份 代码,没问题,在sql 2000中出现上面的错误提示,是否可以修改?

Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "use master;BACKUP DATABASE 数据库名 TO DISK = \'D:\\" & Format(Date.Now, "yyyyMMddHHmmss")& ".bak\' With FORMAT,CHECKSUM;"
cmd.ExecuteNonQuery  
[此贴子已经被作者于2018/8/4 11:47:54编辑过]

--  作者:有点蓝
--  发布时间:2018/8/4 11:56:00
--  
删除项目里的bin目录,然后重启项目

都说去掉CHECKSUM咯

另外建议直接在数据库服务器做计划任务进行自动备份。没有必要在客户端写代码备份
https://pan.baidu.com/s/1bpkXfND?fid=1078245663180392

--  作者:zcgmxf
--  发布时间:2018/8/5 11:23:00
--  
老师,能不能从其他数据库到另一个数据库时只导入表结构不导入数据?我的这个项目有几个表,一次定向一个,还是出现下面的提示,不知什么原因,有的新增行时出现,有的取消勾选时出现,定向到内部数据源又没有问题。定向到外部表后,有点刚开始没有,删除增加几行又出现了。晕啊。三天都没安装好。
6、老师,有的逻辑列选中,取消就出现 
.NET Framework 版本:2.0.50727.8789
Foxtable 版本:2018.7.28.1
错误所在事件:
详细错误信息:
将 varchar 值 \'True\' 转换为数据类型为 bit 的列时发生语法错误。

或者:将 varchar 值 \'false\' 转换为数据类型为 bit 的列时发生语法错误。
[此贴子已经被作者于2018/8/5 12:39:43编辑过]

--  作者:有点甜
--  发布时间:2018/8/5 21:15:00
--  

转换数据源以后。你要修改sql语句,所有的true/false要改成1/0

 

http://www.foxtable.com/webhelp/scr/2668.htm