标题:碰到一条SQL语句执行时间很长时的问题
只看楼主
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
这么大的表,不能分年保存吗

坚守VFP最后的阵地
2020-07-16 18:00
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
得分:0 
回复 11楼 sdta
在ORACLE里面,我们动不了,
住院一张表,门诊一张表,
我在统计的时候,只要SQLEXEC(osql,sqlstr)一发,FOX就呈死机一样,
不管点哪儿就没有响应了。。。。
等待的时候FOX就死在那里。。。

我想在FOX里面开几个窗口,当一个窗口在统计的时候,不影响其他窗口工作。。。。
2020-07-16 18:50
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
在主进程中启动一个子进程来统计
2020-07-16 19:48
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
得分:0 
以下是引用吹水佬在2020-7-16 19:48:34的发言:

在主进程中启动一个子进程来统计

老大你说的这个,
我没法儿学啊。。。。有没有类似的实例或是学习资料也行啊
2020-07-17 16:08
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 14楼 yuantao100
2个PRG分别编译成EXE
在一个EXE中运行另一个EXE
2020-07-17 19:37
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
得分:0 
以下是引用吹水佬在2020-7-17 19:37:33的发言:

2个PRG分别编译成EXE
在一个EXE中运行另一个EXE

有道理
2020-07-18 20:38
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
得分:0 

试了两天了也没试出来。。。。
2020-07-21 12:41
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用yuantao100在2020-7-21 12:41:22的发言:


试了两天了也没试出来。。。。

试写个示例参考

**
** 主进程.exe
**
DECLARE LONG SendMessage IN user32 LONG, LONG, LONG, LONG
#define MY_MSG  0x401
_screen.Visible = .F.
SET DEFAULT TO ADDBS(JUSTPATH(SYS(16)))
SET SAFETY OFF
CREATE TABLE tt (f1 I, f2 I)
USE tt ALIAS tt AGAIN SHARED
of = CREATEOBJECT("form1")
of.show
READ EVENTS
CLOSE DATABASES ALL
CLEAR ALL
RETURN

DEFINE CLASS form1 as Form
    ShowWindow = 2
    AutoCenter = .T.
    Caption = "主进程"
    hWnd2 = 0
    ADD OBJECT cmd as commandbutton WITH left=10,top=10,height=22,caption="开始"
    ADD OBJECT grid1 as grid WITH left=10,top=40
    PROCEDURE Destroy
        CLEAR EVENTS
    ENDPROC
    PROCEDURE init
        BINDEVENT(this.hWnd, MY_MSG, this, "myMsg")
    ENDPROC
    PROCEDURE myMsg(hWnd, uMsg, wParam, lParam)
        DO CASE
        CASE wParam==0
            this.hWnd2 = lParam
        CASE wParam==1
            this.grid1.refresh
            GO BOTTOM in "tt"
            this.grid1.setfocus
        CASE wParam==2
            SendMessage(thisform.hWnd2, MY_MSG, 0, 0)
            this.cmd.Caption = "开始"
        ENDCASE
    ENDPROC
    PROCEDURE cmd.click
        DO CASE
        CASE this.Caption == "开始"
            this.Caption = "暂停"
            cmd = "RUN /7N 子进程.exe "+TRANSFORM(thisform.hWnd)
            EXECSCRIPT(cmd)
        CASE this.Caption == "暂停"
            this.Caption = "继续"
            SendMessage(thisform.hWnd2, MY_MSG, 1, 0)
        CASE this.Caption == "继续"
            this.Caption = "停止"
            SendMessage(thisform.hWnd2, MY_MSG, 2, 0)
        CASE this.Caption == "停止"
            this.Caption = "开始"
            SendMessage(thisform.hWnd2, MY_MSG, 3, 0)
        ENDCASE
    ENDPROC
ENDDEFINE

**
** 子进程.exe
**
LPARAMETERS hWnd
DECLARE LONG SendMessage IN user32 LONG, LONG, LONG, LONG
DECLARE LONG PostMessage IN User32 LONG, LONG, LONG, LONG
#DEFINE MY_MSG  0x401
_screen.Visible = .F.
SET DEFAULT TO ADDBS(JUSTPATH(SYS(16)))
SET SAFETY OFF
CLOSE DATABASES ALL
USE tt IN 0 ALIAS tj AGAIN SHARED
of = CREATEOBJECT("form1")
of.hWnd1 = INT(VAL(hWnd))
of.show
READ EVENTS
CLOSE DATABASES ALL
CLEAR ALL
RETURN

DEFINE CLASS form1 as Form
    ShowWindow = 2
    Caption = "子进程"
    hWnd1 = 0
    bStop = .F.
    bPause = .F.
    ADD OBJECT grid1 as grid WITH left=10,top=10
    PROCEDURE Destroy
        CLEAR EVENTS
    ENDPROC
    PROCEDURE init
        BINDEVENT(this.hWnd, MY_MSG, this, "myMsg")
    ENDPROC
    PROCEDURE myMsg(hWnd, uMsg, wParam, lParam)
        DO CASE
        CASE wParam == 0
            this.Release
        CASE wParam == 1
            this.bPause = .T.
        CASE wParam == 2
            this.bPause = .F.
        CASE wParam == 3
            this.bStop = .T.
        ENDCASE
    ENDPROC
    PROCEDURE Activate
        SendMessage(this.hWnd1, MY_MSG, 0, this.hWnd)
        i = 0
        DO WHILE !this.bStop AND i<10
            IF !this.bPause
                i = i + 1
                INSERT INTO tj VALUES (i, i*2)
                this.grid1.setfocus
                PostMessage(this.hWnd1, MY_MSG, 1, 0)
            ENDIF
            INKEY(1)
        ENDDO
        PostMessage(this.hWnd1, MY_MSG, 2, 0)
    ENDPROC
ENDDEFINE




收到的鲜花
  • 瓜瓜19902020-07-21 22:38 送鲜花  1朵  
  • yuantao1002020-07-22 12:37 送鲜花  1朵   附言:再次感谢!~
2020-07-21 21:05
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
得分:0 
哇噻!!这个厉害了!!!

谢谢谢谢谢谢谢谢谢谢!!!!!!!!
够我回去学一阵了!~~

非常感谢 !!
2020-07-21 21:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502404-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028975 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved