Foxtable(狐表)用户栏目专家坐堂 → SQLfind 和SQLselect


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

主题:SQLfind 和SQLselect

帅哥,在线噢!
lur320
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:967 积分:8517 威望:0 精华:0 注册:2015/8/12 16:28:00
SQLfind 和SQLselect  发帖心情 Post By:2018/6/27 15:10:00 [只看该作者]

今天调整了部分find改为sqlfind就报错,处理了1天不知道原因。

图片点击可在新窗口打开查看此主题相关图片如下:capture.png
图片点击可在新窗口打开查看


另外一个外部数据库的日期列,
导出到外部数据表后,有一列日期列不能保存,一旦保存就报错
.NET Framework 版本:2.0.50727.8784
Foxtable 版本:2018.3.9.1
错误所在事件:表,soindex,DataColChanged
详细错误信息:
Exception has been thrown by the target of an invocation.
Object reference not set to an instance of an object.





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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/27 15:14:00 [只看该作者]

1、弹出什么?

 

output.show("aaa" & drs("tableaddress") & "bbb")

 

2、执行下面代码,看弹出什么

 

Dim drs = DataTables("masterdata").SQLSelect("")

msgbox(drs.count)

drs = DataTables("masterdata").SQLSelect("tableaddress is not null")

msgbox(drs.count)

 

3、datacolchanged事件,你写了什么代码?

 

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

 


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


加好友 发短信
等级:四尾狐 帖子:967 积分:8517 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2018/6/27 17:15:00 [只看该作者]

1、弹出什么?

 

output.show("aaa" & drs("tableaddress") & "bbb") 什么都没有弹出,这个错误只有在代码创建的表里面有问题。不知道原因。

 

2、执行下面代码,看弹出什么

 

Dim drs = DataTables("masterdata").SQLSelect("")

msgbox(drs.count)

drs = DataTables("masterdata").SQLSelect("tableaddress is not null")

msgbox(drs.count)

 所有的表的名字都在里面,所以照道理应该可以找到第一条的那个表,但结果就是找不到。

3、datacolchanged事件,你写了什么代码?

 是如下代码有问题,不知道原因。

tardr=DataTables("soindex").SQLFind(" so_no = '" & e.DataRow("sono") & "'")  如果这里用find,就不会有错误

        If tardr IsNot Nothing Then

            Dim deliverydate As Date

            If e.DataRow("Request_dispatchDate") <> #1/1/1 00:00:00# Then

                deliverydate=e.DataRow("Request_dispatchDate")

            Else

                deliverydate=e.DataRow("request_oridate")

            End If 

                        tardr("FG_family")=e.DataRow("FG_family")

                        tardr("PO_receiveDate")=e.DataRow("PO_receivedate")

            tardr("Request_date")=deliverydate

messagebox.show(1),1可以出来


 tardr("OCstart")=e.DataRow("OC_StartDate")

tardr.save,此时报错

messagebox.show(2),2可以出来
[此贴子已经被作者于2018/6/27 17:16:31编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/27 17:23:00 [只看该作者]

执行下面代码,看弹出什么 
 

Dim drs = DataTables("masterdata").SQLSelect("")

msgbox(drs.count)

drs = DataTables("masterdata").SQLSelect("tableaddress is not null")

msgbox(drs.count)

 

datacolchanged里面,执行下面代码弹出什么

 

tardr=DataTables("soindex").SQLFind(" so_no = '" & e.DataRow("sono") & "'")

msgbox(tardr Is Nothing)


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


加好友 发短信
等级:四尾狐 帖子:967 积分:8517 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2018/6/27 19:15:00 [只看该作者]


Dim drs = DataTables("masterdata").SQLSelect("")

msgbox(drs.count)  317

drs = DataTables("masterdata").SQLSelect("tableaddress is not null")

msgbox(drs.count)   309

 

datacolchanged里面,执行下面代码弹出什么

 

tardr=DataTables("soindex").SQLFind(" so_no = '" & e.DataRow("sono") & "'")

msgbox(tardr Is Nothing)  FALSE


 回到顶部
帅哥,在线噢!
lur320
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:967 积分:8517 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2018/6/27 19:30:00 [只看该作者]

我奇怪的就是这么多的save,只有到下面几个才有报错
MessageBox.Show(111)   ok
            tardr.Save()
            tardr("description1")=e.DataRow("Description_1")
MessageBox.Show(11) ok
            tardr.Save()
            tardr("description2")=e.DataRow("Description_2")

            tardr("OCstart")=e.DataRow("OC_StartDate")
MessageBox.Show(1) ok
            tardr.Save()
            tardr("outletcheck")=e.DataRow("customer_componments")   两个表都是字符
MessageBox.Show(1) NOTok
            tardr.Save()
            tardr("CSwindows")=e.DataRow("cswindows") 两个表都是字符
MessageBox.Show(1) NOTok
            tardr.Save()
            tardr("OR3D_start")=e.DataRow("or3d_start") 两个表都是date


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/27 20:13:00 [只看该作者]

执行下面代码,输入什么?

 

Dim drs = DataTables("masterdata").SQLSelect("tableaddress is not null")

For each dr As DataRow in drs

    output.show("aaa" & dr("tableaddress") & "bbb")

Next

 

--------如果自己无法调试,请做个实例发上来测试,数据库和例子一起发上来。

[此贴子已经被作者于2018/6/27 20:14:36编辑过]

 回到顶部
帅哥,在线噢!
lur320
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:967 积分:8517 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2018/6/27 20:13:00 [只看该作者]

MessageBox.Show(111)   ok
            tardr.Save()
            tardr("description1")=e.DataRow("Description_1")
MessageBox.Show(11) ok
            tardr.Save()
            tardr("description2")=e.DataRow("Description_2")

            tardr("OCstart")=e.DataRow("OC_StartDate")   两个都是日期,格式不对?
MessageBox.Show(1) NOTok
            tardr.Save()
          

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/27 20:15:00 [只看该作者]

执行下面代码,输入什么?

 

Dim drs = DataTables("masterdata").SQLSelect("tableaddress is not null")

For each dr As DataRow in drs

    output.show("aaa" & dr("tableaddress") & "bbb")

Next

 

--------如果自己无法调试,请做个实例发上来测试,数据库和例子一起发上来。


 回到顶部
帅哥,在线噢!
lur320
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:967 积分:8517 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2018/6/27 20:56:00 [只看该作者]

统计表没有在SQL里查到的问题先放放。


终于查到原因了,但是不知道怎么处理。

tardr=DataTables("soindex").SQLFind(" so_no = '" & e.DataRow("sono") & "'")  如果这里用find,就不会有错误

        If tardr IsNot Nothing Then

      tardr("Request_date")=deliverydate

messagebox.show(1),1可以出来

 tardr("OCstart")=e.DataRow("OC_StartDate")

tardr.save,此时报错,原因在于e.DataRow("OC_StartDate")=00:00:00。此时写入sqlfind 的结果就会出错,如果有日期就不会错。

请问怎么避免?SQL里面我查过可以为空的啊


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