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

📄 inspectorindex.js

📁 SQLiteDBMS是SQLite数据库的管理服务器软件
💻 JS
字号:
/* create */function inspectorIndexNew(data) {	var tableName='';	if (data && data.type == 'table') tableName=data.name;	lGo('newIndexWin');	_inspectorData=data;	var form=document.forms['form_indexnew'];	if (form) {		try{			form['name'].value='new_index';			while (form['table'].options.length > 1)				form['table'].remove(1);			while (form['allfield'].options.length > 0)				form['allfield'].remove(0);			while (form['field'].options.length > 0)				form['field'].remove(0);			for (var i=0; i < _tables.length; i++) {				var option=new Option(_tables[i].name, _tables[i].name);				form['table'].options.add(option, 1);			}			if (tableName) {				form['table'].value=tableName;				inspectorIndexNewTableChange(tableName);			}			form['unique'].checked=form['unique'].defaultChecked=false;			form['direction'][0].checked=false;			form['direction'][1].checked=false;			form['name'].focus();			form['name'].select();		}catch(e){}	}}function inspectorIndexNewSubmit(showSql) {	var form=document.forms['form_indexnew'];	if (!form) return false;	if (!trim(form['name'].value)) {		alert('Insert new Index\'s name.');		form['name'].focus();		return;	}	if (!form['table'].value) {		alert('Select table.');		form['table'].focus();		return;	}	if (form['field'].options.length <= 0) {		alert('Select fields to index.');		form['field'].focus();		return;	}	if (!showSql && !confirm('Create new index?')) return false;	var newName=form['name'].value;	var table=form['table'].value;	var field=[];	var unique=(form['unique'].checked == true)?'UNIQUE ':'';	for (var i=0; i < form['field'].options.length; i++) {		var node='"'+form['field'].options[i].value+'"';		if (form['field'].options[i].direction == 'DESC')			node+=' DESC';		else			node+=' ASC';		field.push(node);	}	var sql='CREATE '+unique+'INDEX "'+newName+'" ON "'+table+'" ('+(field.join(','))+')';	if (showSql) return dbShowSQL(sql);	dbExecCommand(sql, inspectorIndexNewResponse);	return false;}function inspectorIndexNewResponse(dbRes) {	if (dbRes) {		inspectorDdlClear();		dbExecCommand('show index', inspectorIndexListDraw);		lHide();	}}function inspectorIndexNewTableChange(table) {	var form=document.forms['form_indexnew'];	if (!form) return;	if (!table) return;	while (form['allfield'].options.length > 0)		form['allfield'].remove(0);	while (form['field'].options.length > 0)		form['field'].remove(0);	dbExecCommand('DESC "'+table+'"', inspectorIndexNewTableChangeResponse);}function inspectorIndexNewTableChangeResponse(dbRes) {	var form=document.forms['form_indexnew'];	if (!form) return;	while (form['allfield'].options.length > 0)		form['allfield'].remove(0);	if (dbRes.row) {		for (var i=0; i < dbRes.row.length; i++) {			var option=new Option(dbRes.row[i].data[0], dbRes.row[i].data[0]);			form['allfield'].options.add(option, form['allfield'].options.length);		}	}}function inspectorIndexDirection(field) {	if (!field || !field.form) return;	var form=field.form;	if (field.selectedIndex < 0 || field.options.length <= 0) return;	if (field.options[field.selectedIndex].direction == 'DESC')		form['direction'][1].checked=true;	else		form['direction'][0].checked=true;}function inspectorIndexFieldMove(field) {	if (!field || !field.form) return;	var form=field.form;	var targetField=form[(field.name == 'field'?'allfield':'field')];	if (!targetField) return;	if (field.selectedIndex < 0 || field.options.length <= 0) return;	var option=new Option(field.options[field.selectedIndex].text, field.options[field.selectedIndex].value);	targetField.options.add(option, targetField.options.length);	field.remove(field.selectedIndex);}function inspectorIndexDirectionChange(field) {	if (!field || !field.form || !field.form['field']) return;	var form=field.form;	if (field.form['field'].selectedIndex < 0 || field.form['field'].options.length <= 0) return;	var option=field.form['field'].options[field.form['field'].selectedIndex];	option.direction=field.value;}/* rebuild */function inspectorIndexRebuild(data) {	if (data && data.type && data.name)		dbExecCommand('reindex "'+data.name+'"', inspectorIndexRebuildResponse);}function inspectorIndexRebuildResponse(dbRes) {	alert('Rebuld index is OK.');}/* modify */function inspectorIndexModify(data) {	if (!data || data.type != 'index') return;	lGo('editIndexWin');	_inspectorData=data;	var form=document.forms['form_indexedit'];	if (form) {		try{			form['name'].value=form['curname'].value=data.name;			form['table'].value=data.table;			if (data.ddl.match(/^\s*CREATE\s+UNIQUE\s+INDEX/i))				form['unique'].checked=form['unique'].defaultChecked=true;			else				form['unique'].checked=form['unique'].defaultChecked=false;			inspectorIndexModifyField(data.table);			form['direction'][0].checked=false;			form['direction'][1].checked=false;			form['name'].focus();			form['name'].select();		}catch(e){}	}}function inspectorIndexModifyField(table) {	var form=document.forms['form_indexedit'];	if (!form) return;	if (!table) return;	while (form['allfield'].options.length > 0)		form['allfield'].remove(0);	while (form['field'].options.length > 0)		form['field'].remove(0);	dbExecCommand('DESC "'+table+'"', inspectorIndexModifyFieldResponse);}function inspectorIndexModifyFieldResponse(dbRes) {	var form=document.forms['form_indexedit'];	if (!form || !_inspectorData) return;	while (form['allfield'].options.length > 0)		form['allfield'].remove(0);	while (form['field'].options.length > 0)		form['field'].remove(0);	if (dbRes.row) {		var data=_inspectorData;		var match=data.ddl.match(/[(]([^)]+)[)]\s*$/);		var selected=[];		var direction=[];		if (match) {			var tmp=match[1].split(',');			for (var i=0; i < tmp.length; i++) {				match=tmp[i].match(/\s+(ASC|DESC|)\s*$/i);				if (match) {					if (!match[1]) match[1]='ASC';					else match[1]=match[1].toUpperCase();				}else					match=[,'ASC'];				var field=strip(trim(tmp[i].replace(/\s+(ASC|DESC)\s*$/i, '')));				selected.push(field);				direction.push(match[1]);			}		}		for (var i=0; i < dbRes.row.length; i++) {			var option=new Option(dbRes.row[i].data[0], dbRes.row[i].data[0]);			var key=arraySearch(dbRes.row[i].data[0], selected);			if (key >= 0) {				option.direction=direction[key];				form['field'].options.add(option, form['field'].options.length);			}else				form['allfield'].options.add(option, form['allfield'].options.length);		}	}}function inspectorIndexEditSubmit(showSql) {	var form=document.forms['form_indexedit'];	if (!form) return false;	if (!trim(form['name'].value)) {		alert('Insert new Index\'s name.');		form['name'].focus();		return;	}	if (!form['table'].value) {		alert('Select table.');		form['table'].focus();		return;	}	if (form['field'].options.length <= 0) {		alert('Select fields to index.');		form['field'].focus();		return;	}	if (!showSql && !confirm('Edit index?')) return false;	var curName=form['curname'].value;	var newName=form['name'].value;	var table=form['table'].value;	var unique=(form['unique'].checked == true)?'UNIQUE ':'';	var field=[];	for (var i=0; i < form['field'].options.length; i++) {		var node='"'+form['field'].options[i].value+'"';		if (form['field'].options[i].direction == 'DESC')			node+=' DESC';		else			node+=' ASC';		field.push(node);	}	var sql='DROP INDEX "'+curName+'";\nCREATE '+unique+'INDEX "'+newName+'" ON "'+table+'" ('+(field.join(','))+');';	if (showSql) return dbShowSQL(sql);	dbExecCommand('BEGIN;'+sql+'COMMIT;', inspectorIndexNewResponse);	return false;}

⌨️ 快捷键说明

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