Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共52 条记录, 每页显示 10 条, 页签: [1] [2][3][4][5][6]
[浏览完整版]

标题:这个代码如何理解?

1楼
lin98 发表于:2024/7/27 9:19:00
'不重复编号上传用,这里的用法比较简单,没有做复杂的编号规则处理'
Public Class BizCodeBuilder
    
    Private _codelock As New Object
    
    Public Sub New()
        
    End Sub
    
    Public Function GetNextCode(s_name As String, Optional s_prefix As String = Nothing) As String
        SyncLock _codelock '使用锁处理并发
        Dim db = HySql.DataBaseFactory.CreateDatabase("编号用户测试库")
        Dim Sql As String = CExp("select * from uSysBizCode where BizName='{0}'", s_name) '执行SQL
        Dim dt As system.data.DataTable = db.ExecuteDataSet(Sql).Tables(0)
        Dim dr As system.data.DataRow
        If dt.Rows.count = 0 Then
            dr = dt.NewRow()
            dr("BizName") = s_name 
            dr("MaxValue") = 1
            If String.IsNullOrEmpty(s_prefix) Then s_prefix = Date.now.ToString("mmss") & "BH"
            dr("Prefix") = s_prefix
            dr("Mark") = "yyyyMMdd"

问题一:s_name 和s_prefix是   Public Function GetNextCode(s_name As String, Optional s_prefix As String = Nothing) As String中变量?

 问题二:  Dim Sql As String = CExp("select * from uSysBizCode where BizName='{0}'", s_name) '
这个是动态查询, s_name是自定义?

问题三:在数据库调试select * from uSysBizCode有数据,select * from uSysBizCode where BizName='{0}查询无数据均空


2楼
有点蓝 发表于:2024/7/27 9:46:00
1、这种是.net里定义函数的参数,建议网上学习一下vb.net

2、s_name是调用这个函数需要传入的参数
比如调用:_BizCodeBuilder.GetNextCode("表A")
那么s_name的值就是“表A”

3、执行下面代码,把弹窗里的sql放到数据库里执行.
Dim Sql As String = CExp("select * from uSysBizCode where BizName='{0}'", s_name)
msgbox(sql)

CExp的用法多看看帮助吧:http://www.foxtable.com/webhelp/topics/2919.htm
假设s_name的值为“表A”,那么合成后的sql应该是
select * from uSysBizCode where BizName='表A'
3楼
lin98 发表于:2024/7/27 10:03:00
3、执行下面代码,把弹窗里的sql放到数据库里执行.
Dim Sql As String = CExp("select * from uSysBizCode where BizName='{0}'", s_name)
msgbox(sql)

问题一:在全局代码,执行没有弹窗信息,在命令窗口,提示没有s_name
问题二:在实例在运行,检查数据库、字段,没有发问题,就是报错,提示from错,能否请老师,帮调试?
4楼
有点蓝 发表于:2024/7/27 10:30:00
到命令窗口执行下面代码,看msgbox(sql)弹出什么

_BizCodeBuilder.GetNextCode("某个表名")
5楼
lin98 发表于:2024/7/27 10:54:00

图片点击可在新窗口打开查看此主题相关图片如下:qq77.png
图片点击可在新窗口打开查看
6楼
有点蓝 发表于:2024/7/27 10:56:00
客户端给服务端发送消息的代码不正确
7楼
lin98 发表于:2024/7/27 11:03:00
问题1:客户端给服务端发送消息的代码不正确 ,1楼的代码,如何改或需补代码?
问题2:服务端和客户端,OpenQQ,在执行时,花时间比较长,是不是因有异常的原因?没有异常时,OpenQQ与不用OpenQQ速度一样?
[此贴子已经被作者于2024/7/27 11:07:38编辑过]
8楼
有点蓝 发表于:2024/7/27 11:20:00
1、和1楼的代码没有一点关系,看客户端代码
2、OpenQQ与不用OpenQQ和速度没有直接关系,有异常会导致程序卡住
9楼
lin98 发表于:2024/7/27 11:26:00
 客户端代码
Dim db = HySq-l.DataBaseFactory.CreateDatabase("编号用户测试库")

Dim Sq-l = "selec-t * from 订单;" '
Dim dt As system.data.DataTable = db.ExecuteDataSet(Sq-l).Tables(0)
dt.TableName = "订单"
Dim t As Table = e.Form.Controls("Table1").Table
t.datasource = dt.Copy 
10楼
lin98 发表于:2024/7/27 11:30:00
Sele-ct e.DataCol.Name
    Case "日期"
        If e.DataRow.IsNull("日期") Then
            e.DataRow("编号") = Nothing
        Else
            Dim dr As DataRow = DataTables("网络编号窗口_Table2").Find("编号 is not null and 表名='订单'", "编号")
           
        
            If dr IsNot Nothing Then
                e.DataRow("编号") = dr("编号")
                dr.Delete
                DataTables("号表").save
            Else
                Dim rt As String = QQClient.SendWait(":f" & e.DataTable.Name & "f:")
                e.DataRow("编号") = rt
            End If
        End If
        
    Case "编号"
        If e.NewValue Is Nothing AndAlso e.OldValue IsNot Nothing Then 
            Dim dr1 As DataRow = DataTables("网络编号窗口_Table2").Find("表名 ='订单' and 编号 ='" & e.OldValue & "'")
        
            If dr1 Is Nothing Then
                dr1 = DataTables("网络编号窗口_Table2").AddNew
                dr1("表名") = "订单" 
                dr1("编号") = e.OldValue
                dr1.save
            End If
        End If 
End Sele-ct
共52 条记录, 每页显示 10 条, 页签: [1] [2][3][4][5][6]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03906 s, 2 queries.