Foxtable(狐表)用户栏目专家坐堂 → [分享] 通用平台───持续更新(20140928进程识别)......


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

主题:[分享] 通用平台───持续更新(20140928进程识别)......

帅哥哟,离线,有人找我吗?
lsy
  341楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/6/24 9:12:00 [只看该作者]

通用日期括号与逻辑值

 

不同数据源,日期括号与逻辑值不一样。

内部数据源和ACCESS数据源    逻辑真:True,   逻辑假:False, 日期括号:#

SQL数据源    逻辑真:1,   逻辑假:0, 日期括号:'

 

凡是用到SQL语句的地方,例如在cmd.CommandText和LoadFilter中,逻辑值和日期括号,都需要根据数据源的变化而变化。

 

通过以下方法,就可以使逻辑值和日期括号通用:

Public _cmd As New SQLCommand
Public _dt As DataTable 'SQLCommand临时DataTable

Public _rq As String '日期括号
Public _true As Object '逻辑真
Public _false As Object '逻辑假

 

数据源通用代码(内部函数)

 

If DataTables.Contains(Args(0)) Then
    _dt = DataTables(Args(0))
    If _dt.SourceType = 1 Then
        _rq = "#"
        _true = True
        _false = False
    Else
        _rq = "'"
        _true = 1
        _false = 0
    End If
Else
    _cmd.ConnectionName = Args(0)
    If _cmd.C#"
        _true = True
        _false = False
    Else
        If Connections.Contains(_cmd.ConnectionName) Then
            If Connections(_cmd.ConnectionName).SourceType = 1 Then
                _rq = "#"
                _true = True
                _false = False
            Else
                _rq = "'"
                _true = 1
                _false = 0
            End If
        End If
    End If
End If

 

函数调用

只需要在Initialize事件中调用一次,就行了

Functions.Execute("数据源通用代码",_Connection)   '_Connection是通用数据源名称全局变量,等于e.Name

示例

一、
DataTables("订单").LoadFilter = "已付款 = "  & _true
DataTables("订单").Load

 

二、

Dim cmd As New Sqlcommand

cmd.Connection Name = _Connection

Dim d As String = "2012-03-30"
cmd.CommandText = "Select * From {订单} Where 日期 > " & _rq & d & _rq
Output.Show(_cmd.ExecuteReader.DataRows(1)("日期"))

 

三、为了使日期括号用起来更方便,建了一个专门的函数

数据源通用日期

If DataTables.Contains(Args(0)) Then
    _dt = DataTables(Args(0))
    If _dt.SourceType = 1 Then
        _rq = "#"
    Else
        _rq = "'"
    End If
Else
    _cmd.ConnectionName = Args(0)
    If _cmd.C#"
    Else
        If Connections.Contains(_cmd.ConnectionName) Then
            If Connections(_cmd.ConnectionName).SourceType = 1 Then
                _rq = "#"
            Else
                _rq = "'"
            End If
        End If
    End If
End If
If IsDate(Args(1)) Then
    Return _rq & Args(1) & _rq
Else
    Return _rq & "1900-01-01" & _rq
End If

 

调用

Dim cmd As New Sqlcommand

cmd.Connection Name = _Connection

Dim d As String = "2012-03-30"
cmd.CommandText = "Select * From {订单} Where 日期 > " & Functions.Execute("数据源通用日期",_Connection,d)

Output.Show(_cmd.ExecuteReader.DataRows(1)("日期"))

 

 

 

 

 

[此贴子已经被作者于2014-6-24 9:18:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
九易六
  342楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:1800 威望:0 精华:1 注册:2009/3/16 14:05:00
  发帖心情 Post By:2014/6/24 12:57:00 [只看该作者]

谢谢分享,学习一下。

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


加好友 发短信
等级:婴狐 帖子:4 积分:104 威望:0 精华:0 注册:2014/6/23 13:36:00
  发帖心情 Post By:2014/6/24 13:41:00 [只看该作者]

谢谢分享

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


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
hk  发帖心情 Post By:2014/6/24 13:45:00 [只看该作者]


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


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2014/6/24 13:54:00 [只看该作者]

为何打不开?

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


加好友 发短信
等级:小狐 帖子:333 积分:2759 威望:0 精华:0 注册:2012/5/8 11:06:00
  发帖心情 Post By:2014/6/24 13:59:00 [只看该作者]

图片点击可在新窗口打开查看

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


加好友 发短信
等级:童狐 帖子:290 积分:2086 威望:0 精华:0 注册:2013/11/23 10:11:00
  发帖心情 Post By:2014/6/24 14:20:00 [只看该作者]

还是报错,我把dll文件都拷贝了,为什么呢?

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140624140203.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:婴狐 帖子:1 积分:65 威望:0 精华:0 注册:2014/6/24 14:41:00
  发帖心情 Post By:2014/6/24 14:43:00 [只看该作者]

今天是来学习的

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/6/24 14:49:00 [只看该作者]

以下是引用yd0731在2014-6-24 14:20:00的发言:

还是报错,我把dll文件都拷贝了,为什么呢?

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140624140203.jpg
图片点击可在新窗口打开查看

这里面的代码

_Connection = e.Name
If FileSys.FileExists(e.ProjectPath & "门诊收费系统(ACCESS).mdb") Then
    e.C & e.ProjectPath & "门诊收费系统(ACCESS).mdb;Persist Security Info=False"
ElseIf FileSys.FileExists("\\Lenovo-128\共享\zlhis-ref\office2007\PRO11\FILES\OWC10\门诊收费系统(ACCESS).mdb") Then
    e.C
End If

 

按住Ctrl键进去

保留第一句就行了,其他可有可无。

[此贴子已经被作者于2014-6-24 14:49:37编辑过]

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


加好友 发短信
等级:童狐 帖子:243 积分:1928 威望:0 精华:0 注册:2013/8/8 23:49:00
  发帖心情 Post By:2014/6/24 15:40:00 [只看该作者]


 回到顶部