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

📄 u_dbtread.pas

📁 数据导入导出
💻 PAS
📖 第 1 页 / 共 3 页
字号:
                  end;

              temp1:=dbtrans.tosqlserver.FieldValues['FIDTCS'];   //将TCS资金表中最大的FID号赋给TEMP1变量
              temp2:=dbtrans.fromaccessquery_2.FieldValues['ID']; //同时获得RC资金表此字段的ID号,赋TEMP2
               //showmessage(temp1+','+temp2);
           //---------------------------------------------------------------------------//

             with dbtrans.fromaccessquery_3 do                //用数据集3查询RC行为表中FID字段为TEMP2的记录
                 begin
                   close;
                   sql.Clear;
                   sql.Add('select tbrentcd.code,tbrtransaction.day1,tbrtransaction.FId from tbrtransaction,tbrentcd where tbrtransaction.cid1=tbrentcd.id and tbrtransaction.FId='+''+temp2+'');
                   open;
                   FIRST;
                 end;

             for j:=0 to dbtrans.fromaccessquery_3.RecordCount do     //统计记录个数,循环插入新记录到TCS的行为表中
                begin
                      if j=dbtrans.fromaccessquery_3.RecordCount then break;
                      with dbtrans.tosqlserver do
                          begin
                          close;
                          sql.Clear;
                          sql.Add('insert into rttransaction(出租日期,会员编号,影片编号,FID) values('+''''+datetostr(dbtrans.fromaccessquery_3.FieldValues['day1'])+''''
                          +','+''''+'零租用户'+''''+','+''''+dbtrans.fromaccessquery_3.FieldValues['code']+''''+','+''''+temp1+''''+')'); //逾期用户归还日期不导入)
                          execsql;                                                                              //这里FID导入为TEMP1的值,这样TCS的资金表和行为表就通过FID字段联系起来了
                          end;
                       dbtrans.fromaccessquery_3.Next;

                end;

           //------------------------------------------------------//



                with dbtrans.tosqlserverB   do          //通过数据集TOSQLSERVER获得在TCS行为表中新生成的ID序列号
                  begin
                    close;
                    sql.Clear;
                    sql.Add('select rttransaction.ID,rttransaction.影片编号 from rttransaction where rttransaction.FID='+''+temp1+'');
                    open;
                    first;
                  end;




             with dbtrans.fromaccessquery_3 do
                 begin
                   close;
                   sql.Clear;
                   sql.Add('select tbrentcd.*,tbrtransaction.FID from tbrtransaction,tbrentcd where tbrtransaction.cid1=tbrentcd.id and tbrtransaction.FID='+''+temp2+'');
                   open;
                   FIRST;
                 end;




            for j:=0 to dbtrans.fromaccessquery_3.RecordCount do
                begin
                     if j=dbtrans.fromaccessquery_3.RecordCount then break;

                      temp3:=dbtrans.tosqlserverB.FieldValues['ID']; /////// 此ID序列循环一次累加一次
                     temp4:=dbtrans.tosqlserverB.FieldValues['影片编号'];



                      


                      with dbtrans.tosqlserver do
                          begin
                          close;
                          sql.Clear;

                         sql.Add('update rent_cd set ID='+''+temp3+''
                         +','+ '绑定号='+''+temp2+''+','+' 状态 ='+''''+'已租'+''''
                         +' where 影片编号='+''''+temp4+'''');   //中文必须加引号,而数值加了引号就为字符串,不加为数据类型


                          execsql;
                          end;

                                                    
                  dbtrans.tosqlserverB.Next;
                  dbtrans.fromaccessquery_3.Next;

                

                 end;

                    dbtrans.fromaccessquery_2.next;


       end;









                        

 /////////////////////////////////////////////////////////////////////////////////////////////////
    //下面导入会员信息+碟片未还


  with dbtrans.fromaccessquery_1 do // 从ACCESS_tbassociator+batortype---->>SQLSERVER_atorinfo(会员信息)
      begin
        close;
        sql.Clear;
        sql.add('select tbassociator.*,tbatortype.* from tbassociator,tbatortype where tbassociator.aid=tbatortype.id');
        open;
        first;
      end;


  with dbtrans.fromaccessquery_2 do //ACCESS_tbassociator.AID+tbatortype.name----->>SQLSERVER_atorinfo(会员信息)
      begin
        close;
        sql.Clear;
        sql.add('select tbatortype.name from tbassociator,tbatortype where tbassociator.aid=tbatortype.id');
        open;
        first;
      end;            // tbassociator.AID,
                                                //数据集1,2取得会员信息表,一条一条的取

 dbtrans.bsskingauge1.ProgressText:='正在导入到会员表';

 for i:=0 to dbtrans.fromaccessquery_1.RecordCount do //读入会员表的记录,从第一条开始
  
      begin //BEGIN
        dbtrans.bsskingauge1.maxvalue:=dbtrans.fromaccessquery_1.RecordCount;//进度条1
        dbtrans.bsskingauge1.value:=i;//进度条1
        if i=dbtrans.fromaccessquery_1.RecordCount then break;

                     if dbtrans.fromaccessquery_1.FieldValues['address']=null then
                       rentcdtemp1:='  '
                    else
                       rentcdtemp1:=dbtrans.fromaccessquery_1.FieldValues['address'];

                    if dbtrans.fromaccessquery_1.FieldValues['telephone']=null then
                       rentcdtemp2:='  '
                    else
                       rentcdtemp2:=dbtrans.fromaccessquery_1.FieldValues['telephone'];
                    daynumber:=date-dbtrans.fromaccessquery_1.FieldValues['lastday'];

             with dbtrans.tosqlserver do
                  begin
                    close;
                    sql.Clear;
                    sql.Add('insert into atorinfo(会员编号,剩余部数,剩余天数,未归还部数,押金,说明,类型,姓名,家庭地址,联系电话,会员首拼,租碟编号) values('+''''+dbtrans.fromaccessquery_1.FieldValues['code']+''''
                    +','+''''+inttostr(dbtrans.fromaccessquery_1.FieldValues['number'])+''''+','+''''+inttostr(round(daynumber))+''''
                    +','+''''+'0'+''''+','+''''+currtostr(dbtrans.fromaccessquery_1.FieldValues['deposit'])+''''
                    +','+''''+dbtrans.fromaccessquery_1.FieldValues['memo']+''''+','+''''+dbtrans.fromaccessquery_2.FieldValues['name']+''''
                    +','+''''+dbtrans.fromaccessquery_1.FieldValues['name']+''''+','+''''+rentcdtemp1+''''
                    +','+''''+rentcdtemp2+''''
                    +','+''''+dbtrans.fromaccessquery_1.FieldValues['spell']+''''+','+''''+' '+''''+'    )');
                    execsql;
                  end;                             //开始导入到TCS的资金表,其FID字段等它自动累加



              temp2:=dbtrans.fromaccessquery_1.FieldValues['ID']; //同时获得RC会员表此字段的ID号,赋TEMP2
              temp5:=dbtrans.fromaccessquery_1.FieldValues['code'];
              
           //---------------------------------------------------------------------------//

             with dbtrans.fromaccessquery_3 do
                 begin
                   close;
                   sql.Clear;
                   sql.Add('select tbrtransaction.day1,tbrtransaction.FID,tbrentcd.code from tbrtransaction,tbrentcd where  tbrentcd.id=tbrtransaction.CID1 and cid2=2 and tbrtransaction.aid='+''+temp2+'');
                   open;                                                                                                                                       //找出此会员在RC出租事件表中未归还影片的记录
                   FIRST;
                 end;


                  temp1:=inttostr(dbtrans.fromaccessquery_3.RecordCount);//统计本会员未归还影片的数量
                  temp6:=' ';//初始化


                 sl:=Tstringlist.Create;




             for j:=0 to dbtrans.fromaccessquery_3.RecordCount do     //统计记录个数,循环插入新记录到TCS的行为表中

                begin//FOR

                   if j=dbtrans.fromaccessquery_3.RecordCount then break;

                 sl.Delimiter:=',';     //分隔符为,
                 sl.ADD(dbtrans.fromaccessquery_3.FieldValues['code']);


                  temp6:=dbtrans.fromaccessquery_3.FieldValues['FID']; //写在FOR循环里,如果此会员未归还影片为0,那么就不进入这个FOR循环,TEMP6将不会得到赋值
                                                                      //同时也不存在给一个STRING类型赋为NULL值的情况
                                                                       //如果进入了循环,则将RC的帮定号赋给TEMP6


                      with dbtrans.tosqlserver do
                          begin
                          close;
                          sql.Clear;
                          sql.Add('insert into rttransaction(出租日期,会员编号,影片编号,FID) values('+''''+datetostr(dbtrans.fromaccessquery_3.FieldValues['day1'])+''''
                          +','+''''+temp5+''''+','+''''+dbtrans.fromaccessquery_3.FieldValues['code']+''''+','+''''+temp6+''''+')'); //会员用户归还日期不导入)
                          execsql;                                               //对于会员不需要赋FID,即对应资金表的FID
                          end;

                       dbtrans.fromaccessquery_3.Next; // 有问题

                end;

           //------------------------------------------------------//

          if temp6<>' ' then//如果TEMP6为' ',那么不进入这个循环,表示此会员没有未归还的影片
           begin//if
               with dbtrans.tosqlserverB   do          //通过数据集TOSQLSERVER获得在TCS行为表中新生成的ID序列号
                  begin
                    close;
                    sql.Clear;
                    sql.Add('select rttransaction.ID,rttransaction.影片编号 from rttransaction where rttransaction.FID='+''+temp6+'');
                    open;                                                                                        //读出所有FID为XXXX的未归还记录
                    first;                                                                                       //ID号将在下面的循环中NEXT
               end;




             with dbtrans.fromaccessquery_3 do
                 begin
                   close;
                   sql.Clear;
                   sql.Add('select tbrentcd.*,tbrtransaction.FID from tbrtransaction,tbrentcd where tbrtransaction.cid1=tbrentcd.id and tbrtransaction.FID='+''+temp6+'');
                   open;                                                                                                                       //AID为RC会员表ID
                   FIRST;
                 end;


                    k:=dbtrans.fromaccessquery_3.RecordCount;

             for j:=0 to dbtrans.fromaccessquery_3.RecordCount do   //如果TEMP6为空,则不修改

                begin  //for

                     if j=dbtrans.fromaccessquery_3.RecordCount then break;




                     temp4:=dbtrans.tosqlserverB.FieldValues['影片编号'];
                     temp3:=dbtrans.tosqlserverB.FieldValues['ID']; /////// 此ID序列循环一次NEXT一次


                      


                      with dbtrans.tosqlserver do  //修改影片库中ID,绑定号,状态三个字段
                          begin
                            close;
                            sql.Clear;

                            sql.Add('update rent_cd set ID='+''+temp3+''
                            +','+ '绑定号='+''+temp6+''+','+' 状态 ='+''''+'已租'+''''
                            +' where 影片编号='+''''+temp4+'''');   //中文必须加引号,而数值加了引号就为字符串,不加为数据类型
                            execsql;
                            end;

⌨️ 快捷键说明

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