T
thlt
Unregistered / Unconfirmed
GUEST, unregistred user!
问题12-用update语句解决两个表中相同字段的置换问题,请帮忙看一下,谢谢!(100分)
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2478578
回复 ahthc@163.com
下面这个链接是数据库teac.dbc中的两个表:
http://freehost20.websamba.com/thxlt/biao.jpg
当表teach.dbf 中 [学校代码](字段名xxdm)与表school.dbf中[学校代码](字段名xxdm)
相同时,要求程序自动将后一个表school.dbf中 [学校名称](字段名xxmc)和
[学校性质](字段名xxxz)分别换成前一个表teach.dbf 中的相应字段的值。
要求使用Update语句。以下是源程序,但是其中有一句乱码:
-------------------------------------
LCMSG = ' 正在置换学校名称性质... '
WAIT WINDOW AT SROWS() / 2 + 1 , (SCOLS() - LEN(LCMSG)) / 2 - 15 NOCLEAR NOWAIT LCMSG
SELECT 1
USE ./xxjzgtj/teacher
GO TOP
RYBH0 = RYBH
do
WHILE .NOT. EOF()
IF RYBH > RYBH0
RYBH0 = RYBH
ENDIF
SKIP
ENDDO
RYBH0 = ALLTRIM(RYBH0)
SELECT 2
USE ./xxjzgtj/school
INDEX ON XXDM TO ./xxjzgtj/code0
SELECT 1
INDEX ON XXDM TO ./xxjzgtj/code
I = 1
do
WHILE I < VAL(RYBH0) + 1
II = STR(I / VAL(RYBH0) * 100,3) + '%'
lcMsg = " 正在置换学校名称性质[&ii.]... "
WAIT WINDOW AT SROWS() / 2 + 1 , (SCOLS() - LEN(LCMSG)) / 2 - 15 NOCLEAR NOWAIT LCMSG
SET FILTER TO RYBH = RIGHT('000' - ALLTRIM(STR(I)),3)
//下面这句是乱码:
UPDATE ON XXDM FROM SCHOOL ???EClause[C3] XXMC ???EClause[D1] SCHOOL.XXMC , XZ ;
???EClause[D1] SCHOOL.XZ
I = I + 1
ENDDO
WAIT CLEAR
= MESSAGEBOX(' 已将全部教职工代码库按学校代码库进行名称性质置换! ','提示信息')
CLOSE ALL
THISFORM.RELEASE
------------------------
其中的一句乱码是:
UPDATE ON XXDM FROM SCHOOL ???EClause[C3] XXMC ???EClause[D1] SCHOOL.XXMC , XZ ;
???EClause[D1] SCHOOL.XZ
请问,这句代码的本来面目是什么?
(我附近实在没有这方面的人可以请教,手头也缺少这方面的参考书。)
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2478578
回复 ahthc@163.com
下面这个链接是数据库teac.dbc中的两个表:
http://freehost20.websamba.com/thxlt/biao.jpg
当表teach.dbf 中 [学校代码](字段名xxdm)与表school.dbf中[学校代码](字段名xxdm)
相同时,要求程序自动将后一个表school.dbf中 [学校名称](字段名xxmc)和
[学校性质](字段名xxxz)分别换成前一个表teach.dbf 中的相应字段的值。
要求使用Update语句。以下是源程序,但是其中有一句乱码:
-------------------------------------
LCMSG = ' 正在置换学校名称性质... '
WAIT WINDOW AT SROWS() / 2 + 1 , (SCOLS() - LEN(LCMSG)) / 2 - 15 NOCLEAR NOWAIT LCMSG
SELECT 1
USE ./xxjzgtj/teacher
GO TOP
RYBH0 = RYBH
do
WHILE .NOT. EOF()
IF RYBH > RYBH0
RYBH0 = RYBH
ENDIF
SKIP
ENDDO
RYBH0 = ALLTRIM(RYBH0)
SELECT 2
USE ./xxjzgtj/school
INDEX ON XXDM TO ./xxjzgtj/code0
SELECT 1
INDEX ON XXDM TO ./xxjzgtj/code
I = 1
do
WHILE I < VAL(RYBH0) + 1
II = STR(I / VAL(RYBH0) * 100,3) + '%'
lcMsg = " 正在置换学校名称性质[&ii.]... "
WAIT WINDOW AT SROWS() / 2 + 1 , (SCOLS() - LEN(LCMSG)) / 2 - 15 NOCLEAR NOWAIT LCMSG
SET FILTER TO RYBH = RIGHT('000' - ALLTRIM(STR(I)),3)
//下面这句是乱码:
UPDATE ON XXDM FROM SCHOOL ???EClause[C3] XXMC ???EClause[D1] SCHOOL.XXMC , XZ ;
???EClause[D1] SCHOOL.XZ
I = I + 1
ENDDO
WAIT CLEAR
= MESSAGEBOX(' 已将全部教职工代码库按学校代码库进行名称性质置换! ','提示信息')
CLOSE ALL
THISFORM.RELEASE
------------------------
其中的一句乱码是:
UPDATE ON XXDM FROM SCHOOL ???EClause[C3] XXMC ???EClause[D1] SCHOOL.XXMC , XZ ;
???EClause[D1] SCHOOL.XZ
请问,这句代码的本来面目是什么?
(我附近实在没有这方面的人可以请教,手头也缺少这方面的参考书。)