//文件名(filename) D:\mdb.js
//功能: 取一个mdb数据库所有表, 所有表和表中字段的注释,字段类型,长度. 存成一个INI文件
//运行方式
//cscript d:\mdb.js //NoLogo MDB文件名 INI文件名
//取参数
var args = WScript.Arguments;
var strMDB_FN = args(0);
var strINI_FN = args(1);
//var strMDB_FN = "d:\\1.mdb";
//var strINI_FN = "d:\\mdb.ini";
//打开INI文件.
var ForReading = 1, ForWriting = 2;
var TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile(strINI_FN, ForWriting, true, TristateTrue);
function say(s)
{
WScript.StdOut.WriteLine(s);
}
function say_file(s)
{
f.WriteLine(s);
}
say("程序正在运行,请稍候...");
var dbe = new ActiveXObject("DAO.DBEngine.36");
var db = dbe.OpenDatabase( strMDB_FN );//数据库的名字
//say("数据库打开");
var nTableCount = db.TableDefs.Count;
say_file("[table]");
for(var j = 0; j < nTableCount; j ++)
{
var tabledefine = db.TableDefs(j);//枚举表
var strTableDescription = "";
var bError = true;
try
{
strTableDescription = tabledefine.Properties("Description");
bError = false;
}
catch(err)
{
}
if(bError)
strTableDescription = "";
say_file("表名:"+ tabledefine.name + " 表说明" + strTableDescription);
}
for(j = 0; j < nTableCount; j ++)
{
var tabledefine = db.TableDefs(j);//枚举表
say_file("[" + tabledefine.name + "]");
var nFieldCount = tabledefine.Fields.Count;
for(var i = 0; i < nFieldCount ; i ++)
{
var field = tabledefine.Fields(i);//枚举字段
var strFieldName = field.name ;
var strFieldType = field.types;
var strFieldSize = field.size;
var strDescription;
var bError = true;
try//如果字段说明为空, Properties("Description")会出错. 所以用try-catch, 否则程序会中断
{
strDescription = field.Properties("Description");//字段说明
bError = false;
}
catch(err)
{
}
if(bError)
strDescription = "";
say_file( "字段名:" + strFieldName + " 说明:" + strDescription + " 类型:" + strFieldType + " 长度:" + strFieldSize);
}
}
db.Close();
浙公网安备 33010602011771号