|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
mysqld进程在一个写入当中被杀死;计算机的意外关闭(例如,如果计算机掉电);一个硬件错误。excel|会见|数据Excel2000作为一个电子表格软件,它不但有壮大的数据处置才能,并且它的报表功效也是非常壮大。因此经常用Excel2000往挪用Access、SQLServer、Oracle、DB2等数据库软件创建的年夜型数据库的内容。用户能够在事情表中对这些数据举行选择、排序、查询、编纂和打印报表,非常便利,这也是年夜多半人都熟习的。但怎样往挪用这数据呢?自己在这里供应4种办法。
上面四种办法必需要先创立一个数据源,我们以SQLServer7.0内的样本数据库pubs为例。在把持面板/ODBC数据源/体系DSN,单击增添按纽,拔取SQLServer驱动程序,创建一个与pubs数据库毗连的叫pubs称号数据源。
办法一:
在Excel2000中,选择数据/猎取内部数据/新建数据库查询,然后按导游的提醒一步一步做,最初将数据前往Excel2000中就好了
这类办法是人人经常使用的,也是最便利的。但这类办法只能对远程数据举行查询,不克不及对远程数据举行增添和修正。
办法二:
这类办法必要VBA编程(办法3、办法四也一样),在VisualBasic编程中,我们常常用ADO来会见数据。ADO是Microsoft供应的针对林林总总数据源的新型初级编程接口。它撑持年夜多半据库操纵,在Excel2000中使用ADO来会见数据,是非常幻想的办法。看看上面一个实例:
Subopendb()
DimcnAsADODB.Connection
DimrsAsADODB.Recordset
Setcn=NewADODB.Connection
Setrs=NewADODB.Recordset
cn.Open"Provider=MSDASQL.1;PersistSecurityInfo=False;DataSource=pubs"
rs.Open"select*fromauthors",cn
Range("a1").CopyFromRecordsetrs
Rs.close
cn.Close
EndSub
宏中第1、二句界说了一个ADO的Connection工具和一个Recordset工具,第3、四句创立了一个ADO的Connection工具和一个Recordset工具。第五句毗连到后面我们创建的数据源pubs数据库。第六句是ADO的Recordset工具实行一条SQL里select语句。在这也能够实行insert,update等等SQL语句的。第七句是将rs里的纪录前往以后内外。第8、九句是封闭毗连。运转前要在Excel2000工具/援用中援用ADO的库文件。
在Excel2000中使用ADO工具,不但能够对数据库举行查询,并且能够作增添,修正数据库的纪录,乃至能够挪用SQLSERVER7.0的存储历程,增强Excel2000对数据库处置才能。
办法三:
Excel2000的功效是非常壮大的,它自带了一个ODBC加载宏,我们在Excel2000中援用这个宏文件xlodbc.xla,就能够经由过程上面的办法往会见我们创建的数据源了
Subopendb()
Dimidasinteger
id=SQLOpen(“DSN=pubs”)
SQLExecQueryid,“select*fromauthors”
Setoutput=Worksheets("Sheet1").Range("A1")
SQLRetrieveid,output,,,
TrueSQLCloseid
Endsub
第二句是挪用xlodbc.xla宏中的SQLOpen函数创建一个对数据库pubs毗连,第三句是SQLExecQuery函数实行了一条select语句,id是由SQLOpen函数前往的独一毗连标识,第四句是SQLRetrieve函数将SQLExecQuery函数实行的查询的了局前往到Excel2000中。
这类编程办法能够说来的简单,用得便利。也是一种好的会见远程数据办法。
办法四:
这类办法是利用API办法,上面是一个实例
分派情况句柄
res=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HENV,hEnv)
设置情况属性
res=SQLSetEnvAttr(hEnv,SQL_ATTR_ODBC_VERSION,SQL_OV_ODBC3,0)
分派数据库毗连句柄
res=SQLAllocHandle(SQL_HANDLE_DBC,hEnv,hSvr)
毗连到数据源
sConnect=“DSN=pubs;DATABASE=pubs“
res=SQLDriverConnect(hSvr,ByVal,0&,sConnect,Len(sConnect),sConnOut,Len(sConnOut),_nConnOutLen,0)
sSql=“select*fromauthors“
res=SQLExecDirect(hSel,sSql,Len(sSql))
将纪录前往以后内外
res=SQLNumResultCols(hSel,Nc)
DoWhile(SQLFetch(hSel)SQL_NO_DATA_FOUND)
J=j+1
FORI=1TONc
res=SQLGetData(hSel,I,SQL_C_CHAR,tmp,512,pl)
Cells(j,i)=tmp
NextI
Loop
开释数据库毗连句柄
res=SQLAllocHandle(SQL_HANDLE_STMT,hSvr,hSel)
开释数据库毗连句柄
ret=SQLFreeHandle(SQL_HANDLE_ENV,hEnv)
这类办法对照庞大,调试也对照坚苦,但运转速率快,在举行大批查询数据和本人在API挪用方面对照熟时,能够用这个办法。在用下面的实例时,要做API声明和常量的界说。刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、root帐户设置密码 |
|