db="sj"
set conn=Server.CreateObject("AdoDb.Connection")
conn.open "Driver={Microsoft FoxPro VFP Driver (*.dbf)};SourceType=DBF;"&"SourceDB=" & Server.MapPath("db") &";Exclusive=No"
set rs=server.createobject("adodb.recordset")
sql="select * from [bm.dbf]"
rs.open sql,conn,1,1
运用时rs.open sql,conn,1,1该行老报错
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
请问高手是什么原因啊?
------解决方案--------------------
ASP中实现从dbf数据库导出数据到sql表
说明:dbf数据库结构要与sql表一致
<%
Dim conndbf_dbf,Driver_dbf,SourceType_dbf,DBPath_dbf
dim Conn_sql ,StrCnn,i,str_dbf
dim dbf_table_name,sql_table_name
'dbf数据库名称
dbf_table_name="20005070"
'sql表名称
sql_table_name="zjls"
str_dbf=""
' 建立dbfConnection 对象
Set conn_dbf = Server.CreateObject("ADODB.Connection")
Driver_dbf = "Driver={Microsoft Visual FoXPro Driver};"
SourceType_dbf = "SourceType=DBF;"
'datadbf为dbf数据库所在目录
DBPath_dbf = "SourceDB=" & Server.MapPath( "datadbf" )
' 调用Open 方法打开数据库
conn_dbf.Open Driver_dbf & SourceType_dbf & DBPath_dbf
Set rd_dbf= Server.CreateObject("ADODB.Recordset")
' 打开DBF文件,参数二为Connection对象
rd_dbf.Open "select * from "&dbf_table_name, conn_dbf, 2, 2
'建立sqlConnection 对象
Set conn_sql = Server.CreateObject("ADODB.Connection")
'Initial Catalog为sql数据库名,Data Source为本机名
StrCnn = "Provider=sqloledb; User ID=sa; PassXP=; Initial Catalog=jz30data; Data Source=chaihua"
Conn_sql.Open StrCnn
Set CreateDbfRecordset_sql= Server.CreateObject("ADODB.Recordset")
' 打开DBF文件,参数二为Connection对象
' www.knowsky.com
rd_dbf.movefirst
Do While Not rd_dbf.Eof
'构造从DBF数据库读出的字段字符串
str_dbf=""
for i=1 to 38
str_dbf=str_dbf&",'"&rd_dbf.fields(i)&"'"
next
str_dbf="'"&rd_dbf.fields(0)&"'"&str_dbf
'插入sql表
CreateDbfRecordset_sql.Open "insert "&sql_table_name&" values("&str_dbf&")", conn_sql,2,2
rd_dbf.MoveNext
Loop
conn_sql.close
conn_dbf.close
response.write("提交XP!")
%>
作者:柴华 XP:57302017
------解决方案--------------------
明显的路径不对
db="sj"
和
Server.MapPath("sj")区别
自己看
如果你前面用
db="sj"
那么可以改成
Server.MapPath(db)