<html>
<head>
<base target="_self">
<script language="vbscript">
class getsqlinfo
dim the_adox
Private Sub Class_Initialize
set the_adox=createobject("ADOX.Catalog")
end sub
public sub sqlserver_getactiveconnection
the_adox.ActiveConnection="Provider=sqloledb;Data Source=" & dsource & ";Initial Catalog=" & dbasename & ";User ID=" & uid & ";PWD=" & pwd & ";"
end sub
public sub access_getactiveconnection(theaccessfile)
the_adox.ActiveConnection="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & theaccessfile
end sub
public function tablename
dim a()
dim i : i=1
for each objtab in the_adox.tables
redim Preserve a(i)
a(i-1)=objtab.name
i=i+1
next
tablename=a
end function
public function getfieldinfo(thetabname)
dim a()
set thetableadox=the_adox.tables.item(thetabname)
for i=0 to thetableadox.columns.count-1
set ttt=createobject("scripting.dictionary")
redim preserve a(i+1)
' alert(thetableadox.columns.Item(i).type)
ttt.add "name",thetableadox.columns.Item(i).name
ttt.add "type",thetableadox.columns.Item(i).type
set a(i)=ttt
set ttt=nothing
next
' alert(isArray(a))
getfieldinfo=a
end function
end class
</script>
<script language="vbscript">
function chooseaccessfolder()
set getdll=createobject("getfolderd.folderd")
thefoldername=getdll.getfoldername
set getaccessurl=document.getElementById("showaccessurl")
getaccessurl.innertext=thefoldername
end function
</script>
<script language="vbscript">
dim save_info
set save_info=createobject("scripting.dictionary")
function showaccesstab
dim tabname
dim str : str=""
set theaccess_choose=document.getElementById("showaccessurl")
set theshow_accesstab=document.getElementById("showaccesstab")
theaccessfile=theaccess_choose.value
set accessclass=new getsqlinfo
call accessclass.access_getactiveconnection(theaccessfile)
str="連接串是:" & "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & theaccessfile & "<br />"
tabname=accessclass.tablename
str=str & "請選擇你要的表" & "<br />"
for i=0 to ubound(tabname)-1
str=str & "<input type='radio' name='tabnames' value='" & tabname(i) & "' />" & tabname(i) & "<br />"
next
str=str & "<a href='vbscript:showsql'>確定</a>"
theshow_accesstab.innerhtml=str
save_info.add "accessfile",accessclass
end function
function showsql
set thetabnames=document.getElementsByName("tabnames")
set theshowaccesssql=document.getElementById("showaccesssql")
for i=0 to thetabnames.length-1
if thetabnames(i).checked=true then
thetabname=thetabnames(i).value
end if
next
str="insert語句:" & accessinsertsqlstr(thetabname) & "<br />"
str=str & "update語句:" & accessupdatesqlstr(thetabname)
theshowaccesssql.innerhtml=str
end function
function judge_charnum(thefldname,thefldtype)
if thefldtype>100 then
str="'" & """" & " & " & thefldname & " & " & """" & "'"
else
str="""" & " & " & thefldname & " & " & """"
end if
judge_charnum=str
end function
function judge_charnumfinal(thefldname,thefldtype)
if thefldtype>100 then
str="'" & """" & " & " & thefldname & " & " & """" & "'" & """"
else
str="""" & " & " & thefldname
end if
judge_charnumfinal=str
end function
function accessupdatesqlstr(thetabname)
dim fieldnames
fieldnames=getfieldname(thetabname)
str="""" & "update " & thetablename & "set "
for i=0 to ubound(fieldnames)-1
if i<>ubound(fieldnames)-1 then
str=str & fieldnames(i)("name") & "=" & judge_charnum(fieldnames(i)("name"),fieldnames(i)("type"))
else
str=str & fieldnames(i)("name") & "=" & judge_charnumfinal(fieldnames(i)("name"),fieldnames(i)("type"))
end if
next
accessupdatesqlstr=str
end function
function accessinsertsqlstr(thetabname)
dim fieldnames
fieldnames=getfieldname(thetabname)
str="""" & "insert into " & thetablename & "("
for i=0 to ubound(fieldnames)-1
if i<>ubound(fieldnames)-1 then
str=str & fieldnames(i)("name") & ","
else
str=str & fieldnames(i)("name")
end if
next
str=str & ")" & " values("
for i=0 to ubound(fieldnames)-1
if i<>ubound(fieldnames)-1 then
str=str & judge_charnum(fieldnames(i)("name"),fieldnames(i)("type")) & ","
else
str=str & judge_charnum(fieldnames(i)("name"),fieldnames(i)("type"))
end if
next
str=str & ")" & """"
accessinsertsqlstr=str
end function
function getfieldname(thetabname)
dim a
'alert(thetabname)
a=save_info("accessfile").getfieldinfo(thetabname)
'alert(isArray(a))
getfieldname=a
end function
</script>
</head>
<body>
<div id="start">
選擇access數據庫:<input type='radio' name='choose_accorsql' value='access' /><br />
選擇sql數據庫:<input type='radio' name='choose_accorsql' value='sql' /><br />
</div>
<div id="writeaccesschoose">
選擇access文件:<br />
<input type="file" id="showaccessurl" />
<a href="#">上一步</a>---<a href="vbscript:showaccesstab">下一步</a>
</div>
<div id="showaccesstab">
</div>
<div id="showaccesssql">
</div>
</body>
</html>