⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uiqstk.pas

📁 Delphi编写的启光短信试题编辑平台源码
💻 PAS
📖 第 1 页 / 共 3 页
字号:
                begin
                    ADOTable1.Next;
                    Continue;
                end;
                if intkey > 4 then
                begin
                    case Random(3)+1 of
                    1:  begin
                        F_STDAA:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
                        F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
                        F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
                        F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
                        F_STDAZ:='A'
                        end;
                    2:  begin
                        F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
                        F_STDAB:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
                        F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
                        F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
                        F_STDAZ:='B'
                        end;
                    3:  begin
                        F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
                        F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
                        F_STDAC:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
                        F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
                        F_STDAZ:='C'
                        end;
                    4:  begin
                        F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
                        F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
                        F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
                        F_STDAD:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
                        F_STDAZ:='D'
                        end;
                    end;
                end
                else
                begin
                    F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
                    F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
                    F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
                    F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
                    if intkey = 1 then
                        F_STDAZ:='A'
                    else if intkey = 2 then
                        F_STDAZ:='B'
                    else if intkey = 3 then
                        F_STDAZ:='C'
                    else if intkey = 4 then
                        F_STDAZ:='D';
                end;
                with OQueryST do
                begin
                    try
                        Close;
                        SQL.Text:='insert into SMTEST.D_IQSTK (F_LXBH,F_STXH,F_STNR,F_STDAA,F_STDAB,F_STDAC,F_STDAD,F_STDAZ) values '+
                         '('''+F_KLXBH+''','+IntToStr(F_STXH)+','''+F_STNR+''','''+
                         F_STDAA+''','''+F_STDAB+''','''+F_STDAC+''','''+F_STDAD+''','''+F_STDAZ+''')';
                        ExecSQL;
                    except
                        ADOTable1.Next;
                        Continue;
                    end;
                    STKRefeshData;
                    DBGrid2.Update;
                end;
                ADOTable1.Next;
                Gauge1.AddProgress(1);
            end;
            }


            while not ADOTable1.Eof do
            begin
                with OQuerySTLX do
                begin
                    Close;
                    SQL.Text:='select * from SMTEST.D_IQSTK';
                    ExecSQL;
                    if RecNo <> 0 then
                    begin
                        Close;
                        SQL.Text:='select max(F_STXH) as STNo from SMTEST.D_IQSTK';
                        ExecSQL;
                        if OQuerySTLX.RecNo <> 0 then
                            F_STXH:=Fieldbyname('STNo').asinteger+1
                        else
                            F_STXH:=1;
                    end
                    else
                    begin
                         F_STXH:=1;
                    end;
                end;
                F_STNR:=ADOTable1.fieldbyname('tmnr').AsString;
                F_KLXBH:=Format('%0.3d',[strtoint(ADOTable1.fieldbyname('tmlx').AsString)]);
                Strtemp:=ADOTable1.fieldbyname('tmzqda').AsString;
                num:=0;
                intkey:=0;
                for j := 1 to 6 do
                begin
                    if Strtemp[j]= '1' then
                    begin
                        inc(num);
                        if num > 1 then
                        begin
                            Break;
                        end;
                        intkey:= j;
                    end;
                end;
                if (intkey = 0) or (num > 1)then
                begin
                    ADOTable1.Next;
                    Continue;
                end;
                if intkey > 4 then
                begin
                    case Random(3)+1 of
                    1:  begin
                        F_STDAA:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
                        F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
                        F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
                        F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
                        F_STDAZ:='A'
                        end;
                    2:  begin
                        F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
                        F_STDAB:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
                        F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
                        F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
                        F_STDAZ:='B'
                        end;
                    3:  begin
                        F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
                        F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
                        F_STDAC:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
                        F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
                        F_STDAZ:='C'
                        end;
                    4:  begin
                        F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
                        F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
                        F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
                        F_STDAD:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
                        F_STDAZ:='D'
                        end;
                    end;
                end
                else
                begin
                    F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
                    F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
                    F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
                    F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
                    if intkey = 1 then
                        F_STDAZ:='A'
                    else if intkey = 2 then
                        F_STDAZ:='B'
                    else if intkey = 3 then
                        F_STDAZ:='C'
                    else if intkey = 4 then
                        F_STDAZ:='D';
                end;
                with OQueryST do
                begin
                    try
                        Close;
                        SQL.Text:='insert into SMTEST.D_IQSTK (F_LXBH,F_STXH,F_STNR,F_STDAA,F_STDAB,F_STDAC,F_STDAD,F_STDAZ) values '+
                         '('''+F_KLXBH+''','+IntToStr(F_STXH)+','''+F_STNR+''','''+
                         F_STDAA+''','''+F_STDAB+''','''+F_STDAC+''','''+F_STDAD+''','''+F_STDAZ+''')';
                        ExecSQL;
                    except
                        ADOTable1.Next;
                        Continue;
                    end;
                    STKRefeshData;
                    DBGrid2.Update;
                end;
                ADOTable1.Next;
                Gauge1.AddProgress(1);
            end;

        end;
        if ADOTable1.TableName = 'kind' then
        begin
            while not ADOTable1.Eof do
            begin
                F_LLXBH:=Format('%0.3d',[ADOTable1.fieldbyname('id').asinteger]);
                F_LXMC:=ADOTable1.fieldbyname('kind').AsString;
                F_BZ:='';
                with OQuerySTLX do
                begin
                    try
                        Close;
                        SQL.Text:='insert into SMTEST.D_IQSTLX (F_LXBH,F_LXMC,F_BZ) values '+
                         '('''+F_LLXBH+''','''+F_LXMC+''','''+F_BZ+''')';
                        ExecSQL;
                    except
                        ADOTable1.Next;
                        Continue;
                    end;
                    STLXRefeshData;
                end;
                ADOTable1.Next;
                Gauge1.AddProgress(1);
            end;
        end;
    end;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
begin
    if ComboBox2.Text<>'' then
    begin
        ADOTable1.Close;
        ADOTable1.TableName:=ComboBox2.Text;
        ADOTable1.Open;
    end;
end;

procedure TForm1.Button8Click(Sender: TObject);
var
    F_STXH:Integer;
begin
    if not OQuerySTLX.Active then
    begin
        exit;
    end;
    if Application.MessageBox('确实要删除该记录吗?','注意',MB_YESNO or MB_ICONINFORMATION) = IDNO then
    begin
        exit;
    end;
    try
        with OQuerySTLX do
        begin
            F_LLXBH:=CutString('(',ListBox1.Items.Strings[ListBox1.ItemIndex],1,true);
            Close;
            SQL.Text:='delete from SMTEST.D_IQSTLX where F_LXBH = '''+F_LLXBH+'''';
            ExecSQL;
        end;
    except
        Application.MessageBox('删除失败!','错误',MB_OK or MB_ICONERROR);
        Exit;
    end;
    STLXRefeshData;
    Application.MessageBox('记录已删除','提示',MB_OK or MB_ICONINFORMATION);
end;

procedure TForm1.Button3Click(Sender: TObject);
var
    DataInFile: TextFile;
    StrData : string;
    F_STD : string;
    OpenDialog: TOpenDialog;
    OQuerySTK: TOraQuery;
begin
    OpenDialog := TOpenDialog.Create(Self);
    try
        OpenDialog.InitialDir := ExtractFileDir(Application.ExeName);
        OpenDialog.Filter := '文本文件 (*.txt)|*.txt';
        if OpenDialog.Execute then
        begin
            AssignFile(DataInFile,OpenDialog.FileName);
            Reset(DataInFile);
            while not system.Eof(DataInFile) do
            begin
                with OQuerySTLX do
                begin
                    Close;
                    SQL.Text:='select * from SMTEST.D_IQSTK';
                    ExecSQL;
                    if RecNo <> 0 then
                    begin
                        Close;
                        SQL.Text:='select max(F_STXH) as STNo from SMTEST.D_IQSTK';
                        ExecSQL;
                        if OQuerySTLX.RecNo <> 0 then
                            F_STXH:=Fieldbyname('STNo').asinteger+1
                        else
                            F_STXH:=1;
                    end
                    else
                    begin
                         F_STXH:=1;
                    end;
                end;
                Readln(DataInFile,F_STNR);
                F_KLXBH:='001';
                Readln(DataInFile,F_STD);
                F_STDAA := copy(F_STD,0,pos('  ',F_STD)-1);
                Delete(F_STD,0,pos('  ',F_STD)-1);
                F_STDAB := copy(F_STD,0,pos('  ',F_STD)-1);
                Delete(F_STD,0,pos('  ',F_STD)-1);
                F_STDAC := copy(F_STD,0,pos('  ',F_STD)-1);
                Delete(F_STD,0,pos('  ',F_STD)-1);
                F_STDAD := copy(F_STD,0,pos('  ',F_STD)-1);
                Readln(DataInFile,F_STDAZ);
                if F_STDAZ = '1' then
                begin
                  F_STDAZ := 'A';
                end
                else if F_STDAZ = '2' then
                begin
                  F_STDAZ := 'B';
                end
                else if F_STDAZ = '3' then
                begin
                  F_STDAZ := 'C';
                end
                else if F_STDAZ = '4' then
                begin
                  F_STDAZ := 'D';
                end;
                with OQuerySTK do
                begin
                    try
                        Close;
                        SQL.Text:='insert into SMTEST.D_IQSTK (F_LXBH,F_STXH,F_STNR,F_STDAA,F_STDAB,F_STDAC,F_STDAD,F_STDAZ) values '+
                         '('''+F_KLXBH+''','+IntToStr(F_STXH)+','''+F_STNR+''','''+
                         F_STDAA+''','''+F_STDAB+''','''+F_STDAC+''','''+F_STDAD+''','''+F_STDAZ+''')';
                        ShowMessage(SQL.Text);
                        //ExecSQL;
                    except
                        Continue;
                    end;
                    STKRefeshData;
                end;
            end;
        end;
    finally
        OpenDialog.Free;
    end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -