在vfp的不同表中检查2个相同的数据,因此我可以将其放在IF语句中

时间:2018-09-02 15:32:36

标签: database visual-foxpro foxpro

如果AsyncTaskpublic class MJobScheduler extends JobService { MJobExecutor mJobExecutor; String alarmTime; ValueExchange value; @Override public boolean onStartJob(final JobParameters params) { alarmTime = params.getExtras().getString("alarmTime"); value = new ValueExchange(); value.setString(alarmTime); mJobExecutor = new MJobExecutor(){ @Override protected void onPostExecute(String s) { Toast.makeText(getApplicationContext(),alarmTime+" "+s,Toast.LENGTH_LONG).show(); jobFinished(params,false); } }; mJobExecutor.execute(); return true; } @Override public boolean onStopJob(JobParameters params) { mJobExecutor.cancel(false); return false; } } 中具有相同的确切数据,则会出现一个消息框。 我想知道这是什么代码?

3 个答案:

答案 0 :(得分:2)

这很简单:

if trim(table_A.firstname) == trim(table_B.firstname)

答案 1 :(得分:0)

这将在table_B.firstname

中找到所有重复项
close all
set talk off

use table_a in 0
use table_b in 0

sele table_a
scat memv

do while !eof()
    sele table_b
    scan for firstname=m.firstname
        wait wind allt(m.firstname)+" RecNo="+allt(str(recno()))
    endscan
    sele table_a
    if !eof()
        skip
        scat memv
    endif
enddo
close all

如果要使用If .. Else ...(只需在Do while循环中修改)

do while !eof()
    sele table_b
    go top
    locate for firstname=m.firstname
    if found()
        wait wind allt(m.firstname)+" RecNo="+allt(str(recno()))
    endif
    sele table_a
    if !eof()
        skip
        scat memv
    endif
enddo

答案 2 :(得分:0)

由于您在两个表中说了相同的数据,因此需要将一个源记录中的每个字段与目标每个记录进行比较,并将其与其中的每个字段进行比较。
(假设两个表的数据结构在各个方面都相同)

CLOSE ALL  
CLEAR ALL  
RELEASE ALL  

SET TALK OFF  

SELECT 1
USE file1
GO TOP

SELECT 2
USE file2

DO WHILE NOT EOF()

    SELECT 1

    unq_found = 0

    SELECT 2
    GO TOP

    DO WHILE NOT EOF()

        SELECT 2

        for ix = 1 to AFIELDS(TEST)

            SRC_FLD = "A." + ALLTRIM(FIELD(IX))
            TRG_FLD = "B." + ALLTRIM(FIELD(IX))

            IF ALLTRIM(&SRC_FLD) <> ALLTRIM(&TRG_FLD)
                unq_found = 1
                EXIT for
            ENDIF

        ENDFOR

        IF unq_found = 0

            @00,00 CLEAR
            @10,10 SAY "SAME DATA:- " 
            @12,10 SAY "RECORD NUMBER:-" + STR ( RECNO() ) 
            @18,10 SAY "PRESS A KEY TO CONTINUE"
            READ

        ENDIF

        SKIP

    ENDDO


    SELECT 1
    skip

ENDDO