adodb常用函数
VB常用函数表
ASP纯ASPVBscript常用函数:1.数值型函数:abs(num): 返回绝对值sgn(num): num>0 1; num=0 0; num<0 -1;判断数值正负hex(num): 返回十六进制值直接表示:&Hxx 最大8位oct(num): 返回八进制值直接表示:&Oxx 最大8位sqr(num): 返回平方根num>0int(num): 取整int(99.8)=99; int(-99.2)=100fix(num): 取整fix(99.8)=99; fix(-99.2)=99round(num,n): 四舍五入取小数位round(3.14159,3)=3.142 中点数值四舍五入为近偶取整round(3.25,1)=3.2log(num): 取以e为底的对数num>0exp(n): 取e的n次幂通常用num^nsin(num): 三角函数,以弧度为值计算(角度*Pai)/180=弧度con(num); tan(num); atn(num) 2.字符串函数:len(str):计算字符串长度中文字符长度也计为一!mid(str,起始字符,[读取长度]):截取字符串中间子字符串left(str,nlen):从左边起截取nlen长度子字符串right(str,nlen):从右边起截取nlen长度子字符串Lcase(str):字符串转成小写Ucase(str):字符串转成大写trim(str):去除字符串两端空格Ltrim(str):去除字符串左侧空格Rtrim(str):去除字符串右侧空格replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串注:默认值:起始字符1;替代次数不限;比较方法区分大小写(0)InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串可选参数需同时选返回起始位置InStrRev(str,查找字符串[,起始字符][,比较方法]):反向检测是否包含子字符串返回起始位置space(n):构造n个空格的字符串string(n,str):构造由n个str第一个字符组成的字符串StrReverse(str):反转字符串split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组可选参数需同时选3.数据类型转换函数:Cint(str):转换正数True -1;False 0;日期距离1899/12/31天数;时间上午段0;下午段1;Cstr(str):日期输出格式yyyy/mm/dd;时间输出格式Am/Pm hh:mm:ssClng(str):与Cin()类似Cbool(num):num不为零True;反之FalseCdate(str):转换日期格式0:#Am 12:00:00#;正数距离1899/12/31天数的日期;浮点数日期+小数时间Cbyte(num):num<255 转换为字节Csng(str):转换为单精度数值Cdbl(str):转换为双精度数值Ccur(str):转换为现金格式4.时间函数:date:取系统当前日期time:取系统当前时间now:取系统当前时间及日期值Datetime类型timer:取当前时间距离零点秒值,计时器,可计算时间差DateAdd(间隔单位,间隔值,日期):推算相邻日期DateDiff(间隔单位,日期一,日期二):计算时间差日期二-日期一Datepart(间隔单位,日期):计算日期的间隔单位值Dateserial(date):输出日期值(按序列计算)Timeserial(time):输出时间值(按序列计算)DateValue(datetime):取出字符串中日期值Timevalue(datetime):取出字符串中时间值weekday(date):计算星期几MonthName(date):输出月分名year(datetime):截取年份month(datetime):截取月份day(datetime):截取日hour(datetime):截取小时minute(datetime):截取分钟second(datetime):截取秒5.其它函数:Array(unit,..):动态生成数组Asc(str):输出字符串第一个字符的ASCII码Chr(asc):转换ASCII为字符Enter:Chr(13)&Chr(10)Filter(数组名称,关键字符串,[,包含][,比较方法]):将字符串数组中含有关键字符串的元素存成新的数组(默认)[包含]为false则取不包含的元素Join(ArrayName):将数组中元素连成字符串Ubound(ArrayName[,维数]):取得数组相应维数的上界Lbound(ArrayName[,维数]):取得数组相应维数的下界一般为0Randmize n:启动随机数种子Rnd(n):取得随机数,n>0或为空,取序列下一随机值,n<0,随机值相同,n=0,生产与上一随机值相同的数取介于A和B之间的随机正数C,公式:C=Int((B-A+1)*Rnd+A) 条件(B>A)子程序和自定义函数Sub StrSubName Function StrFunName(arg[1],..)子程序体函数体Exit Sub 中途跳出Exit Function 中途跳出End Sub StrFunName=Value 返回值End Function[call] StrSubName 引用子程序Var=StrFunName(arg[1],..) 引用函数子程序和自定义函数可以递归调用;ASP六大对象常用语句示范:Response:Response.write StrVar/"String":向网页写出参数值或字符串等同于在Html标记中嵌入<%=StrVar/"String"%>Response.End:停止页面编译,并将已经编译内容输出到浏览器Response.Buffer=True|False:页面编译时是否使用缓存的设置,一般在页面头部设置Response.Flush:强制输出页面已编译部分内容Response.Clear:将缓冲区内的数据清除Response.Redirect URL:停止页面编译或输出,转载指定所需页面Response.IsClientConnected:返回True|False,检测用户是否还处于连接状态Response.Charset(CharsetName):设置页面编码类型,即<meta http-equiv="Content-Type" content="text/html; charset=gb2312">Response.ContentType [= ContentType ]:设置页面文件类型,同上Response.Expires [= number]:设置页面失效时间,单位分钟Response.ExpiresAbsolute [= [date] [time]]:设置页面失效的绝对时间Response.Status = StatusDescription:设置页面状态描述Request:Request("PassStrName"):读取网页传递值,包括表单及以?PassStrName=value&PassStrName_n=value_n形式Request[.collection|property|method](variable)Request.querystring("PassStrName"):读取Get方法传递的表单值和?PassStrName=value Request.QueryString(Varible)[(Index).Count]Request.form("PassStrName"):读取Post方法传递的纯表单域的值Request.Form(Parameter)[(Index).Count]Request.ServerVaribles(Server Environment Variable):读取客户端系统环境变量,详见参考Request.BinaryRead(Count):读取指定字节数的传送值Request.TotalBytes:查询体的长度,以字节为单位,只读注:同名表单如:CheckBox如有多项值,传递形式如右,StrName=value1,value2,...需要用Split函数分割各项值Multiple的Select表单与CheckBox类似,TextArea的值可包含换行字符,用Replace转为<br>,以满足格式需要Session:(用户全局变量)Session("SesName")=value:存储Session变量值,也可读取该值Session("SesName")=Empty:判断Session值是否存在的两种方法IsEmpty(Session("SesName"))=True|False:判断Session值是否存在的两种方法Session.TimeOut=num:设置Session变量的存在时效,单位分钟Session.Abandon:清除所有Session变量值Session.SessionID:Session变量的ID序列号,只读Application:(应用程序全局变量)Application("AppName")=value:存储Application变量值,也可读取该值Application("AppName")=Empty:判断Application值是否存在的两种方法IsEmpty(Application("AppName"))=True|False:判断Application值是否存在的两种方法Application.Lock:Application变量值锁定,防止同时更改变量值Application.UnLock:Application变量值解锁,允许更改变量值注:Session与Application变量都可以用来存储数组和系统对象,引用方法是变量名相当于数组名而已,但不能直接改变其值,需要借助临时数组修改值后,再赋给Session与Application变量Global.asa文件的结构:<% @language="VBscript"%><% Sub Application_OnStart ...End SubSub Application_OnEnd ... End SubSub Session_OnStart ...End SubSub Session_OnEnd ... End Sub%>Server:Server.MapPath("FileUrl"):映射文件名的服务器站点绝对地址,Path=Server.MapPath(./)可以得到虚拟目录根路径Server.HtmlEncode("string"):转换为可以直接显示带Html格式的字符串,如:<,>等Server.URLEncode( "string"):转换为浏览器地址编码set Var=Server.CreatObject("ObjName"):创建对象变量Server.ScriptTimeout = NumSeconds:ASP程序页面执行时限,以秒为单位Cookies: 存储在用户本机的临时变量,每个Cookie的最大字节4KB,最多可以有300个Cookie 1.2MBResponse.cookies("StrCookieName")=value:存储Cookie变量值,也可读取该值Response.cookies("StrCookieName")="":判断是否为空Response.cookies("StrCookieName").Expires=Date:变量有效期,以天为单位,小于当前时间立即失效Response.Cookies(Cookie[(key).Attribute]):标准语法ObjectContext 控制ASP的事务处理ObjectContext.OnTransactionAbort:由放弃的事务处理事件激发,在脚本完成处理后发生ObjectContext.OnTransactionCommit:由成功的事务处理事件激发,在脚本完成处理后发生ObjectContext.SetAbort:显式的放弃一次事务处理ObjectContext.SetComplete:覆盖前面任何调用ObjectContext.SetAbort方法的调用Msgbox "string"/StrName:VBscript提示框表单的Onsubmit事件:在同一页面写入FunctionFormName_onsubmit()..FormName_onsubmit=True/False..end Function,页面会在提交前先执行语句,并根据返回值判断是否完成提交任务。
PHP ADODB使用说明书
就这样,你安装好了。
启动 ADODB
当要执行 ADODB 时,至少有两个档案要被载进来,第一个是 ADOdb.inc.php ,这里 面包含了所有资料库类中要被使用的函数。而对资料库实作的程式码则被置放在 ADOdb-????.inc.php 档案里。 例如说,要连结一个 mysql 资料库:
include('/path/to/set/here/ADOdb.inc.php'); $conn = &ADONewConnection('mysql');
•
rs2html 公用函式说明 范例
简介
由於 PHP 的资料库存取函数没有标准化, 所以我们需要一组函数库或是类别来隐藏不同 资料库函数介面间的差异,让我们可以很简单的去切换资料库,而这,就是 ADODB 的 目的。 ADODB 目前支援 MySQL, Oracle, Microsoft SQL Server, Sybase, Sybase SQL Anywhere, Informix, PostgreSQL, FrontBase, Interbase (Firebird 及 Borland 版本), Foxpro, Access, ADO 和 ODBC。ADODB 也有透过 ODBC 成功连结 Progress 及 DB2 的报告,我们希望能有更的人提供驱动介面来支援更多的资料库。 PHP4 支援连结变数(session variables),使用者可以透过 ADODB 储存连结资讯,以达 成真正的可携性及弹性,相关的用法及资讯请自行叁考 ADOdb-session.php 这个范例。 另外,如果要撰写一个具有高度可移植性的 SQL 码,也可以叁阅 /portable_sql 这篇文章。
ODBC函数讲解
ODBC 函数本节列出了ODBC 支持的标量函数。
您的数据库系统可能不全部支持这些函数。
请参见您的数据库系统的文档,了解支持哪些函数。
可以用下面的语法在SQL 语句中使用这些函数:{fn scalar-function}其中scalar-function 是下列各表中列出的函数之一。
例如:SELECT {fn UCASE(NAME)} FROM EMP字符串函数下表列出了ODBC 支持的字符串函数。
列出的字符串函数可使用下列参数:•string_exp 可以是列名、文字字符串或另一个标量函数的结果,其中基础数据类型为SQL_CHAR、SQL_VARCHAR 或SQL_LONGVARCHAR。
•start、length 和count 可以是另一标量函数的结果或是文字数字值,其中基础数据类型为SQL_TINYINT、SQL_SMALLINT 或SQL_INTEGER。
字符串函数是基于 1 的;也就是说,字符串的第一个字符为1。
字符串文字必须括在单引号内。
功能返回值ASCII(string_exp) string_exp最左边字符的ASCII 代码值,为整数。
BIT_LENGTH(string_exp) 字符串表达式的长度,以位为单位。
CHAR(code) code指定的ASCII 代码值代表的字符。
code应在0 到255 之间,否则返回值将取决于数据源。
CHAR_LENGTH(string_exp) 如果字符串表达式为字符数据类型,则以字符为单位返回字符串表达式的长度;否则,以字节为单位返回字符串表达式的长数字函数下表列出了ODBC 支持的数字函数。
列出的数字函数可使用下列参数:•numeric_exp可以是列名、数字文字或其它标量函数的结果,其中基础数据类型为SQL_NUMERIC、SQL_DECIMAL、SQL_TINYINT、SQL_SMALLINT、SQL_INTEGER、SQL_BIGINT、SQL_FLOAT、SQL_REAL 或SQL_DOUBLE。
VB使用ADODB操作数据库的常用方法
VB使用ADODB操作数据库的常用方法在 VB 中,可以使用 ADODB (ActiveX Data Objects) 对象来操作数据库。
ADODB 提供了各种对象和方法,以便于连接到数据库,执行查询和更新操作。
以下是VB使用ADODB对象操作数据库的常用方法:1.引用ADODB对象库在 VB 项目中,首先需要引用 ADODB 对象库。
在菜单栏选择 "项目",然后选择 "引用"。
在引用对话框中,勾选 "Microsoft ActiveX Data Objects x.x Library",然后点击确定。
2. 创建 Connection 对象Connection 对象用于建立与数据库的连接。
可以使用以下代码创建Connection 对象:```Dim conn As New ADODB.Connectionconn.Provider = "Microsoft.ACE.OLEDB.12.0" ' 数据库提供程序conn.ConnectionString = "Data Source=<数据库路径>;Persist Security Info=False;" ' 数据库连接字符串conn.Open ' 打开数据库连接```3. 创建 Recordset 对象Recordset 对象用于保存数据库查询结果。
可以使用以下代码创建Recordset 对象:```Dim rs As New ADODB.Recordset```4.执行查询操作可以使用 Connection 对象的 Execute 方法执行 SQL 查询语句,并将结果保存到 Recordset 对象中。
以下是一个例子:```rs.Open "SELECT * FROM <表名>", conn```可以使用 rs 对象的 MoveNext 和 EOF 属性来遍历查询结果:```Do While Not rs.EOF'处理每一行数据rs.MoveNextLoop```5.执行更新操作可以使用 Connection 对象的 Execute 方法执行 SQL 更新语句,例如插入、修改或删除数据。
vba adodb 语法
vba adodb 语法VBA ADODB语法ADODB(ActiveX Data Objects Database)是一种用于访问数据库的对象模型,它是Microsoft开发的一套数据访问技术。
VBA (Visual Basic for Applications)是一种用于自动化任务的编程语言,常用于Microsoft Office软件中。
在VBA中,可以使用ADODB来连接数据库、执行SQL语句以及获取和处理数据库中的数据。
ADODB的语法包括连接数据库、执行SQL语句、处理数据等多个方面。
连接数据库:在VBA中,要连接数据库,可以使用ADODB.Connection对象。
首先需要创建一个Connection对象,然后设置连接字符串,指定数据库类型、服务器地址、用户名和密码等信息。
通过Open方法可以打开数据库连接,使用Close方法可以关闭连接。
执行SQL语句:在连接数据库后,可以使用mand对象执行SQL语句。
首先需要创建一个Command对象,然后设置CommandText属性为要执行的SQL语句。
通过Execute方法可以执行SQL语句,使用Recordset对象可以获取查询结果。
处理数据:在获取查询结果后,可以使用ADODB.Recordset对象来处理数据。
Recordset对象提供了多个方法和属性,用于操作数据集。
可以使用MoveFirst方法将记录指针移动到第一条记录,使用MoveNext方法将记录指针移动到下一条记录,使用EOF属性判断是否已到达记录集的末尾。
还可以使用Fields属性获取记录集中的字段,使用AddNew方法和Update方法插入和更新数据。
除了连接数据库、执行SQL语句和处理数据,ADODB还提供了其他一些功能。
例如,可以使用ADODB.Parameter对象设置SQL语句中的参数,以防止SQL注入攻击。
还可以使用ADODB.Error对象处理数据库操作中的错误。
MySqlAdoDB基本的函数
MySqlAdoDB基本的函数mysql adodb基本的函数1.GetAll方法我们可以使用GetAll方法代替Execute()方法,该方法返回的结果为一个二维关联数据,这样可以使用foreach或for循环语句处理,非常方便。
另外,GetAll取得的数组与Smarty模板的foreach配合得非常好。
我们一起看下面的脚本例子:<?phpinclude_once("libs/adodb/adodb.inc.php");// 创建一个mysql连接实例对象$db = NewADOConnection("mysql");// 打开一个数据库连接$db->Connect("localhost", "root", "root", "library") or die("Unable to connect");// 构造并执行一个查询$query = "SELECT * FROM library";$result = $db->GetAll($query) or die("Error in query: $query. " . $db->ErrorMsg());// 清除无用的对象$db->Close();// 可以使用print_r打印该数组的内容// print_r($result); exit(0);// 遍历记录集,显示列的内容:TITLE 和AUTHORforeach ($result as $row){echo $row[1] . " - " . $row[2] . "\n";}// 取得和显示返回的记录行数echo "\n[" . sizeof($result) . " 行记录被返回]\n";>GetAll()方法取得记录集后,产生一个二维数组,类似于下面的样子:Array([0] => Array([0] => 14[id] => 14[1] => Mystic River[title] => Mystic River[2] => Dennis Lehane[author] => Dennis Lehane)[1] => Array([0] => 15[id] => 15[1] => For Kicks[title] => For Kicks[2] => Dick Francis[author] => Dick Francis)//下略)我们在数组一章,提到过这类混合数组最适合用foreach来处理。
ADODB手册
英文原版位置:/lens/adodb/tute.htmADODB入门手册:从MySQL向ADODB转移You say eether and I say eyether,You say neether and I say nyther;Eether, eyether, neether, nyther -Let's call the whole thing off !You like potato and I like po-tah-to,You like tomato and I like to-mah-to;Potato, po-tah-to, tomato, to-mah-to -Let's call the whole thing off !我喜欢听这首歌,尤其是由Louis Armstrong 和 Ella 演唱的二重唱版本。
这首歌完整地表达了即使是相爱的两个男女,他们彼此适应同样是多么地艰难。
这是一个妥协和寻找共通之道的过程。
这篇文章的意义也正在于此。
PHP能用最少的功夫和最多的乐趣来创建动态网站。
为了创建这样的网站,我们需要使用数据库检索登录信息,在网页上显示动态新闻,存储论坛稿件。
就以使用最通用的MySQL数据库来说,你们公司已经完成了如此神奇的工作,让你们的网站比你们所能想象的还有出名。
接着你们也发现MySQL无法应付实际的工作量,是该更换数据库的时候了。
不幸的是,在PHP中不同数据库的存取有微小的不同。
连接MySQL,你要使用mysql_connect()函数,当你决定升级到Oracle或Microsoft SQL Server时,你必须分别使用ocilogon()函数或mssql_connect()函数来连接。
更糟糕的是不同连接所使用的参数也都不一样,有的数据库说po-tato(马铃薯的发音),别的数据库有说pota-to(马铃薯的一种发音)。
喔...天啊。
我们不要放弃当你需要确保你的程序的可移植性时,一个叫做ADODB的数据库封装程序库出现了。
ADODB连接数据库的常用控件
'rs.Open Sql, conn, 1, 3 '后面的3是确定读写权限的
'以下参数代表了这个可选值的含义
'1 = adLockReadOnly (默认值)只读 — 不能改变数据。
'2 = adLockPessimistic 保守式锁定(逐个) — 在编辑时立即锁定数据源的记录。
Dim rs As ADODB.Recordset '创建一个 Recordset 实例,不使用New 是因为,经常需要重复使用Set,因此没必要在这里使用
Dim CnStr As String, Sql As String '创建两个字符串变量分别存放两个集合的SQL语句代码段
1、装载数据库(不属于Recordset集合)
'2)连接Oracle数据库:
'-------------------
CnStr = "PROVIDER=MSDAORA.1;Password=" & DbPw & ";User ID=" & DbUser & ";Data Source=" & FileName & ";Persist Security Info=True"
";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;"
'4)连接SQL的数据库
'------------------
CnStr = "PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;uid=" & DbUser & ";pwd=" & DbPw & ";DRIVER=SQL Server;DATABASE=" & DbName & ";WSID=GQSOFT;SERVER=" &
vbaadodb查询结果集结构
vbaadodb查询结果集结构【原创实用版】目录1.VBA 中的 ADODB 对象2.ADODB 查询结果集的结构3.解析 ADODB 查询结果集结构正文在 VBA(Visual Basic for Applications)编程中,ADODB(ActiveX Data Objects)库被广泛应用于数据库操作。
ADODB 提供了一组功能强大的对象,可以实现对各种数据库的连接、查询、更新等操作。
本篇文章主要介绍 ADODB 查询结果集结构及其相关知识。
一、VBA 中的 ADODB 对象ADODB 库包含了许多实用的对象,如 Connection 对象、Recordset 对象、Field 对象等。
这些对象分别用于实现数据库的连接、查询结果集、字段信息等功能。
在 VBA 编程中,我们可以通过创建相应的 ADODB 对象来实现对数据库的操作。
二、ADODB 查询结果集的结构在 ADODB 中,查询结果集由 Recordset 对象表示。
Recordset 对象包含若干个字段(Field 对象)和记录(Record 对象)。
每个字段表示查询结果集中的一列,每个记录表示查询结果集中的一行。
下面详细介绍Recordset 对象的结构。
1.Recordset 对象的属性- Count:表示查询结果集中的记录数。
- EOF:表示当前记录指针是否处于文件末尾。
-BOF:表示当前记录指针是否处于文件开头。
- AbsolutePosition:表示当前记录指针在查询结果集中的绝对位置。
- Position:表示当前记录指针在查询结果集中的相对位置。
2.Recordset 对象的方法- Open(Recordset 对象,SQL 语句):打开查询结果集。
- Close(Recordset 对象):关闭查询结果集。
- MoveFirst(Recordset 对象):将记录指针移动到查询结果集的第一行。
- MoveLast(Recordset 对象):将记录指针移动到查询结果集的最后一行。
PHP ADODB的使用
运行结果如下所示。
<hr /> (mysql): SELECT * FROM mytable <hr /> Array ( [0] => Array
·382· ( [0] => 100001 [serial_no] => 100001 [1] => Simon [name] => Simon [2] => 24 [age] => 24 [3] => 1982-11-06 [birthday] => 1982-11-06 [4] => 5000.00 [salary] => 5000.00 [5] => 1000.00 [bonus] => 1000.00 ) [1] => Array ( [0] => 100002 [serial_no] => 100002 [1] => Elaine [name] => Elaine [2] => 24 [age] => 24 [3] => 1982-01-01 [birthday] => 1982-01-01 [4] => 5000.00 [salary] => 5000.00 [5] => 1000.00 [bonus] => 1000.00 ) [2] => Array ( [0] => 100003 [serial_no] => 100003 [1] => Susan [name] => Susan [2] => 31 [age] => 31 [3] => 1975-01-01 [birthday] => 1975-01-01 [4] => 9000.00 [salary] => 9000.00 [5] => 2000.00 [bonus] => 2000.00 ) )
adodb.recordset.open(rs.open)方法参数详解
adodb.recordset.open(rs.open)⽅法参数详解ADO Recordset 对象ADO Recordset 对象⽤于容纳⼀个来⾃数据库表的记录集。
⼀个 Recordset 对象由记录和列(字段)组成。
在 ADO 中,此对象是最重要且最常⽤于对数据库的数据进⾏操作的对象。
ProgIDset objRecordset=Server.CreateObject("ADODB.recordset")当您⾸次打开⼀个 Recordset 时,当前记录指针将指向第⼀个记录,同时 BOF 和 EOF 属性为 False。
如果没有记录,BOF 和 EOF 属性为 True。
Recordset 对象能够⽀持两种更新类型:⽴即更新 - ⼀旦调⽤ Update ⽅法,所有更改被⽴即写⼊数据库。
批更新 - provider 将缓存多个更改,然后使⽤ UpdateBatch ⽅法把这些更改传送到数据库。
在 ADO,定义了 4 中不同的游标(指针)类型:•动态游标 - 允许您查看其他⽤户所作的添加、更改和删除•键集游标 - 类似动态游标,不同的是您⽆法查看有其他⽤户所做的添加,并且它会防⽌您访问其他⽤户已删除的记录。
其他⽤户所做的数据更改仍然是可见的。
•静态游标 - 提供记录集的静态副本,可⽤来查找数据或⽣成报告。
此外,由其他⽤户所做的添加、更改和删除将是不可见的。
当您打开⼀个客户端 Recordset 对象时,这是唯⼀被允许的游标类型。
•仅向前游标 - 只允许在 Recordset 中向前滚动。
此外,由其他⽤户所做的添加、更改和删除将是不可见的。
可通过 CursorType 属性或 Open ⽅法中的 CursorType 参数来设置游标的类型。
注释:并⾮所有的提供者(providers)⽀持 Recordset 对象的所有⽅法和属性。
想了解更多ADO Recordset 对象的朋友可以到查看更多内容。
VBA中的数据库操作技巧和函数介绍
VBA中的数据库操作技巧和函数介绍数据库操作在许多应用程序中起着至关重要的作用,其中VBA(Visual Basic for Applications)是一种强大的编程语言,可用于在Microsoft Office应用程序中操作数据库。
在本文中,我们将探讨一些VBA中的数据库操作技巧和函数,以帮助您更好地理解和运用这些功能。
一、连接数据库在VBA中,使用ADODB(ActiveX Data Objects Database)对象来连接数据库。
首先,需要添加对“Microsoft ActiveX Data Objects x.x Library”(x.x表示版本号)的引用。
然后,使用以下代码连接数据库:```vbaDim conn As New ADODB.Connectionconn.ConnectionString ="Provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:\myDatabase.accdb;" ' 数据库连接字符串conn.Open在连接字符串中,根据您使用的数据库类型和位置进行相应的修改。
二、执行SQL查询执行SQL查询是数据库操作的常见需求。
VBA中可使用ADODB.Recordset对象来执行查询,并使用ResultSet 来存储查询结果。
以下是一个示例代码:```vbaDim rs As New ADODB.RecordsetDim sql As Stringsql = "SELECT * FROM Customers" ' 查询语句rs.Open sql, conn' 遍历查询结果Do Until rs.EOFDebug.Print rs("CustomerName")rs.MoveNextrs.Close```在这个示例中,我们查询了名为"Customers"的表中的所有数据,并打印了每个客户的名称。
adodb对象
Connection对象介绍Connection对象支持许多属性,可以利用这些属性来操作当前的连接状态或者获取一些基本的Connection对象的信息.有一些属性是只读的,而另一些属性是可读写的.1.Attributes属性Attributes属性设置或返回一个整型值,它用来指示对象的一项或多项特性.对于Connection对象,Attributes属性为读/写,并且其值可能为以下任意一个或多个XactAttributeEnum值的和(默认为零).▲AdXactCommitRetaining:执行保留的提交,即通过自动调用CommitTrans启动新事务。
并非所有提供者都支持该常量。
▲AdXactAbortRetaining:执行保留的中上,即通过自动调用RollbackTrans启动新事务。
并非所有提供者都支持该常量。
mandTimeout属性CommandTimeout属性设置或返回长整型值,该值指示等待命令执行的时间(单位为秒)。
默许值为30,指示在终止尝试和产生错误之前执行命令期间需要等待的时间。
使用Connection对象或Command上的CommandTimeout属性,允许由于网络拥塞或服务器负载过重产生的延迟而取消Execute方法调用。
如果在CommandTimeout属性中设置的时间间隔内没有完成命令执行,将产生错误,然后ADO将取消该命令。
如果将该属性设置为零,ADO将无限期等待直到命令执行完毕。
3.ConnectionString属性ConnectionString属性设置或返回字符串值,这个字符串值包含用来建立到数据源的连接的信息.使用ConnectionString属性,通过传递包含一系列由分号分隔的argument=value语句的详细连接字符串可指定数据源。
ADO支持ConnectionString 属性的四个参数,任何其他参数将直接传递到提供者而不经过ADO处理。
vbs 调用 adodb 说明
vbs 调用 adodb 说明以vbs调用adodbADODB(ActiveX Data Objects Database)是一组用于访问数据库的组件,可以通过VBScript(VBS)编程语言来调用。
在这篇文章中,我们将介绍如何使用VBS调用ADODB,并提供一些例子来说明其用法。
我们需要在VBS脚本中导入ADODB组件。
可以使用CreateObject函数来创建一个ADODB对象。
例如,以下代码将创建一个名为conn的ADODB.Connection对象:```Set conn = CreateObject("ADODB.Connection")```接下来,我们需要设置ADODB.Connection对象的连接字符串,以指定要连接的数据库。
连接字符串包括数据库的类型、位置、用户名和密码等信息。
例如,以下代码将连接到一个名为"mydatabase"的SQL Server数据库:```conn.ConnectionString = "Provider=SQLOLEDB;Data Source=myserver;Initial Catalog=mydatabase;User Id=myusername;Password=mypassword;"然后,我们需要使用ADODB.Connection对象的Open方法打开数据库连接:```conn.Open```现在,我们可以执行SQL查询语句并获取结果。
例如,以下代码将执行一个SELECT语句,并将结果存储在名为rs的ADODB.Recordset对象中:```Set rs = conn.Execute("SELECT * FROM mytable")```我们可以使用ADODB.Recordset对象的各种方法和属性来处理查询结果。
例如,以下代码将遍历rs中的每一行,并输出每行的某个字段的值:```Do Until rs.EOFWScript.Echo rs.Fields("fieldname").Valuers.MoveNext```当我们完成对数据库的操作后,需要关闭数据库连接和释放资源。
ado操作各类数据库
用ado操作各类数据库一、用程序如何控制数据库关系型数据库实际上是一个包含了若干个二维记录集(表)的数据集合。
用程序控制数据库的过程,实际上就是通过一个连接到数据库的指针,然后访问其中某一个二维记录集(表),从而进一步访问此记录集(表)的某个(些)数据,或者对此记录集(表)进行各种操作的过程。
用示意图表示,就是:图1-1 用程序操作数据库过程下面分类进行说明。
二、用ado操作access在程序中用ado操作数据库,根据实现的方法不同,大抵可以分为两类:●完全由代码实现;●使用数据库相关的控件来实现。
下面分别说明。
2.1完全由代码操作数据库的步骤完全由代码实现的、用ado操作任何一种数据库,一般来说都要经过以下步骤:●引入ado引擎,即把下面的语句添加到程序文件的头部:#import "C:\Program Files\Common Files\System\ADO\msado15.dll" rename_namespace("ADOCG") rename("EOF", "adoEOF")using namespace ADOCG;●在程序中定义几个数据库类型的变量,例如:_ConnectionPtr pCnn; // 定义一个到数据库的连接指针,必须_RecordsetPtr pRec; // 定义一个指向记录集(表)的指针,必须FieldsPtr pFlds; // 定义一个指向字段的指针FieldPtr pFld; // 定义一个指向字段值的指针HRESULT hRes; // 创建数据库连接时返回的句柄,用于判断是否连接成功●程序开始处调用CoUninitialize()函数,进行COM初始化调用:if FAILED(CoInitialize(NULL)){CoUninitialize();}●创建Connection的对象,使用如下语句:hRes = pCnn.CreateInstance("ADODB.Connection");●判断Connection的对象创建是否成功,如果成功,则打开数据库,代码如下:if( SUCCEEDED(hRes) ){// 连接数据库hRes = pCnn->Open( sUsrConStr, // 连接字符串"","",adModeUnknown);cout<<"数据库连接成功!"<<endl<<endl;}else{cout<<"数据库连接失败!"<<endl<<endl;return;}其中sUsrConStr是连接字符串,用来区分所连接的数据库类型。
VB使用ADODB操作数据库的常用方法
VB使用ADODB操作数据库的常用方法在Visual Basic(VB)中,我们可以使用ADODB (ActiveX Data Objects)来操作数据库。
ADODB提供了一套用于连接和访问数据库的对象和方法。
下面是VB中使用ADODB操作数据库的常用方法:1.ADODB连接数据库:- 创建一个ADODB连接对象:使用`Dim conn As NewADODB.Connection`。
- 设置连接字符串:使用`conn.ConnectionString ="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\path\mydatabase.mdb"`,其中Data Source为数据库文件的路径。
- 打开连接:使用`conn.Open`。
2.ADODB执行SQL查询:-设置命令对象的属性:- `cmd.ActiveConnection = conn`:设置命令对象的连接。
- 执行查询并返回结果集:使用`Dim rs As ADODB.Recordset = cmd.Execute`。
- 循环遍历结果集:使用`Do While Not rs.EOF`和`rs.MoveNext`来遍历结果集的每一行。
- 获取查询结果:使用`rs.Fields("fieldname").Value`来获取特定字段的值。
3.ADODB执行SQL更新:-设置命令对象的属性:- `cmd.ActiveConnection = conn`:设置命令对象的连接。
- 执行更新:使用`cmd.Execute`来执行更新语句。
4.ADODB事务管理:- 开始事务:使用`conn.BeginTrans`来开始一个事务。
- 回滚事务:使用`conn.RollbackTrans`来回滚事务。
5.ADODB断开连接:- 关闭连接:使用`conn.Close`来关闭连接。
adodb.stream用法
adodb.stream用法adodb.stream用法2008年07月10日关于Adodb.Stream 的使用说明组件:"Adodb.Stream"有下列方法:Cancel 方法 (Object.Cancel )说明:取消执行挂起的异步 Execute 或 Open 方法的调用。
Close 方法关闭对像CopyTo 方法Object.CopyTo(destStream,[CharNumber])说明:将对像的数据复制,destStream指向要复制的对像,CharNumber为可选参数,指要复制的字节数,不选为全部复制。
Flush 方法LoadFromFile 方法Object.LoadFromFile(FileName)说明:将FileName指定的文件装入对像中,参数FileName为指定的用户名。
Open 方法Object.Open(Source,[Mode],[Options],[UserName],[Passwor d])说明:打开对像,参数说明:Sourece 对像源,可不指定Mode 指定打开模式,可不指定,可选参数如下:adModeRead =1adModeReadWrite =3adModeRecursive =4194304adModeShareDenyNone =16adModeShareDenyRead =4 adModeShareDenyWrite =8adModeShareExclusive =12adModeUnknown =0adModeWrite =2Options 指定打开的选项,可不指定,可选参数如下:adOpenStreamAsync =1 adOpenStreamFromRecord =4 adOpenStreamUnspecified=-1UserName 指定用户名,可不指定。
Password 指定用户名的密码Read 方法Object.Read(Numbytes)说明:读取指定长度的二进制内容。
ADOdb的学习资料
ADOdb(Active Data Object DataBase)是一套用于PHP数据库操作的类库,它纠正了PHP访问不同数据库要调用不同数据库接口函数的不便。
使用它提供的统一类库成员方法,可以使开发者能比较容易地切换不同类型的数据库,而不需要修改源程序。
类似于Windows平台下的ADO,为开发者提供了虚拟数据库访问层,统一了不同数据库接口方式。
先来看看ADOdb有何优点1.支持的数据库类型多得惊人:MySQL, PostgreSQL, Interbase, Firebird, Informix, Oracle, MS SQL, Foxpro, Access, ADO, Sybase, FrontBase, DB2, SAP DB, SQLite, Netezza, LDAP, 和通常的ODBC, ODBTP。
支持的数据库的完整列表(/adodb/supported.databases.html)2.其操作方式与语法功能类似于M$的ADO,对windows asp环境下的程序员有不小的吸引.3.与其他php类库专注于select语法不同,ADOdb提供了对于insert、update的全面支持,还提供了对不同数据库下日期、字符串数据类型格式的统一转换函数。
4.可以对查询的结果进行缓存,通过减少相同的查询,可以在一定程度上提高数据库的执行效率。
5.可以进行事务处理,即对一组数据库操作进行统一控制。
通过ADOdb在代码级上的有效控制,对事务的成功和失败作出相应处理,即事务各项都正确时,结束事务;有错误发生时,纠正所有改动,恢复原来状态。
简单介绍下ADOdb的安装和使用1.使用环境a.php环境,因为它本来就是基于PHP语言的。
具体的说:PHP4.0.5以后版本支持ADOdb 4.61PHP4.1.0以后版本支持ADOdb 4.63(目前2005-05最高版本)b.Python环境,Python2.3以后版本支持2.如何得到ADOdb?PHP版本/project/showfiles.php?group_id=42718Python版本/project/showfiles.php?group_id=427183.如何调用ADOdb通常情况只需要调用adodb/adodb.inc.php文件,它包含了所有数据库类库的操作方法。
Vb adodb数据库的常用方法
rs("...")="..." '数据读写操作
...
rs.UpDate '保存写入资料,如果使用只读权限,则不能使用这个方法
rs.Close '这个方法用来关闭你所代开的表,如果不使用这个方法也可以,但是数据库仍然认为你在对标进行锁定,可造成数据库负担过重
2、Recordset集合的常用方法
==========================
'1)打开一个表
'------------
Sql = "select * from 表名" 'SQL查询语句
Set rs = New ADODB.Recordset '新建一个实例
rs.Open Sql, conn '使用 Open 方法打开数据库中的一个表
";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;"
'4)连接SQL的数据库
'------------------
CnStr = "PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;uid=" & DbUser & ";pwd=" & DbPw & ";DRIVER=SQL Server;DATABASE=" & DbName & ";WSID=GQSOFT;SERVER=" &
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Connect($host,[$user],[$password],[$database])
对服务器或资料来源$host 非持续性连结,使用者认证代码为$user ,密码为$password ,如果
服务器支持多数据库,则指定连结到数据库$database。
连结成功回传true ,失败则回传false 。
注意:如果你使用的是Microsoft ADO,而非OLEDB,你可以设定$database 参数为你正在使用
的OLEDB 资料供应器。
Execute($sql,$inputarr=false)
执行SQL 指令$sql ,如果成功,就回传一个对应的ADORecordSet 对象。
要注意的是这个指令
如果执行成功时,一定会回传一个数据集,即使是执行insert 或update 指令也一样。
回传对应的ADORecordSet 对象。
例如,如果连结的是mysql ,那么ADORecordSet_mysql 将会
被回传。
当SQL指令执行失败时会回传false 值。
ErrorMsg()
回传最后状态或是错误讯息。
即使没有错误发生,本函数也会回传一个字符串。
一般情况下,你不
需要呼叫这个函数,除非ADODB函数因为错误状态回传了false值。
注意:如果debug 旗标被激活了,SQL 错误讯息将会在Execute函数被呼叫时发生错误后出现。
Close( )
关闭数据库的连结。
PHP4 以数据库连结结束时不需要特别去清除而享有盛名,因为其参考
计数机
制会自动帮我们清除掉。
GetOne($sql)
Executes the SQL and returns the first field of the first row as an array. The
recordset and remaining rows are discarded for you automatically. If an error occur,
false is returned.
执行SQL指令,并且以数组的方式回传第一笔记录的第一个字段。
资料集及其余的记录将会被自动
清除,如果发生错误,就回传false 值。
译者注:这个功能在验证某笔记录在不在特别有用,可以减少系统内存及资源的用量。
GetRow($sql)
执行SQL指令,并且以数组的方式回传第一笔记录。
资料集及其余的记录将会被自动清除,如果发生错误,就回传false 值。
Affected_Rows( )
回传被SQL指令更新或被删除掉的数据笔数。
如果数据库不支持,回传一个false 值。
目前interbase/firebird 不支持本函数。
Insert_ID( )
回传最后插入时的自动增进值ID。
如果系统不支持,回传false。
只支持有提供自动增进或对象ID 的数据库,目前像是PostgreSQL, MySQL 以及MSSQL 都有。
PostgreSQL 回传一个OID,可以在数据库重加载时改变。
只有使用持续连结方式,当你完成一笔
交易时,这个函数才会有精确的结果。
这是因为被Execute() 宣告的连结可能和下一个Execute() 时用的连结不同。
GetAssoc([$force_array])
如果字段数大于 2 ,那么从资料集中产生一个关连式数组。
这个数组是从目前的指针起一直到档
尾(EOF)。
这个资料集的第一个字段会成为数组的索引。
如果字段数刚好是2,当这数组被每一个键
值所建立时,那么索引会直接对应到值,除非$force_array 被设成true 。
范例:
以下是我们资料集的资料:
列1: Apple, Fruit, Edible
列2: Cactus, Plant, Inedible
列3: Rose, Flower, Edible
GetAssociation 将会产生一个如下的关系型数组:
Apple => [Fruit, Edible]
Cactus => [Plant, Inedible]
Rose => [Flower,Edible]
回传值:
关连式数组,错误则传回false 。
GetArray([$number_of_rows])
从目前指针位置产生一个数组,索引值从0 到$number_of_rows - 1 。
如果$number_of_rows
没有被定义,那会到档尾(EOF)。
GetRows([$number_of_rows])
是GetArray() 的同义函数,是为了与Microsoft ADO 兼容才有的。
MoveNext( )
移动内部指针到下一笔,fields 数组将会自动的更新。
如果不能移动,会回传false 值,其它情
况则会回传true 。
范例:
$rs = $db->Execute($sql);
if ($rs)
while (!$rs->EOF) {
ProcessArray($rs->fields);
$rs->MoveNext();
}
GetRowAssoc($toUpper=true)
这个函数并不能持续的以理想的方式维持关连数组的内容(每换一笔记录,就要重新执行一次)。
使
用$ADODB_FETCH_MODE 共享变量来替代它。
回传一个包含了目前记录的关连式数组,数组的索引值就是字段名。
字段名全都是大写的,以便存
取。
要取得下一笔记录,你要呼叫MoveNext() 。
范例:
Array ( [ID] => 1 [FIRSTNAME] => Caroline [LASTNAME] => Miranda [CREATED] => 2001-07-05 )
注意:不要同时使用GetRowAssoc() 和$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC 。
因为他们有
相同的功能,会彼此交互干扰。
FetchRow()
回传目前记录内容的数组,如果是文件尾(EOF),回传false 。
注意:不要把FetchRow 和MoveNext() 混用。
用法:
$rs = $db->Execute($sql);
if ($rs)
while ($arr = $rs->FetchRow()) {
# process $arr
FetchField($column_number)
回传一个对象,包含了所指字段的名称,类别及最大长度。
如果最大长度不能被明确决定,将会回传-1 。
行号是以0 基为计算起点的,请参考范例 2 。
FieldCount( )
回传资料集里字段数。
RecordCount( )
回传资料集里的记录笔数。
如果无法从数据库驱动程序API里取得正确的数字,ADODB将会把所有的
记录内容,存放在内存里,等全部取完后,再回传记录总笔数。
这个内存可以藉由设定全域变量
$ADODB_COUNTERECS = false 而被取消(基于执行效能的理由)。
当取消后,对某些数据库,RecordCount() 将会回传-1 。
相关支持状况,请参考前面的数据库支持表有详细的说明。
RowCount 和RecordCount 是同义函数。