autoit学习笔记---“While…WEnd”循环

autoit学习笔记---“While…WEnd”循环

  (2012-03-26 16:10:58)
标签: 

杂谈

 
分类: 学习笔记之autoit

  “While…WEnd”语句语法: 
While <表达式(条件)> 
[语句或语句组(循环体)] 
WEnd 
这里的表达式是一个返回布尔值的关系或逻辑表达式,这个表达式是“While…WEnd”正常运
行的条件,如果不满足这个表达式规定的条件则循环结束。
“While…WEnd”循环可以理解为:当表达式要求的条件成立时,执行循环体。
例如我们要计算 1+2+3+……+100 的结果,我们要这么书写代码:
【代码】 

Dim $Sum,$i 
$Sum=0 

$i=1 
While $i<=100 
      $Sum=$Sum+$i 
      $i=$i+1 
WEnd 
MsgBox(0,"循环范例",$Sum) 

 

 

【简析】
首先定义了“$Sum”和“$i”两个变量,  “$Sum”用来存储加和,  “$i”用来做渐变的加数,所
以我们为“$Sum”赋初值 0,为“$i”赋初值 1。
随后我们进入了“While…WEnd”循环,循环正常进行的条件是“$i<=100”  ,即循环结束的条
件是“$i>100”  。循环中,每次循环我们都让当前的“$Sum”加当前的“$i”并再赋值给“$Sum”  ,
这样“$Sum”就记录了每一次“$i”改变后的加和。同时,  “$i”在每次循环后都增加 1。

仔细理解一下由两行语句组成的循环体,每一次“$i”都在改变,这样“$i”就依次代表 1、2、 
3、4……99、100,而“$Sum”则将每一次循环的“$i”值累加,这样也就实现了求 1+2+3+……+100 
的值。
如果您还没看太明白,我将循环拆解一下:
(1)第一次循环(进入循环)
此时“$Sum”的值为 0,  “$i”的值为 1;
循环正常执行的条件是“$i<=100”  ,此时的“$i” 值为 1,满足条件,第一次循环正式开始;
执行“$Sum=$Sum+$i”语句,相当于执行“$Sum=0+1”  ,执行结束后“$Sum”的值为 1;
执行“$i=$i+1”语句,相当于执行“$i=1+1”  ,执行后“$i”的值为 2;
第一次循环结束。
(2)第二次循环
此时“$Sum”的值为 1,  “$i”的值为 2;
循环正常执行的条件是“$i<=100”  ,此时的“$i” 值为 2,满足条件,第二次循环正式开始;
执行“$Sum=$Sum+$i”语句,相当于执行“$Sum=1+2”  ,执行结束后“$Sum”的值为 3;
执行“$i=$i+1”语句,相当于执行“$i=2+1”  ,执行后“$i”的值为 3;
第二次循环结束。

<think>好的,我现在需要帮助用户找到AutoIt连接数据库并查询数据的标准写法示例代码。首先,我需要回忆一下AutoIt中常用的数据库连接方法。AutoIt通常使用内置的SQLite库或者通过ODBC连接其他数据库,比如MySQL或Access。用户可能想要一个通用的示例,所以可能需要涵盖这两种情况。 首先,考虑SQLite,因为它是AutoIt内置支持的,不需要额外安装驱动。用户可能希望看到如何创建或打开一个SQLite数据库,执行查询,并读取结果。然后,对于ODBC连接,可能需要使用ADODB对象,这需要引用相关的COM对象,比如Microsoft ActiveX Data Objects。 接下来,我需要确保代码示例符合标准写法,包括错误处理,比如检查数据库连接是否成功,查询是否执行正确。此外,用户可能希望代码有注释,说明每一步的作用,这样更容易理解。 然后,我需要参考用户提供的引用内容。引用[1]提到数据从“开始数据”开始,每次+1,但不包含结束数据。这可能与循环或数据范围有关,但不确定是否适用于当前问题。引用[2]关于条件判断,可能在代码中需要处理错误情况,比如使用If...Then语句来检查数据库连接是否成功。引用[3]提到内容为学习笔记,精简配置步骤,所以可能需要提醒用户安装必要的插件或驱动,比如SQLite或ODBC驱动。 现在,开始组织代码结构。对于SQLite示例,使用SQLite UDF库中的函数,比如_SQLite_Open创建数据库连接,_SQLite_Exec执行查询,_SQLite_GetTable2获取结果。然后关闭连接。对于ODBC示例,使用ObjCreate("ADODB.Connection")创建连接对象,设置连接字符串,打开连接,执行查询,获取记录集,遍历记录,最后关闭连接。 需要注意错误处理,比如在SQLite中使用@error检查操作是否成功,在ADODB中使用If Not IsObj($oRS) Then判断记录集是否有效。同时,在代码中添加注释,解释每一步的作用,帮助用户理解。 可能还需要提到需要包含必要的头文件,比如#include <SQLite.au3>和#include <SQLite.dll.au3>,或者对于ADODB可能需要安装相应的驱动,比如Microsoft Access的ODBC驱动或MySQL Connector/ODBC。 最后,生成相关问题,比如如何安装SQLite UDF,如何处理连接错误,如何插入数据等,这些能帮助用户进一步学习。</think>### AutoIt连接数据库并查询数据示例代码 #### 方法1:使用SQLite数据库 ```autoit #include <SQLite.au3> #include <SQLite.dll.au3> ; 创建/打开数据库 Local $hDB = _SQLite_Open("test.db") ; 若不存在则自动创建 If @error Then MsgBox(16, "错误", "数据库连接失败") Exit EndIf ; 创建表并插入测试数据 _SQLite_Exec($hDB, "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT);") _SQLite_Exec($hDB, "INSERT INTO users (name) VALUES ('张三'), ('李四');") ; 执行查询 Local $sQuery = "SELECT * FROM users;" Local $aResult, $iRows, $iColumns _SQLite_GetTable2d($hDB, $sQuery, $aResult, $iRows, $iColumns) If @error Then MsgBox(16, "错误", "查询执行失败") EndIf ; 显示结果 For $i = 0 To UBound($aResult) - 1 ConsoleWrite("ID: " & $aResult[$i][0] & " 姓名: " & $aResult[$i][1] & @CRLF) Next _SQLite_Close($hDB) ; 关闭连接 ``` #### 方法2:使用ODBC连接Access数据库 ```autoit Local $oConn = ObjCreate("ADODB.Connection") Local $oRS = ObjCreate("ADODB.Recordset") ; 连接字符串(需安装Access数据库驱动) $oConn.Open("Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\data.accdb;") If @error Then MsgBox(16, "错误", "数据库连接失败") Exit EndIf ; 执行查询 $oRS.Open("SELECT * FROM users", $oConn) If Not IsObj($oRS) Then MsgBox(16, "错误", "查询执行失败") EndIf ; 遍历结果 While Not $oRS.EOF ConsoleWrite("ID: " & $oRS.Fields("id").Value & " 姓名: " & $oRS.Fields("name").Value & @CRLF) $oRS.MoveNext() WEnd $oRS.Close() $oConn.Close() ``` ### 关键说明 1. SQLite需要包含头文件`SQLite.au3`和`SQLite.dll.au3`[^3] 2. ODBC连接需确保已安装对应数据库驱动 3. 参数化查询建议使用`_SQLite_Bind*`函数防止SQL注入 4. Access连接字符串中的文件路径需要替换为实际路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值