js访问数据库
一、js访问数据库的一般步骤:
1、 创建一个到数据库的 ADO 连接
conn = new ActiveXObject("ADODB.Connection");
2、 打开数据库连接
conn.open(ConnectionString, 'sa', 'password', -1);
3、 创建 ADO 记录集
rs = new ActiveXObject("ADODB.Recordset");
4、 从记录集提取您需要的数据
rs.Open(sql, conn); var tempstr = ""; while (!rs.EOF) { tempstr += rs.Fields("Id") + " " + rs.Fields("Name"); rs.moveNext(); //移动向下一个记录 } alert(tempstr)
5、关闭记录集
rs.close();
6、 关闭连接
conn.close();
二、ADO对象:
1、Connection
Connection 对象用于创建一个到达某个数据源的开放连接。通过此连接,您可以对一个数据库进行访问和操作。
创建
conn =new ActiveXObject("ADODB.Connection");
方法
<1>打开一个连接
conn.open(ConnectionString, UserID, Password,Options);
ConnectionString :通过传递包含一系列由分号分隔的 argument = value 语句的详细连接字符串可指定数据源。
<2>关闭一个连接
conn.close();
<3>执行查询、SQL 语句、存储过程或 provider 具体文本。
conn.Execute(CommandText, RecordsAffected, Options)
CommandText: 字符串,包含要执行的 SQL 语句、表名、存储过程或特定提供者的文本。
RecordsAffected:可选,长整型变量,提供者向其返回操作所影响的记录数目。
Options:可选,长整型值,指示提供者应如何计算 CommandText 参数,
2、Recordset
Recordset 对象用于容纳一个来自数据库表的记录集。一个 Recordset 对象由记录和列(字段)组成。
创建
rs = new ActiveXObject("ADODB.Recordset");
属性
<1>BOF
如果当前的记录位置在第一条记录之前,则返回 true,否则返回 fasle。
<2>EOF
如果当前记录的位置在最后的记录之后,则返回 true,否则返回 fasle。
<3>RecordCount
返回一个 Recordset 对象中的记录数目。
方法
<1>打开一个数据库元素
rs.open(Source, ActiveConnection, CursorType, LockType, Options);
Source :可选, Command 对象的变量名、SQL 语句、表名、存储过程调用或持久 Recordset 文件名。
ActiveConnection:可选,有效 Connection 对象变量名;或字符串,包含 ConnectionString 参数。
CursorType : 可选,CursorTypeEnum 值,确定提供者打开 Recordset 时应该使用的游标类型。
LockType : 可选。确定提供者打开 Recordset 时应该使用的锁定(并发)类型的 LockTypeEnum 值。
Options :可选,用于指示提供者如何计算 Source 参数(如果它代表的不是 Command 对象),或从以前保存 Recordset 的文件中恢复 Recordset。
<2>关闭一个 Recordset。
rs.close();
<3>把多条记录从一个 Recordset 对象中拷贝到一个二维数组中
rs.GetRows(Rows, Start, Fields)
Rows:可选,指定要检索记录数。不指定时将自动检索 Recordset 对象中的所有记录。
Start:可选,字符串或长整型,计算得到在 GetRows 操作开始处的记录的书签。
Fields :可选,代表单个字段名、顺序位置、字段名数组或顺序位置,ADO 仅返回这些字段中的数据。
<4>将 Recordset 作为字符串返回。
rs.GetString()
三、ConnectionString
包含用于建立连接数据源的信息。
ADO 支持的参数如下(任何其他参数将直接传递到提供者而不经过 ADO 处理)
Provider= |
|
File Name= |
指定包含预先设置连接信息的特定提供者的文件名称(例如,持久数据源对象)。 |
Remote Provider= |
指定打开客户端连接时使用的提供者名称。(仅限于远程数据服务) |
Remote Server= |
指定打开客户端连接时使用的服务器的路径名称。(仅限于远程数据服务) |
var ConnectionString = 'Provider=SQLOLEDB.1;Persist Security Info=True;Initial Catalog=HZYL_QZJ;Data Source=192.168.0.5;Connect Timeout=5;Use Procedure for Prepare=1';