亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? recordmanager.java

?? 用JAVA實(shí)現(xiàn)的miniSQL
?? JAVA
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
    		num = recordfile.readInt();
    		freepos = recordfile.readLong();
    		recordfile.close();
    	}catch (Exception e){
    		System.out.println("RecordManager + deleteRecord + 1");
    		return 0;
    	}
    	if(cmd.opnumber==0){
    		File newfile = new File("new$"+cmd.table);
    		try{
        		newfile.createNewFile();
        		RandomAccessFile rantable = new RandomAccessFile(newfile, "rw");
        		rantable.writeLong(0); //總的記錄個(gè)數(shù)
        		rantable.writeLong(0); //塊的個(gè)數(shù)
        		rantable.writeInt(length);//每個(gè)記錄的長(zhǎng)度
        		rantable.writeInt(num);//每個(gè)塊多少個(gè)記錄
        		rantable.writeLong(1024);//第一個(gè)空位置地址
        		rantable.close();
        	}catch(Exception e){
        		System.out.println("RecordManager + deleteRecord + 2");
        		return 0;
        	}
        	File table = new File(cmd.table);
        	table.delete();
        	newfile.renameTo(table);
        	for(int i=0;i<cmd.attnumber; i++){
        		if(cmd.attindex[i]!=null){
        			File oldindex = new File(cmd.attindex[i]);
        			int indextype = 0;
        			int indexlen = 0;
        			File newindex = new File("new$"+cmd.attindex[i]);
        			try{
        			    RandomAccessFile raf = new RandomAccessFile(oldindex, "rws");
        			    raf.readLong();
        			    indextype = raf.read();
        			    indexlen = raf.read();
        			    raf.close();
                        oldindex.delete();
                        newindex.createNewFile();
                        RandomAccessFile nraf = new RandomAccessFile(newindex,"rws");
                        nraf.writeLong(0);
                		nraf.write(indextype);
                		nraf.write(indexlen);
                		nraf.writeLong(0);
                		nraf.writeInt(0);
                		nraf.writeLong(0);
                		nraf.writeLong(1024);
                		nraf.close();
                		newindex.renameTo(oldindex);
        			}catch(Exception e){
        				System.out.println("RecordManager + deleteRecord + 3");
        				return 0;
        			}
        		}
        	}
        	return -2;
    	}
    	else if(cmd.opnumber ==1&&cmd.opcode[0]==1){
    		int th=-1;
    		for(int i=0; i<cmd.attnumber;i++)
    			if(cmd.opatt[0].equalsIgnoreCase(cmd.attribute[i])){
    				th = i;
    				break;
    			}
    		if(cmd.attindex[th]!=null){
    			long recordpos=-1;
    			if(cmd.atttype[th]==1)
    			    recordpos = indexmanager.getAddress(cmd.attindex[th], new Keyword(Integer.parseInt(cmd.op2[0])));
    			else if(cmd.atttype[th]==2)
    				recordpos = indexmanager.getAddress(cmd.attindex[th], new Keyword(Float.parseFloat(cmd.op2[0])));
    			else if(cmd.atttype[th]==3)
    				recordpos = indexmanager.getAddress(cmd.attindex[th], new Keyword(cmd.op2[0]));
                if(recordpos==-1){
                	return 0;
                }
                buffer.getBlock(new File(cmd.table),(recordpos-1024)/4096, 1024);
                Block selectb = buffer.list.getFirst();
                int offset = (int)((recordpos-1024)%4096);
                selectb.seek(offset);
                if(selectb.readBoolean()){
    				selectb.seek(offset);
    				selectb.write(0);
    				String[] entry = new String[cmd.attnumber];
    				for(int m=0; m<cmd.attnumber ;m++){
    			        if(cmd.atttype[m]==1){
    				        selectb.read();
    				         entry[m]=String.valueOf(selectb.readInt());
    			        }
    			        else if(cmd.atttype[m]==2){
    				        selectb.read();
    				        entry[m]=String.valueOf(selectb.readFloat());
    			        }
    			        else if(cmd.atttype[m]==3){
    				        int len = selectb.read()*2;
    				        byte[] name = new byte[len];
    				        selectb.read(name,cmd.attlength[m]);
    				        try{
    				            entry[m]=new String(name, "UTF16");
    				        }catch(Exception e){
    				            System.out.println("RecordManager + getRecord + 3");
    				            return 0;
    				        }
    			        }
    				}
    				for(int j=0;j<cmd.attnumber;j++){
    					if(cmd.attindex[j]!=null)
    						if(!indexmanager.delete(cmd.attindex[j],entry[j],cmd.atttype[j]))
    							return 0;
    				}
    				return 1;
    			}
    		    return 0;
    		}
    		else{
    			for(int i=0;i<blocknumber; i++){
        			buffer.getBlock(new File(cmd.table), i,1024);
        			Block selectb = buffer.list.getFirst();
        			current = 0;
        			for(int j=0; j< num;j++){
        				selectb.seek(current);
        				if(selectb.readBoolean()){
        					String[] entry = new String[cmd.attnumber];
        					for(int m=0; m<cmd.attnumber ;m++){
        			          if(cmd.atttype[m]==1){
        				          selectb.read();
        				          entry[m]=String.valueOf(selectb.readInt());
        			          }
        			          else if(cmd.atttype[m]==2){
        				          selectb.read();
        				          entry[m]=String.valueOf(selectb.readFloat());
        			          }
        			          else if(cmd.atttype[m]==3){
        				          int len = selectb.read()*2;
        				          byte[] name = new byte[len];
        				          selectb.read(name,cmd.attlength[m]);
        				          try{
        				          	 entry[m]=new String(name, "UTF16");
        				          }catch(Exception e){
        				        	  System.out.println("RecordManager + deleteRecord + 4");
        				        	  return 0;
        				          }
        			          }
        					}
        			          boolean correct = false;
        			          switch(cmd.atttype[th]){
        			              case 1:{
        			            	  correct = Integer.parseInt(entry[th])== Integer.parseInt(cmd.op2[0]);
        			            	  break;
        			              }
        			              case 2:{
        			            	  correct = Float.parseFloat(entry[th])== Float.parseFloat(cmd.op2[0]);
        			            	  break;
        			              }
        			              case 3:{
        			            	  correct = entry[th].equals(cmd.op2[0]);
        			            	  break;
        			              }
        			              default:
        			            	  break;
        			          }
        			          if(correct){
        			        	  count++;
                                  selectb.seek(current);
                                  selectb.write(0);
                                  for(int jj=0;jj<cmd.attnumber;jj++){
                  					if(cmd.attindex[jj]!=null)
                  						indexmanager.delete(cmd.attindex[jj],entry[jj],cmd.atttype[jj]);
                  				 }
              				  }
        			       }
        				current = current + length;
        		       }
    			  }
        		  return (int)count;
    		  }
    	}
    	else if(cmd.opnumber==1&&cmd.opcode[0]==2){
    		int th=-1;
    		for(int i=0; i<cmd.attnumber;i++)
    			if(cmd.opatt[0].equalsIgnoreCase(cmd.attribute[i])){
    				th = i;
    				break;
    			}
    		for(int i=0;i<blocknumber; i++){
        		buffer.getBlock(new File(cmd.table), i,1024);
        		Block selectb = buffer.list.getFirst();
        		current = 0;
        		for(int j=0; j< num;j++){
        			selectb.seek(current);
        			if(selectb.readBoolean()){
        				String[] entry = new String[cmd.attnumber];
        				for(int m=0; m<cmd.attnumber ;m++){
        			        if(cmd.atttype[m]==1){
        				        selectb.read();
        				         entry[m]=String.valueOf(selectb.readInt());
        			        }
        			        else if(cmd.atttype[m]==2){
        				        selectb.read();
        				        entry[m]=String.valueOf(selectb.readFloat());
        			          }
        			        else if(cmd.atttype[m]==3){
        				        int len = selectb.read()*2;
        				        byte[] name = new byte[len];
        				        selectb.read(name,cmd.attlength[m]);
        				        try{
        				            entry[m]=new String(name, "UTF16");
        				        }catch(Exception e){
        				            System.out.println("RecordManager + deleteRecord + 5");
        				            return 0;
        				        }
        			         }
        				}
        			         boolean correct = false;
        			         switch(cmd.atttype[th]){
        			          case 1:{
        			              correct = Integer.parseInt(entry[th])!= Integer.parseInt(cmd.op2[0]);
        			              break;
        			          }
        			          case 2:{
        			              correct = Float.parseFloat(entry[th])!= Float.parseFloat(cmd.op2[0]);
        			              break;
        			          }
        			          case 3:{
        			              correct = !entry[th].equals(cmd.op2[0]);
        			              break;
        			          }
        			          default:
        			              break;
        			          }
        			         if(correct){
        			            count++;
        	        			selectb.seek(current);
        	        			selectb.write(0);
        	        			for(int jj=0;jj<cmd.attnumber;jj++){
                  					if(cmd.attindex[jj]!=null)
                  						indexmanager.delete(cmd.attindex[jj],entry[jj],cmd.atttype[jj]);
                  				 }
        			         }
        		           }
        			    current = current + length;
        				}
        			}
        		return (int)count;
    	}
    	
    	else if(cmd.opnumber == 1){
    		int th=-1;
    		for(int i=0; i<cmd.attnumber;i++)
    			if(cmd.opatt[0].equalsIgnoreCase(cmd.attribute[i])){
    				th = i;
    				break;
    			}
    	    if(cmd.attindex[th]!=null){
    	    	LinkedList<Long> list = getAddress(cmd.attindex[th], cmd.op2[0],cmd.atttype[th], cmd.opcode[0]);
    	    	for(int j= 0 ; j< list.size();j++)
    	    	     deleteaddressRecord(cmd, list.get(j).longValue());
    	    	return list.size();
    	    }
    	    else{
    	    	return deleteLine(cmd);
    	    }
    	}
    	else if(cmd.opnumber == 2&&cmd.opatt[0].equals(cmd.opatt[1])){
    		int th=-1;
    		for(int i=0; i<cmd.attnumber;i++)
    			if(cmd.opatt[0].equalsIgnoreCase(cmd.attribute[i])){
    				th = i;
    				break;
    			}
    		if(cmd.attindex[th]!=null){
    			if((cmd.opcode[0]==3&&cmd.opcode[1]==4)||(cmd.opcode[0]==4&&cmd.opcode[1]==3)||(cmd.opcode[0]==3&&cmd.opcode[1]==6)||(cmd.opcode[0]==6&&cmd.opcode[1]==3)||(cmd.opcode[0]==5&&cmd.opcode[1]==4)||(cmd.opcode[0]==4&&cmd.opcode[1]==5)||(cmd.opcode[0]==6&&cmd.opcode[1]==5)||(cmd.opcode[0]==5&&cmd.opcode[1]==6)){
    				LinkedList<Long> list = getAddressB(cmd.attindex[th], cmd.op2[0], cmd.op2[1], cmd.atttype[th], cmd.opcode[0], cmd.opcode[1]);
    				for(int j=0;j<list.size();j++){
    					deleteaddressRecord(cmd, list.get(j).longValue());
    				}
        	    	return list.size();
    			}
    			else{
    				return deleteLine(cmd);
    			}
    		}
    		else{
    			return deleteLine(cmd);
    		}
    	}
    	else{
    		return deleteLine(cmd);
    	}
    }
    public int deleteLine(Interpreter cmd){
    	long total=0; //總個(gè)多少記錄
    	long blocknumber=0;//總共多少個(gè)塊
    	int num=0;//每個(gè)塊有多少記錄
    	int length=0; //每條記錄的長(zhǎng)度
    	long freepos=0;
    	int current=0;
    	long count = 0;//查詢(xún)的結(jié)果數(shù)
    	try{
    	    RandomAccessFile recordfile = new RandomAccessFile(new File(cmd.table),"r");
    		total = recordfile.readLong();
    		blocknumber = recordfile.readLong();
    		length = recordfile.readInt();
    		num = recordfile.readInt();
    		freepos = recordfile.readLong();
    		recordfile.close();
    	}catch (Exception e){
    		System.out.println("RecordManager + getLine + 1");
    		return 0;
    	}
		for(int i=0;i<blocknumber; i++){
			buffer.getBlock(new File(cmd.table), i,1024);
			Block selectb = buffer.list.getFirst();
			current = 0;
			for(int j=0; j< num;j++){
				selectb.seek(current);
				if(selectb.readBoolean()){
					String[] entry = new String[cmd.attnumber];
					for(int m=0; m<cmd.attnumber ;m++){
			          if(cmd.atttype[m]==1){
				          selectb.read();
				          entry[m]=String.valueOf(selectb.readInt());
			          }
			          else if(cmd.atttype[m]==2){
				          selectb.read();
				          entry[m]=String.valueOf(selectb.readFloat());
			          }
			          else if(cmd.atttype[m]==3){
				          int len = selectb.read()*2;
				          byte[] name = new byte[len];
				          selectb.read(name,cmd.attlength[m]);
				          try{
				          	 entry[m]=new String(name, "UTF16");
				          }catch(Exception e){
				        	  System.out.println("RecordManager + getLine + 3");
				          }
			          }
					}
			          boolean correct = true;
			          for(int ii=0; ii<cmd.opnumber; ii++){
			        	  int th=-1;
			      		  for(int q=0; q<cmd.attnumber;q++)
			      			if(cmd.opatt[ii].equalsIgnoreCase(cmd.attribute[q])){
			      				th = q;
			      				break;
			      			}
			      		  correct = correct&&recordright(entry[th], cmd.op2[ii], cmd.atttype[th], cmd.opcode[ii]);
			          }
			          if(correct){
			        	  count++;
			        	  selectb.seek(current);
			        	  selectb.write(0);
			        	  for(int jj=0;jj<cmd.attnumber;jj++){
			      		    if(cmd.attindex[jj]!=null)
			      				indexmanager.delete(cmd.attindex[jj],entry[jj],cmd.atttype[jj]);
			      		  }
			          }
				   }
			       current = current + length;
			   }
		   }
		   return (int)count;
    }
    public void deleteaddressRecord(Interpreter cmd, long recordpos){
    	buffer.getBlock(new File(cmd.table), (recordpos-1024)/4096,1024);
		Block selectb = buffer.list.getFirst();
		int offset = (int)((recordpos-1024)%4096);
		String[] entry = new String[cmd.attnumber];
        selectb.seek(offset);
        selectb.write(0);
		for(int m=0; m<cmd.attnumber ;m++){
          if(cmd.atttype[m]==1){
	          selectb.read();
	          entry[m]=String.valueOf(selectb.readInt());
          }
          else if(cmd.atttype[m]==2){
	          selectb.read();
	          entry[m]=String.valueOf(selectb.readFloat());
          }
          else if(cmd.atttype[m]==3){
	          int len = selectb.read()*2;
	          byte[] name = new byte[len];
	          selectb.read(name,cmd.attlength[m]);
	          try{
	          	 entry[m]=new String(name, "UTF16");
	          }catch(Exception e){
	        	  System.out.println("RecordManager + deleteaddressRecord + 4");
	          }
          }
		}
		for(int jj=0;jj<cmd.attnumber;jj++){
		    if(cmd.attindex[jj]!=null)
				indexmanager.delete(cmd.attindex[jj],entry[jj],cmd.atttype[jj]);
		}
    }
    public boolean quit(){
    	buffer.quit();
    	return true;
    }	 
    public void deleteBlock(String table){
    	buffer.deleteBlock(table);
    }
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美丰满高潮xxxx喷水动漫| 亚洲精品精品亚洲| 日本一区二区免费在线| 欧美高清在线视频| 亚洲综合一区在线| 久久精品二区亚洲w码| 国产高清久久久久| 一本大道久久精品懂色aⅴ | 中文文精品字幕一区二区| 1000部国产精品成人观看| 亚洲综合色噜噜狠狠| 久久99精品久久久久久久久久久久 | 在线观看国产一区二区| 欧美性感一区二区三区| 精品国产髙清在线看国产毛片| 国产色一区二区| 亚洲一区二区三区四区的| 久久精品国产精品亚洲综合| 成人动漫在线一区| 91精品黄色片免费大全| 中文字幕巨乱亚洲| 日韩高清在线不卡| 丁香婷婷综合网| 91精品欧美久久久久久动漫| 国产精品电影院| 久久国产剧场电影| 91久久精品网| 久久女同互慰一区二区三区| 亚洲成人一区在线| 成人精品视频一区二区三区| 欧美一区二区三区免费在线看| 国产精品狼人久久影院观看方式| 日韩成人dvd| 成人sese在线| 精品国产伦一区二区三区免费 | 99久久精品国产麻豆演员表| 日韩一区二区电影在线| 亚洲美女屁股眼交3| 国产一区二区三区四区在线观看 | 日本一不卡视频| 91香蕉视频在线| 国产日韩欧美高清在线| 日本女优在线视频一区二区| 91浏览器在线视频| 久久精品亚洲精品国产欧美kt∨| 视频一区二区欧美| 91浏览器在线视频| 国产精品久久久久久久浪潮网站| 韩国v欧美v日本v亚洲v| 欧美日韩精品一区二区三区| 亚洲精品写真福利| 99久久婷婷国产综合精品电影 | 久久精品国产99国产| 欧美色区777第一页| 亚洲人成伊人成综合网小说| 国产91在线看| 久久这里只有精品6| 日韩av网站在线观看| 色婷婷精品大在线视频| 国产精品毛片大码女人| 欧美美女黄视频| 亚洲综合精品久久| 在线一区二区三区四区五区| 日韩美女视频一区| caoporn国产一区二区| 国产人久久人人人人爽| 国产一区二区在线视频| 欧美精品一区二区不卡| 蜜桃一区二区三区在线观看| 欧美肥妇bbw| 日韩高清在线观看| 911精品产国品一二三产区| 亚洲成av人影院| 欧美人牲a欧美精品| 午夜视频一区在线观看| 欧美日韩一区高清| 天天亚洲美女在线视频| 欧美日韩大陆在线| 午夜欧美2019年伦理| 欧美日韩成人综合天天影院| 视频一区中文字幕| 91精品国产全国免费观看| 琪琪久久久久日韩精品| 欧美大片免费久久精品三p| 久久精品免费看| 久久午夜免费电影| 成人深夜福利app| 亚洲视频在线一区| 欧美在线不卡视频| 日韩一区欧美二区| 精品区一区二区| 国产成人亚洲综合a∨猫咪| 中文字幕va一区二区三区| 97se狠狠狠综合亚洲狠狠| 亚洲精品视频在线| 欧美日韩精品综合在线| 麻豆国产精品官网| 久久久久国产精品人| 成人高清免费在线播放| 亚洲久本草在线中文字幕| 欧洲日韩一区二区三区| 日本成人在线一区| 久久久亚洲国产美女国产盗摄| 国产jizzjizz一区二区| 亚洲男人的天堂网| 欧美日韩一区二区三区免费看| 欧美aaaaaa午夜精品| 欧美国产日本视频| 在线免费观看一区| 美腿丝袜亚洲色图| 欧美国产在线观看| 色哟哟一区二区在线观看| 日韩专区一卡二卡| 国产欧美日韩麻豆91| 在线观看不卡一区| 韩国精品免费视频| 一区二区三区精品| 日韩午夜av一区| 成人app在线| 日韩影视精彩在线| 欧美高清在线一区二区| 亚洲一区二区三区四区在线| 日韩欧美一级精品久久| 成人av电影在线网| 日本网站在线观看一区二区三区| 国产调教视频一区| 欧美精品久久久久久久多人混战 | 久久久久国产免费免费 | 性久久久久久久| 久久久久综合网| 欧美色视频在线| 国产.欧美.日韩| 亚洲大片精品永久免费| 欧美激情一区二区| 8x8x8国产精品| 99re热视频精品| 韩国女主播成人在线| 亚洲一区二区三区自拍| 久久先锋影音av| 91精品国产综合久久精品| 成人黄色a**站在线观看| 视频一区二区不卡| 亚洲女性喷水在线观看一区| 精品久久久久久久久久久久久久久久久| 91一区二区三区在线观看| 国内外成人在线| 亚欧色一区w666天堂| 亚洲乱码日产精品bd| 国产网站一区二区| 555www色欧美视频| 色欧美日韩亚洲| 成人永久免费视频| 久久99精品一区二区三区| 亚洲第一在线综合网站| 中文字幕在线播放不卡一区| 精品国产91亚洲一区二区三区婷婷| 欧美三级在线视频| 99免费精品视频| 国产成人精品影视| 久久疯狂做爰流白浆xx| 亚洲国产精品麻豆| 中文字幕在线不卡一区| 久久久久久久一区| 日韩午夜精品电影| 6080亚洲精品一区二区| 在线视频综合导航| 91亚洲精品一区二区乱码| 风间由美一区二区av101| 精品一区二区三区免费观看| 日韩精品91亚洲二区在线观看| 亚洲免费观看高清完整版在线观看熊 | 亚洲乱码精品一二三四区日韩在线| 日本一二三四高清不卡| 日韩欧美国产一二三区| 91精品综合久久久久久| 在线视频一区二区三区| 91免费版pro下载短视频| 成人激情小说网站| 国产69精品久久99不卡| 国产91精品久久久久久久网曝门| 国产综合色在线视频区| 精品在线一区二区三区| 美女视频一区二区| 麻豆久久久久久| 美女被吸乳得到大胸91| 蜜桃久久久久久| 久久精品国产亚洲aⅴ| 久久精品国产精品亚洲红杏 | 亚洲主播在线观看| 亚洲国产电影在线观看| 久久久久久电影| 中文无字幕一区二区三区| 中文字幕国产精品一区二区| 麻豆精品在线观看| 免费人成精品欧美精品| 麻豆高清免费国产一区| 国产综合色视频| 成人久久18免费网站麻豆| www.欧美.com| 日本道在线观看一区二区|