Foxtable(狐表)用户栏目专家坐堂 → 连接外部数据库时闪退


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

主题:连接外部数据库时闪退

美女呀,离线,留言给我吧!
漂亮美眉vszh
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:869 积分:7854 威望:0 精华:0 注册:2013/5/30 11:27:00
连接外部数据库时闪退  发帖心情 Post By:2022/5/15 7:30:00 [只看该作者]

老师,连接内部数据库时正常
连接外部数据库时,就会偶发闪退
在打开软件连接数据库,加上弹窗时,查看代码运行到哪一句时,弹窗正常弹出,连接外部数据库正常
一但弹窗去掉,就会偶发闪退
可能是什么原因,怎么查找原因?

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:869 积分:7854 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2022/5/15 7:32:00 [只看该作者]

我发现不是偶发,是频发,只要毁到外部数据库,并且没加弹窗时,就会闪退

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105956 积分:538855 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/15 20:15:00 [只看该作者]

闪退一般都是死循环导致的。一是事件互相触发,二是表达式互相引用。

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:869 积分:7854 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2022/5/16 6:45:00 [只看该作者]

老师,我找到是哪一句话有问题了
Dim s As String = Date.Now & "  Step 1  开始运行 " & vbcrlf
FileSys.WriteAllText("d:\Errortable.txt", s, True)

If OpenFileArgs.Count = 0 Then
     ' MessageBox.show("正常情况没按F10,不触发")
s = Date.Now & "  Step 1  正常运行至连接数据库 "  & vbcrlf
                FileSys.WriteAllText("d:\Errortable.txt", s, True)

    If e.name = "database" Then
        Dim Val2 As String = FileSys.ReadAllText(e.ProjectPath & "zhsy.txt")
        Dim Val3 As String = DecryptText(Val2,"123456","123456") '解密,两个密钥必须和加密的时候相同
        Dim st_1 As String
s = Date.Now & "  Step 2  连接 "  & Val3 & vbcrlf
                FileSys.WriteAllText("d:\Errortable.txt", s, True)

我是将加密字符串放在一个记事本上,软件启动时,读取记事本上的信息来连接字符串
查错时加了一个记事本, 当走到STEP2 是空值,如果是内部数据库的密文,这个就有值;当是外部数据库时,就没有值。所以问题点出在这儿:
Dim Val2 As String = FileSys.ReadAllText(e.ProjectPath & "zhsy.txt")
        Dim Val3 As String = DecryptText(Val2,"123456","123456") '解密,两个密钥必须和加密的时候相同
这两句话上,弹出来的是空的,有将加密字符串在命令窗口执行,结果是正确的
在连接外部数据库时,就会偶发为空闪退

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105956 积分:538855 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/16 9:04:00 [只看该作者]

判断是否有内容咯

    If e.name = "database" Then
        Dim Val2 As String = FileSys.ReadAllText(e.ProjectPath & "zhsy.txt")
if Val2 > "" then
Dim Val3 As String
try
        Val3 = DecryptText(Val2,"123456","123456") '解密,两个密钥必须和加密的时候相同
catch

end try
if  Val3>"" then
        Dim st_1 As String

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:869 积分:7854 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2022/5/17 11:09:00 [只看该作者]

老师,加个判断是否为空,依旧会闪退
问题点出在  Dim Val2 As String = FileSys.ReadAllText(e.ProjectPath & "zhsy.txt")  这句话上
是这句话没有读到记事本里的密文
放在命令窗口执行时,将e.ProjectPath改成ProjectPath,能读到信息
我加数据库加个表加个列,能解决眼下问题,但没有解决根本问题

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105956 积分:538855 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/17 11:13:00 [只看该作者]

把Foxtable设置为“使用管理员身份运行”。如果是发布的程序,就设置exe程序

然后调试

msgbox(e.ProjectPath & "zhsy.txt")
msgbox(FileSys.FileExists(e.ProjectPath & "zhsy.txt"))
Dim Val2 As String = FileSys.ReadAllText(e.ProjectPath & "zhsy.txt")
msgbox(Val2)

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:869 积分:7854 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2022/5/17 17:10:00 [只看该作者]

msgbox(e.ProjectPath & "zhsy.txt")
读取加密 D:\*******\zhsy.txt

msgbox(FileSys.FileExists(e.ProjectPath & "zhsy.txt"))
true

Dim Val2 As String = FileSys.ReadAllText(e.ProjectPath & "zhsy.txt")
msgbox(Val2)

弹出: tN86LfV5Xsq8HjswfaG4dEDT5De9yF7BsJ1l2ocDlXHFrLV6xXDaJKfTtbmQNOnZwRqRA1mVzDudb8g9sH2hOui7U8cFAhWz

Val3 = DecryptText(Val2,"123456","123456") '解密,两个密钥必须和加密的时候相同
那就是这句话有问题,弹出来是空的




 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105956 积分:538855 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/17 17:13:00 [只看该作者]

1、zhsy.txt保存的不是加密后的数据,或者数据不完整,或者有空格回车符等看不见的字符
2、加解密的密钥不一致。

密钥建议使用8位长度

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:869 积分:7854 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2022/5/18 7:13:00 [只看该作者]

非常感谢老师的解答
1.第一种测试过,在命令口弹出来就是正确的,放在连接数据库事件里才出现这个问题
2.密钥肯定 一致,这个代码用了几年了,就这一次换了IP地址才失效,之前换IP地址也正常
  最后密钥建议8位,好的我尝试下

 回到顶部
总数 14 1 2 下一页